API reference

Customer account

A signed-in customer's profile, consent, orders, loyalty, export and erasure at one business.

get

/v1/account

The signed-in customer's profile at this merchant (404 before first sign-in here)

operationId getAccount

Auth

Storefront keyorStorefront key+Customer token

Response 200

V1AccountProfilecontract v1.account.profile
  • customer_idstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
  • namestring | nullrequired
  • phonestring | nullrequired
    pattern ^\+[1-9][0-9]{6,14}$
  • emailstring | nullrequired
    max length 254pattern ^[^\s@]+@[^\s@]+\.[^\s@]+$
  • email_verified_atIsoDatetime | nullrequired
  • consentobject | nullrequired
  • is_guestbooleanrequired
  • created_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/account:link

customers.account.link.v1 — first sign-in creates this merchant's profile; X-Munim-Guest-Token claims that guest order

operationId linkAccount

Auth

Storefront keyorStorefront key+Customer token

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "customers.account.link.v1"required
  • payloadCustomersAccountLinkV1required

Response 200

CommandResultcontract command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/account/profile

customers.profile.update.v1 — name and phone

operationId updateAccountProfile

Auth

Storefront keyorStorefront key+Customer token

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "customers.profile.update.v1"required

Response 200

CommandResultcontract command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/account/consent

customers.consent.set.v1 — marketing consent

operationId setAccountConsent

Auth

Storefront keyorStorefront key+Customer token

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "customers.consent.set.v1"required
  • payloadCustomersConsentSetV1required

Response 200

CommandResultcontract command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/account/orders

The customer's orders at this merchant, newest first

operationId listAccountOrders

Auth

Storefront keyorStorefront key+Customer token

Parameters

  • limitin queryintegeroptional
  • cursorin querystring (uuid)optional

Response 200

V1AccountOrderscontract v1.account.orders
  • ordersarray of objectrequired
    • order_idstringrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • outlet_idstringrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • channel_idstringrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • kindenum (4)required
      dine_intakeawaypickupdelivery
    • statusenum (7)required
      placedacceptedrejectedpreparingreadycompletedcancelled
    • business_datestring (date)required
      pattern ^(?:(?:[0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30)|(?:02)-(?:0[1-9]|1[0-9]|2[0-8])))$
    • ticket_nointegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • subtotal_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • discount_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • tax_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • total_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • currencystringrequired
      pattern ^[A-Z]{3}$
    • created_atIsoDatetimerequired
  • next_cursorstring | nullrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/account/orders/{id}

One of the customer's own orders with its lines (404 for any other order)

operationId getAccountOrder

Auth

Storefront keyorStorefront key+Customer token

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Response 200

V1AccountOrdercontract v1.account.order
  • orderobjectrequired
    • order_idstringrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • outlet_idstringrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • channel_idstringrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • kindenum (4)required
      dine_intakeawaypickupdelivery
    • statusenum (7)required
      placedacceptedrejectedpreparingreadycompletedcancelled
    • business_datestring (date)required
      pattern ^(?:(?:[0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30)|(?:02)-(?:0[1-9]|1[0-9]|2[0-8])))$
    • ticket_nointegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • subtotal_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • discount_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • tax_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • total_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • currencystringrequired
      pattern ^[A-Z]{3}$
    • created_atIsoDatetimerequired
  • linesarray of objectrequired
    • line_idstringrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • line_nointegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • item_idstringrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • item_name_keystringrequired
    • variant_idstring | nullrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • qty_milliintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • unit_price_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • line_discount_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • tax_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/account/loyalty

Loyalty: latest balance_after and every entry

operationId getAccountLoyalty

Auth

Storefront keyorStorefront key+Customer token

Response 200

V1AccountLoyaltycontract v1.account.loyalty
  • balanceobject | nullrequired
    • pointsintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • entry_idstringrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • seqintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
  • entriesarray of objectrequired
    • entry_idstringrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • seqintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • kindenum (5)required
      earnredeemreverseexpireadjust
    • pointsintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • balance_afterintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • order_idstring | nullrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • notestring | nullrequired
    • created_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/account:export

customers.data.export.v1 — JSON of the customer's own rows at this merchant

operationId exportAccount

Auth

Storefront keyorStorefront key+Customer token

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "customers.data.export.v1"required
  • payloadCustomersDataExportV1required

Response 200

