Customer account
Connect API · https://api.conciar.com/connect/v1
For a signed-in customer (bearer token from /auth/otp/verify). Without a valid token: 401 Unauthenticated.
Get the profile
Status codes
404NOT_A_MEMBER — the customer is not a member of this organization.
Good to know
- member_reference is the value to show as the membership QR code.
curl "https://api.conciar.com/connect/v1/store/customer/profile" \
-H "Accept: application/json" \
-H "X-Api-Key: pk_your_publishable_key" \
-H "X-Sales-Channel: cnct_ch_your_channel_token" \
-H "Authorization: Bearer your_customer_access_token"{
"data": {
"id": 4242,
"first_name": "Alex",
"last_name": "Example",
"email": "alex@example.com",
"member_since": "2026-03-01T10:00:00+01:00",
"member_reference": "M-EXAM-PLE0-0000",
"marketing_opt_in": false
}
}Get points, stamps and history
The points balance and its value, the stamp card, the programme rules and the last 20 loyalty events.
Status codes
404NOT_A_MEMBER.
curl "https://api.conciar.com/connect/v1/store/customer/loyalty" \
-H "Accept: application/json" \
-H "X-Api-Key: pk_your_publishable_key" \
-H "X-Sales-Channel: cnct_ch_your_channel_token" \
-H "Authorization: Bearer your_customer_access_token"{
"data": {
"member_reference": "M-EXAM-PLE0-0000",
"points": {
"enabled": true,
"balance": 120,
"value": {
"amount": "1.20",
"minor": 120,
"currency": "EUR"
},
"point_value": 0.01,
"min_redemption": 100,
"max_redemption_pct": 50,
"can_redeem": true,
"earn_rate": 1,
"earn_on": "gross",
"qualifying": {
"scope": "all",
"category_ids": [],
"item_ids": null
},
"boosts": []
},
"stamps": {
"enabled": true,
"count": 4,
"per_reward": 10,
"rewards_available": 0,
"title": "Coffee card",
"description": null,
"…": "…"
},
"history": [
{
"id": 1,
"type": "points_earned",
"stamps": 0,
"points": 25,
"order_reference": "EXAMPLE-0001",
"created_at": "2026-10-10T12:31:00+02:00"
}
]
}
}List deals
Promotions that apply on this channel now (no code needed) and the personal coupons assigned to this member.
Status codes
404NOT_A_MEMBER.
curl "https://api.conciar.com/connect/v1/store/customer/deals" \
-H "Accept: application/json" \
-H "X-Api-Key: pk_your_publishable_key" \
-H "X-Sales-Channel: cnct_ch_your_channel_token" \
-H "Authorization: Bearer your_customer_access_token"{
"data": [
{
"id": "promo_12",
"title": "2 for 1 on Tuesdays",
"description": null,
"item_id": 101,
"coupon_code": null,
"valid_until": null
},
{
"id": "coupon_8",
"title": "Welcome gift",
"description": null,
"item_id": null,
"coupon_code": "WELCOME-EXAMPLE",
"valid_until": "2026-12-31T23:59:59+01:00"
}
]
}List takeaway orders
The customer's app and takeaway orders, newest first, paginated.
Query parameters
per_pageinteger1–50, default 20.
pageintegerPage number.
curl "https://api.conciar.com/connect/v1/store/customer/restaurant/orders" \
-H "Accept: application/json" \
-H "X-Api-Key: pk_your_publishable_key" \
-H "X-Sales-Channel: cnct_ch_your_channel_token" \
-H "Authorization: Bearer your_customer_access_token"{
"data": [
{
"reference": "EXAMPLE-0001",
"pickup_number": null,
"pickup_name": "Alex",
"store": {
"sales_channel_token": "cnct_ch_your_channel_token",
"name": "Bistro Example"
},
"status": "awaiting_payment",
"pickup_at": "2026-10-16T12:30:00+02:00",
"release_at": null,
"created_at": "2026-10-16T11:58:12+02:00",
"customer_notes": null,
"lines": [
{
"item_id": 101,
"name": "Example burger",
"image_url": null,
"qty": 2,
"selections": [
"Extra cheese"
],
"option_ids": [
501
],
"unit_price": {
"amount": "12.50",
"minor": 1250,
"currency": "EUR"
},
"total_price": {
"amount": "25.00",
"minor": 2500,
"currency": "EUR"
}
}
],
"subtotal": {
"amount": "25.00",
"minor": 2500,
"currency": "EUR"
},
"discount": {
"amount": "0.00",
"minor": 0,
"currency": "EUR"
},
"total": {
"amount": "25.00",
"minor": 2500,
"currency": "EUR"
},
"reward_redeemed": false,
"points_redeemed": 0,
"points_discount": {
"amount": "0.00",
"minor": 0,
"currency": "EUR"
},
"loyalty": {
"stamps_earned": 0,
"points_earned": 0
}
}
],
"links": {
"first": "…",
"last": "…",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"per_page": 20,
"to": 1,
"total": 1,
"…": "…"
}
}List store orders
The customer's orders with this organization, newest first. Each order has its status, currency, lines (with prices and taxes) and order prices. Internal fields, such as staff notes, are never included.
Query parameters
per_pageintegerDefault 10.
pageintegerPage number.
Good to know
- A customer who is not a member gets {"orders": []}.
curl "https://api.conciar.com/connect/v1/store/customer/orders" \
-H "Accept: application/json" \
-H "X-Api-Key: pk_your_publishable_key" \
-H "X-Sales-Channel: cnct_ch_your_channel_token" \
-H "Authorization: Bearer your_customer_access_token"{
"orders": {
"current_page": 1,
"data": [
{
"id": 1,
"reference": "ORD-EXAMPLE00001",
"status": {
"name": "paid"
},
"currency": {
"symbol": "EUR"
},
"lines": [
"…"
],
"prices": [
"…"
],
"created_at": "2026-10-10T10:00:00.000000Z",
"…": "…"
}
],
"per_page": 10,
"total": 1,
"…": "…"
}
}Get a store order
One order with its addresses, lines, invoice and payment transactions (key, amount, status, method, paid_at), and credit notes.
Path parameters
referencestringrequiredThe order reference.
Status codes
404Not found, or not this customer's order with this organization.
curl "https://api.conciar.com/connect/v1/store/customer/orders/ORD-EXAMPLE00001" \
-H "Accept: application/json" \
-H "X-Api-Key: pk_your_publishable_key" \
-H "X-Sales-Channel: cnct_ch_your_channel_token" \
-H "Authorization: Bearer your_customer_access_token"{
"order": {
"reference": "ORD-EXAMPLE00001",
"status": {
"name": "paid"
},
"shipping_address": {
"…": "…"
},
"lines": [
"…"
],
"invoice": {
"transactions": [
"…"
]
},
"…": "…"
}
}