Ir al contenido

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.

INFO

La referencia de la API está en inglés.

Get the profile ​

GET/connect/v1/store/customer/profile
Clave publicable o secretaRequiere X-Sales-ChannelCliente con sesión iniciada

Códigos de estado

  • 404NOT_A_MEMBER — the customer is not a member of this organization.

Conviene saber

  • 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"
Respuesta de ejemplo · 200
{
  "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.

GET/connect/v1/store/customer/loyalty
Clave publicable o secretaRequiere X-Sales-ChannelCliente con sesión iniciada

Códigos de estado

  • 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"
Respuesta de ejemplo · 200
{
  "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.

GET/connect/v1/store/customer/deals
Clave publicable o secretaRequiere X-Sales-ChannelCliente con sesión iniciada

Códigos de estado

  • 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"
Respuesta de ejemplo · 200
{
  "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.

GET/connect/v1/store/customer/restaurant/orders
Clave publicable o secretaRequiere X-Sales-ChannelCliente con sesión iniciada

Parámetros de consulta

  • per_pageinteger

    1–50, default 20.

  • pageinteger

    Page 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"
Respuesta de ejemplo · 200
{
  "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.

GET/connect/v1/store/customer/orders
Clave publicable o secretaRequiere X-Sales-ChannelCliente con sesión iniciada

Parámetros de consulta

  • per_pageinteger

    Default 10.

  • pageinteger

    Page number.

Conviene saber

  • 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"
Respuesta de ejemplo · 200
{
  "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.

GET/connect/v1/store/customer/orders/{reference}
Clave publicable o secretaRequiere X-Sales-ChannelCliente con sesión iniciada

Parámetros de ruta

  • referencestringobligatorio

    The order reference.

Códigos de estado

  • 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"
Respuesta de ejemplo · 200
{
  "order": {
    "reference": "ORD-EXAMPLE00001",
    "status": {
      "name": "paid"
    },
    "shipping_address": {
      "…": "…"
    },
    "lines": [
      "…"
    ],
    "invoice": {
      "transactions": [
        "…"
      ]
    },
    "…": "…"
  }
}