V1AccountExportcontract v1.account.export
  • commandCommandResultrequired
  • exportobjectrequired
    • formatconst "munim.customer-export.v1"required
    • generated_atIsoDatetimerequired
    • tenant_idstringrequired
      pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
    • profileV1AccountProfilerequired
    • ordersarray of objectrequired
      • orderobjectrequired
        Show fields of order
        • order_idstringrequired
          pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
        • outlet_idstringrequired
          pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
        • channel_idstringrequired
          pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
        • kindenum (4)required
          dine_intakeawaypickupdelivery
        • statusenum (7)required
          placedacceptedrejectedpreparingreadycompletedcancelled
        • business_datestring (date)required
          pattern ^(?:(?:[0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30)|(?:02)-(?:0[1-9]|1[0-9]|2[0-8])))$
        • ticket_nointegerrequired
          ≥ -9007199254740991≤ 9007199254740991
        • subtotal_minorintegerrequired
          ≥ -9007199254740991≤ 9007199254740991
        • discount_minorintegerrequired
          ≥ -9007199254740991≤ 9007199254740991
        • tax_minorintegerrequired
          ≥ -9007199254740991≤ 9007199254740991
        • total_minorintegerrequired
          ≥ -9007199254740991≤ 9007199254740991
        • currencystringrequired
          pattern ^[A-Z]{3}$
        • created_atIsoDatetimerequired
      • linesarray of objectrequired
        Show fields of lines
        • line_idstringrequired
          pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
        • line_nointegerrequired
          ≥ -9007199254740991≤ 9007199254740991
        • item_idstringrequired
          pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
        • item_name_keystringrequired
        • variant_idstring | nullrequired
          pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
        • qty_milliintegerrequired
          ≥ -9007199254740991≤ 9007199254740991
        • unit_price_minorintegerrequired
          ≥ -9007199254740991≤ 9007199254740991
        • line_discount_minorintegerrequired
          ≥ -9007199254740991≤ 9007199254740991
        • tax_minorintegerrequired
          ≥ -9007199254740991≤ 9007199254740991
    • loyalty_entriesarray of objectrequired
      • entry_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • seqintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • kindenum (5)required
        earnredeemreverseexpireadjust
      • pointsintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • balance_afterintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • order_idstring | nullrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • notestring | nullrequired
      • created_atIsoDatetimerequired
    • reservationsarray of objectrequired
      • reservation_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • outlet_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • namestringrequired
      • phonestring | nullrequired
        pattern ^\+[1-9][0-9]{6,14}$
      • party_sizeintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • starts_atIsoDatetimerequired
      • statusstringrequired
      • notestring | nullrequired
      • created_atIsoDatetimerequired
    • bulk_ordersarray of objectrequired
      • bulk_order_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • outlet_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • contact_namestringrequired
      • contact_phonestring | nullrequired
        pattern ^\+[1-9][0-9]{6,14}$
      • deliver_atIsoDatetimerequired
      • headcountinteger | nullrequired
        ≥ -9007199254740991≤ 9007199254740991
      • statusstringrequired
      • quote_minorinteger | nullrequired
        ≥ -9007199254740991≤ 9007199254740991
      • advance_minorinteger | nullrequired
        ≥ -9007199254740991≤ 9007199254740991
      • currencystring | nullrequired
        pattern ^[A-Z]{3}$
      • order_idstring | nullrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • notestring | nullrequired
      • created_atIsoDatetimerequired
    • order_eventsarray of objectrequired
      • order_event_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • order_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • kindenum (2)required
        statuspromised_at
      • from_statusstring | nullrequired
      • to_statusstring | nullrequired
      • from_promised_atIsoDatetime | nullrequired
      • to_promised_atIsoDatetime | nullrequired
      • reasonstring | nullrequired
      • atIsoDatetimerequired
    • tendersarray of objectrequired
      • tender_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • order_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • methodenum (3)required
        cashcardupi
      • amount_minorintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • tendered_minorinteger | nullrequired
        ≥ -9007199254740991≤ 9007199254740991
      • change_minorinteger | nullrequired
        ≥ -9007199254740991≤ 9007199254740991
      • currencystringrequired
        pattern ^[A-Z]{3}$
      • refstring | nullrequired
      • atIsoDatetimerequired
    • refundsarray of objectrequired
      • refund_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • order_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • tender_idstring | nullrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • methodenum (3)required
        cashcardupi
      • amount_minorintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • currencystringrequired
        pattern ^[A-Z]{3}$
      • reason_codestringrequired
      • notestringrequired
      • atIsoDatetimerequired
    • coupon_usesarray of objectrequired
      • coupon_use_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • coupon_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • order_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • discount_minorintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • currencystringrequired
        pattern ^[A-Z]{3}$
      • atIsoDatetimerequired
    • voidsarray of objectrequired
      • void_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • order_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • order_line_idstring | nullrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • reason_codestringrequired
      • notestringrequired
      • amount_minorintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • currencystringrequired
        pattern ^[A-Z]{3}$
      • atIsoDatetimerequired
    • sale_returnsarray of objectrequired
      • sale_return_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • order_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • order_line_idstringrequired
        pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      • qty_milliintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • restockbooleanrequired
      • reason_codestringrequired
      • notestringrequired
      • atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/account:erase

customers.erasure.request.v1 — anonymise the profile; orders are kept

operationId eraseAccount

Auth

Storefront keyorStorefront key+Customer token

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "customers.erasure.request.v1"required

Response 200

CommandResultcontract command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.