Skip to content
innovorder
⌘K

Order lifecycle

Retrieve Orders

The Omnichannel Order object is the central entity of the Innovorder platform. It aggregates data from all sales channels (POS, Kiosk, Web, Aggregators). Use these endpoints to retrieve historical data, generate reports, or display order history to users.

Endpoints

GET/v1/ordersList Orders

Search and filter orders. Returns a paginated list wrapped in a data object. Requires exactly one scope parameter among: brandId, customerId, restaurantId, restaurantIds, or brandIds.

Parameters

NameTypeRequiredDescription
brandIdstringNoFilter by brand ID (mutually exclusive with other scope params).
customerIdstringNoFilter by customer ID.
restaurantIdstringNoFilter by restaurant ID.
restaurantIdsstringNoComma-separated list of restaurant IDs.
brandIdsstringNoComma-separated list of brand IDs.
startDatestringNoFilter orders after this date (ISO 8601).
endDatestringNoFilter orders before this date (ISO 8601).
channelIdsstringNoFilter by channel (1=Kiosk, 2=Web, 5=POS, etc.).
consumptionModeIdsstringNoComma-separated consumption mode IDs (1=Delivery, 2=TakeAway, 3=SitIn, 4=Drive).
statusstringNoFilter by comma-separated statuses: VALIDATED, PAID, CANCELLED, PAID_CANCELLED, CONTRA_ENTRY.
customerNamestringNoFilter by customer name.
badgeNumberstringNoFilter by badge number.
phoneNumberstringNoFilter by phone number.
restaurantNamestringNoFilter by restaurant name.
ticketNumberstringNoFilter by ticket number.
pricingRulestringNoFilter by pricing rule code.
ticketStartDatestringNoFilter by lastUpdateDate from this ISO 8601 date-time.
ticketEndDatestringNoFilter by lastUpdateDate up to this ISO 8601 date-time; must be greater than or equal to ticketStartDate.
totalPriceMinnumberNoMinimum total price filter.
totalPriceMaxnumberNoMaximum total price filter.
turnoverMinnumberNoMinimum turnover filter.
turnoverMaxnumberNoMaximum turnover filter.
itemsTagstringNoFilter by item tag.
searchstringNoFree-text search.
orderstringNoSort field, prefix with - for descending (e.g. -startDate). Sortable: customerId, restaurantId, brandId, dailyOrderId, startDate, seller, deviceId, deviceName, channelId, omnichannelOrderId, status, lastUpdateDate, ticketNumber, turnover.
limitintegerNoPagination limit (Default 10).
offsetstringNoPagination offset.

Response

json
{
  "status": 200,
  "code": "omnichannel_orders_succeed",
  "message": "Omnichannel orders successfully retrieved.",
  "data": {
    "count": 1,
    "omnichannelOrders": [
      {
        "omnichannelOrderId": "12345678",
        "reportOrderId": 123456789,
        "orderUuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "brandId": 100,
        "restaurantId": 200,
        "customerId": 5001,
        "userId": null,
        "dailyOrderId": 42,
        "status": "PAID",
        "channelId": "2",
        "consumptionModeId": 1,
        "deviceId": "WEB-001",
        "deviceName": "Web Ordering",
        "seller": null,
        "ticketNumber": "A042",
        "tableName": null,
        "comment": null,
        "numberOfGuests": 1,
        "currency": "EUR",
        "startDate": "2026-03-25T12:30:00.000Z",
        "lastUpdateDate": "2026-03-25T12:32:00.000Z",
        "businessYear": 2026,
        "businessMonth": 3,
        "businessDay": 25,
        "service": 0,
        "shift": {
          "name": "Lunch"
        },
        "totalPriceWithTaxIncluded": 1850,
        "totalPriceWithTaxExcluded": 1542,
        "totalPriceDiscountedWithTaxIncluded": 1550,
        "totalPriceDiscountedWithTaxExcluded": 1292,
        "totalTax": 258,
        "totalDiscount": 300,
        "turnover": 1550,
        "totalAmountFree": 0,
        "totalItemFree": 0,
        "totalAmountCancelled": 0,
        "totalItemCancelled": 0,
        "items": [
          {
            "itemId": 5001,
            "parentItemId": null,
            "name": "Classic Burger",
            "type": "PRODUCT",
            "status": "VALIDATED",
            "quantity": 1000,
            "totalPriceWithTaxIncluded": 1200,
            "originalUnitPrice": 1200,
            "itemType": "STANDARD",
            "vatValue": 1000,
            "skuValue": "BUR-001",
            "free": false,
            "tags": [
              {
                "value": "Burger"
              }
            ],
            "categories": [
              {
                "value": "Main Course"
              }
            ],
            "purchasePrice": null,
            "billingCode": null,
            "discounted": false,
            "reduced": false,
            "service": 0,
            "totalItemDiscounted": 0,
            "totalPriceDiscounted": 0,
            "cancelReason": null,
            "deviceName": "Web Ordering",
            "deviceId": "WEB-001",
            "measurementUnit": "UNIT",
            "measuredQuantity": 1
          }
        ],
        "payments": [
          {
            "type": "Card",
            "label": "Visa",
            "quantity": 1,
            "value": 1550,
            "luncheonCode": null,
            "transactionId": null
          }
        ],
        "taxes": [
          {
            "taxRate": 1000,
            "totalTax": 258,
            "totalInclTax": 1550,
            "totalExclTax": 1292
          }
        ],
        "discounts": [
          {
            "name": "SUMMER10",
            "value": 300
          }
        ],
        "fees": [
          {
            "name": "Delivery Fee",
            "taxRate": 2000,
            "quantity": 1,
            "amount": 350,
            "type": "Delivery"
          }
        ],
        "grants": [
          {
            "labelTicket": "SUBV REPAS",
            "amount": 50,
            "quantity": 1,
            "taxBreakdowns": [
              {
                "taxRate": 1000,
                "totalInclTax": 30,
                "totalExclTax": 27,
                "totalTax": 3,
                "discountableType": "PRODUCT",
                "feeType": null
              },
              {
                "taxRate": 10,
                "totalInclTax": 18,
                "totalExclTax": 18,
                "totalTax": 0,
                "discountableType": "FEE",
                "feeType": "AdmissionFee"
              },
              {
                "taxRate": 10,
                "totalInclTax": 2,
                "totalExclTax": 2,
                "totalTax": 0,
                "discountableType": "FEE",
                "feeType": "RoyaltyFee"
              }
            ]
          }
        ],
        "entranceFees": [],
        "loyaltyPrograms": [],
        "pricingRule": null,
        "customer": {
          "phone": "+33612345678",
          "email": "jean.dupont@example.com",
          "firstName": "Jean",
          "lastName": "Dupont",
          "badgeNumber": null,
          "disabledAt": null,
          "student": null
        },
        "restaurant": {
          "name": "Chez Yann",
          "contactPhone": "0147689047",
          "externalId": "SITE01_REST01",
          "address": {
            "streetNumber": "12",
            "route": "Rue de la Paix",
            "postalCode": "75002",
            "locality": "Paris"
          }
        },
        "deliveryAddress": {
          "phone": "+33612345678",
          "route": "45 Avenue des Champs-Élysées",
          "postalCode": "75008",
          "locality": "Paris",
          "streetNumber": "45",
          "additionalInfo": "3rd floor",
          "digicode": "4521",
          "apartmentNumber": "12B"
        },
        "photos": [],
        "isCancellable": true,
        "isRefundable": true,
        "cancellationReason": null,
        "cancellationReasonDescription": null,
        "metadata": null
      }
    ]
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"omnichannel_orders_succeed"Machine-readable application code for the result.
messagestring"Omnichannel orders successfully retrieved."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.countinteger1Total number of matching records.
data.omnichannelOrdersarray[…]List of omnichannel orders entries.
data.omnichannelOrders[]object{…}Object containing omnichannel orders fields.
data.omnichannelOrders[].omnichannelOrderIdstring"12345678"Identifier of the associated omnichannel order.
data.omnichannelOrders[].reportOrderIdinteger123456789Identifier of the associated report order.
data.omnichannelOrders[].orderUuidstring"a1b2c3d4-e5f6-7890-abcd-ef1234567890"The order uuid value.
data.omnichannelOrders[].brandIdinteger100Identifier of the brand.
data.omnichannelOrders[].restaurantIdinteger200Identifier of the restaurant.
data.omnichannelOrders[].customerIdinteger5001Identifier of the customer.
data.omnichannelOrders[].userIdnullnullIdentifier of the user.
data.omnichannelOrders[].dailyOrderIdinteger42Identifier of the associated daily order.
data.omnichannelOrders[].statusstring"PAID"HTTP status code returned by the API.
data.omnichannelOrders[].channelIdstring"2"Identifier of the associated channel.
data.omnichannelOrders[].consumptionModeIdinteger1Identifier of the associated consumption mode.
data.omnichannelOrders[].deviceIdstring"WEB-001"Identifier of the associated device.
data.omnichannelOrders[].deviceNamestring"Web Ordering"The device name value.
data.omnichannelOrders[].sellernullnullThe seller value.
data.omnichannelOrders[].ticketNumberstring"A042"The ticket number value.
data.omnichannelOrders[].tableNamenullnullThe table name value.
data.omnichannelOrders[].commentnullnullThe comment value.
data.omnichannelOrders[].numberOfGuestsinteger1The number of guests value.
data.omnichannelOrders[].currencystring"EUR"ISO 4217 currency code.
data.omnichannelOrders[].startDatestring"2026-03-25T12:30:00.000Z"Date or timestamp for start.
data.omnichannelOrders[].lastUpdateDatestring"2026-03-25T12:32:00.000Z"Date or timestamp for last update.
data.omnichannelOrders[].businessYearinteger2026The business year value.
data.omnichannelOrders[].businessMonthinteger3The business month value.
data.omnichannelOrders[].businessDayinteger25The business day value.
data.omnichannelOrders[].serviceinteger0The service value.
data.omnichannelOrders[].shiftobject{…}Object containing shift fields.
data.omnichannelOrders[].shift.namestring"Lunch"The name value.
data.omnichannelOrders[].totalPriceWithTaxIncludedinteger1850The total price with tax included value.
data.omnichannelOrders[].totalPriceWithTaxExcludedinteger1542The total price with tax excluded value.
data.omnichannelOrders[].totalPriceDiscountedWithTaxIncludedinteger1550The total price discounted with tax included value.
data.omnichannelOrders[].totalPriceDiscountedWithTaxExcludedinteger1292The total price discounted with tax excluded value.
data.omnichannelOrders[].totalTaxinteger258The total tax value.
data.omnichannelOrders[].totalDiscountinteger300The total discount value.
data.omnichannelOrders[].turnoverinteger1550The turnover value.
data.omnichannelOrders[].totalAmountFreeinteger0The total amount free value.
data.omnichannelOrders[].totalItemFreeinteger0The total item free value.
data.omnichannelOrders[].totalAmountCancelledinteger0The total amount cancelled value.
data.omnichannelOrders[].totalItemCancelledinteger0The total item cancelled value.
data.omnichannelOrders[].itemsarray[…]List of items entries.
data.omnichannelOrders[].items[]object{…}Object containing items fields.
data.omnichannelOrders[].items[].itemIdinteger5001Identifier of the associated item.
data.omnichannelOrders[].items[].parentItemIdnullnullIdentifier of the associated parent item.
data.omnichannelOrders[].items[].namestring"Classic Burger"The name value.
data.omnichannelOrders[].items[].typestring"PRODUCT"The type value.
data.omnichannelOrders[].items[].statusstring"VALIDATED"HTTP status code returned by the API.
data.omnichannelOrders[].items[].quantityinteger1000The quantity value.
data.omnichannelOrders[].items[].totalPriceWithTaxIncludedinteger1200The total price with tax included value.
data.omnichannelOrders[].items[].originalUnitPriceinteger1200The original unit price value.
data.omnichannelOrders[].items[].itemTypestring"STANDARD"The item type value.
data.omnichannelOrders[].items[].vatValueinteger1000The vat value value.
data.omnichannelOrders[].items[].skuValuestring"BUR-001"The sku value value.
data.omnichannelOrders[].items[].freebooleanfalseThe free value.
data.omnichannelOrders[].items[].tagsarray[…]List of tags entries.
data.omnichannelOrders[].items[].tags[]object{…}Object containing tags fields.
data.omnichannelOrders[].items[].tags[].valuestring"Burger"The value value.
data.omnichannelOrders[].items[].categoriesarray[…]List of categories entries.
data.omnichannelOrders[].items[].categories[]object{…}Object containing categories fields.
data.omnichannelOrders[].items[].categories[].valuestring"Main Course"The value value.
data.omnichannelOrders[].items[].purchasePricenullnullThe purchase price value.
data.omnichannelOrders[].items[].billingCodenullnullThe billing code value.
data.omnichannelOrders[].items[].discountedbooleanfalseThe discounted value.
data.omnichannelOrders[].items[].reducedbooleanfalseThe reduced value.
data.omnichannelOrders[].items[].serviceinteger0The service value.
data.omnichannelOrders[].items[].totalItemDiscountedinteger0The total item discounted value.
data.omnichannelOrders[].items[].totalPriceDiscountedinteger0The total price discounted value.
data.omnichannelOrders[].items[].cancelReasonnullnullThe cancel reason value.
data.omnichannelOrders[].items[].deviceNamestring"Web Ordering"The device name value.
data.omnichannelOrders[].items[].deviceIdstring"WEB-001"Identifier of the associated device.
data.omnichannelOrders[].items[].measurementUnitstring"UNIT"The measurement unit value.
data.omnichannelOrders[].items[].measuredQuantityinteger1The measured quantity value.
data.omnichannelOrders[].paymentsarray[…]List of payments entries.
data.omnichannelOrders[].payments[]object{…}Object containing payments fields.
data.omnichannelOrders[].payments[].typestring"Card"The type value.
data.omnichannelOrders[].payments[].labelstring"Visa"The label value.
data.omnichannelOrders[].payments[].quantityinteger1The quantity value.
data.omnichannelOrders[].payments[].valueinteger1550The value value.
data.omnichannelOrders[].payments[].luncheonCodenullnullThe luncheon code value.
data.omnichannelOrders[].payments[].transactionIdnullnullIdentifier of the transaction.
data.omnichannelOrders[].taxesarray[…]List of taxes entries.
data.omnichannelOrders[].taxes[]object{…}Object containing taxes fields.
data.omnichannelOrders[].taxes[].taxRateinteger1000The tax rate value.
data.omnichannelOrders[].taxes[].totalTaxinteger258The total tax value.
data.omnichannelOrders[].taxes[].totalInclTaxinteger1550The total incl tax value.
data.omnichannelOrders[].taxes[].totalExclTaxinteger1292The total excl tax value.
data.omnichannelOrders[].discountsarray[…]List of discounts entries.
data.omnichannelOrders[].discounts[]object{…}Object containing discounts fields.
data.omnichannelOrders[].discounts[].namestring"SUMMER10"The name value.
data.omnichannelOrders[].discounts[].valueinteger300The value value.
data.omnichannelOrders[].feesarray[…]List of fees entries.
data.omnichannelOrders[].fees[]object{…}Object containing fees fields.
data.omnichannelOrders[].fees[].namestring"Delivery Fee"The name value.
data.omnichannelOrders[].fees[].taxRateinteger2000The tax rate value.
data.omnichannelOrders[].fees[].quantityinteger1The quantity value.
data.omnichannelOrders[].fees[].amountinteger350The amount value.
data.omnichannelOrders[].fees[].typestring"Delivery"The type value.
data.omnichannelOrders[].grantsarray[…]List of grants entries.
data.omnichannelOrders[].grants[]object{…}Object containing grants fields.
data.omnichannelOrders[].grants[].labelTicketstring"SUBV REPAS"The label ticket value.
data.omnichannelOrders[].grants[].amountinteger50The amount value.
data.omnichannelOrders[].grants[].quantityinteger1The quantity value.
data.omnichannelOrders[].grants[].taxBreakdownsarray[…]List of tax breakdowns entries.
data.omnichannelOrders[].grants[].taxBreakdowns[]object{…}Object containing tax breakdowns fields.
data.omnichannelOrders[].grants[].taxBreakdowns[].taxRateinteger1000The tax rate value.
data.omnichannelOrders[].grants[].taxBreakdowns[].totalInclTaxinteger30The total incl tax value.
data.omnichannelOrders[].grants[].taxBreakdowns[].totalExclTaxinteger27The total excl tax value.
data.omnichannelOrders[].grants[].taxBreakdowns[].totalTaxinteger3The total tax value.
data.omnichannelOrders[].grants[].taxBreakdowns[].discountableTypestring"PRODUCT"The discountable type value.
data.omnichannelOrders[].grants[].taxBreakdowns[].feeTypenullnullThe fee type value.
data.omnichannelOrders[].entranceFeesarray[]List of entrance fees entries.
data.omnichannelOrders[].loyaltyProgramsarray[]List of loyalty programs entries.
data.omnichannelOrders[].pricingRulenullnullThe pricing rule value.
data.omnichannelOrders[].customerobject{…}Object containing customer fields.
data.omnichannelOrders[].customer.phonestring"+33612345678"Phone number.
data.omnichannelOrders[].customer.emailstring"jean.dupont@example.com"Email address.
data.omnichannelOrders[].customer.firstNamestring"Jean"The first name value.
data.omnichannelOrders[].customer.lastNamestring"Dupont"The last name value.
data.omnichannelOrders[].customer.badgeNumbernullnullThe badge number value.
data.omnichannelOrders[].customer.disabledAtnullnullDate or timestamp for disabled.
data.omnichannelOrders[].customer.studentnullnullThe student value.
data.omnichannelOrders[].restaurantobject{…}Object containing restaurant fields.
data.omnichannelOrders[].restaurant.namestring"Chez Yann"The name value.
data.omnichannelOrders[].restaurant.contactPhonestring"0147689047"The contact phone value.
data.omnichannelOrders[].restaurant.externalIdstring"SITE01_REST01"Identifier in the connected external system.
data.omnichannelOrders[].restaurant.addressobject{…}Object containing address fields.
data.omnichannelOrders[].restaurant.address.streetNumberstring"12"The street number value.
data.omnichannelOrders[].restaurant.address.routestring"Rue de la Paix"The route value.
data.omnichannelOrders[].restaurant.address.postalCodestring"75002"The postal code value.
data.omnichannelOrders[].restaurant.address.localitystring"Paris"The locality value.
data.omnichannelOrders[].deliveryAddressobject{…}Object containing delivery address fields.
data.omnichannelOrders[].deliveryAddress.phonestring"+33612345678"Phone number.
data.omnichannelOrders[].deliveryAddress.routestring"45 Avenue des Champs-Élysées"The route value.
data.omnichannelOrders[].deliveryAddress.postalCodestring"75008"The postal code value.
data.omnichannelOrders[].deliveryAddress.localitystring"Paris"The locality value.
data.omnichannelOrders[].deliveryAddress.streetNumberstring"45"The street number value.
data.omnichannelOrders[].deliveryAddress.additionalInfostring"3rd floor"The additional info value.
data.omnichannelOrders[].deliveryAddress.digicodestring"4521"The digicode value.
data.omnichannelOrders[].deliveryAddress.apartmentNumberstring"12B"The apartment number value.
data.omnichannelOrders[].photosarray[]List of photos entries.
data.omnichannelOrders[].isCancellablebooleantrueWhether cancellable is enabled or applies.
data.omnichannelOrders[].isRefundablebooleantrueWhether refundable is enabled or applies.
data.omnichannelOrders[].cancellationReasonnullnullThe cancellation reason value.
data.omnichannelOrders[].cancellationReasonDescriptionnullnullThe cancellation reason description value.
data.omnichannelOrders[].metadatanullnullAdditional metadata supplied with the response.

GET/v1/orders/{orderId}Get Order Details

Retrieve the full details of a specific order using its Omnichannel ID.

Parameters

NameTypeRequiredDescription
orderIdstringYesThe unique Omnichannel Order ID (UUID or numeric string).

Response

json
{
  "status": 200,
  "code": "omnichannel_order_found",
  "message": "Omnichannel order successfully retrieved.",
  "data": {
    "omnichannelOrderId": "12345678",
    "reportOrderId": 123456789,
    "orderUuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "brandId": 100,
    "restaurantId": 200,
    "customerId": 5001,
    "userId": null,
    "dailyOrderId": 42,
    "status": "PAID",
    "channelId": "2",
    "consumptionModeId": 1,
    "deviceId": "WEB-001",
    "deviceName": "Web Ordering",
    "seller": null,
    "ticketNumber": "A042",
    "tableName": null,
    "comment": null,
    "numberOfGuests": 1,
    "currency": "EUR",
    "startDate": "2026-03-25T12:30:00.000Z",
    "lastUpdateDate": "2026-03-25T12:32:00.000Z",
    "businessYear": 2026,
    "businessMonth": 3,
    "businessDay": 25,
    "service": 0,
    "shift": {
      "name": "Lunch"
    },
    "totalPriceWithTaxIncluded": 1850,
    "totalPriceWithTaxExcluded": 1542,
    "totalPriceDiscountedWithTaxIncluded": 1550,
    "totalPriceDiscountedWithTaxExcluded": 1292,
    "totalTax": 258,
    "totalDiscount": 300,
    "turnover": 1550,
    "totalAmountFree": 0,
    "totalItemFree": 0,
    "totalAmountCancelled": 0,
    "totalItemCancelled": 0,
    "items": [
      {
        "itemId": 5001,
        "parentItemId": null,
        "name": "Classic Burger",
        "type": "PRODUCT",
        "status": "VALIDATED",
        "quantity": 1000,
        "totalPriceWithTaxIncluded": 1200,
        "originalUnitPrice": 1200,
        "itemType": "STANDARD",
        "vatValue": 1000,
        "skuValue": "BUR-001",
        "free": false,
        "tags": [
          {
            "value": "Burger"
          }
        ],
        "categories": [
          {
            "value": "Main Course"
          }
        ],
        "purchasePrice": null,
        "billingCode": null,
        "discounted": false,
        "reduced": false,
        "service": 0,
        "totalItemDiscounted": 0,
        "totalPriceDiscounted": 0,
        "cancelReason": null,
        "deviceName": "Web Ordering",
        "deviceId": "WEB-001",
        "measurementUnit": "UNIT",
        "measuredQuantity": 1
      }
    ],
    "payments": [
      {
        "type": "Card",
        "label": "Visa",
        "quantity": 1,
        "value": 1550,
        "luncheonCode": null,
        "transactionId": null
      }
    ],
    "taxes": [
      {
        "taxRate": 1000,
        "totalTax": 258,
        "totalInclTax": 1550,
        "totalExclTax": 1292
      }
    ],
    "discounts": [
      {
        "name": "SUMMER10",
        "value": 300
      }
    ],
    "fees": [
      {
        "name": "Delivery Fee",
        "taxRate": 2000,
        "quantity": 1,
        "amount": 350,
        "type": "Delivery"
      }
    ],
    "grants": [
      {
        "labelTicket": "SUBV REPAS",
        "amount": 50,
        "quantity": 1,
        "taxBreakdowns": [
          {
            "taxRate": 1000,
            "totalInclTax": 30,
            "totalExclTax": 27,
            "totalTax": 3,
            "discountableType": "PRODUCT",
            "feeType": null
          },
          {
            "taxRate": 10,
            "totalInclTax": 18,
            "totalExclTax": 18,
            "totalTax": 0,
            "discountableType": "FEE",
            "feeType": "AdmissionFee"
          },
          {
            "taxRate": 10,
            "totalInclTax": 2,
            "totalExclTax": 2,
            "totalTax": 0,
            "discountableType": "FEE",
            "feeType": "RoyaltyFee"
          }
        ]
      }
    ],
    "entranceFees": [],
    "loyaltyPrograms": [],
    "pricingRule": null,
    "customer": {
      "phone": "+33612345678",
      "email": "jean.dupont@example.com",
      "firstName": "Jean",
      "lastName": "Dupont",
      "badgeNumber": null,
      "disabledAt": null,
      "student": null
    },
    "restaurant": {
      "name": "Chez Yann",
      "contactPhone": "0147689047",
      "externalId": "SITE01_REST01",
      "address": {
        "streetNumber": "12",
        "route": "Rue de la Paix",
        "postalCode": "75002",
        "locality": "Paris"
      }
    },
    "deliveryAddress": {
      "phone": "+33612345678",
      "route": "45 Avenue des Champs-Élysées",
      "postalCode": "75008",
      "locality": "Paris",
      "streetNumber": "45",
      "additionalInfo": "3rd floor",
      "digicode": "4521",
      "apartmentNumber": "12B"
    },
    "photos": [],
    "isCancellable": true,
    "isRefundable": true,
    "cancellationReason": null,
    "cancellationReasonDescription": null,
    "metadata": null
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"omnichannel_order_found"Machine-readable application code for the result.
messagestring"Omnichannel order successfully retrieved."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.omnichannelOrderIdstring"12345678"Identifier of the associated omnichannel order.
data.reportOrderIdinteger123456789Identifier of the associated report order.
data.orderUuidstring"a1b2c3d4-e5f6-7890-abcd-ef1234567890"The order uuid value.
data.brandIdinteger100Identifier of the brand.
data.restaurantIdinteger200Identifier of the restaurant.
data.customerIdinteger5001Identifier of the customer.
data.userIdnullnullIdentifier of the user.
data.dailyOrderIdinteger42Identifier of the associated daily order.
data.statusstring"PAID"HTTP status code returned by the API.
data.channelIdstring"2"Identifier of the associated channel.
data.consumptionModeIdinteger1Identifier of the associated consumption mode.
data.deviceIdstring"WEB-001"Identifier of the associated device.
data.deviceNamestring"Web Ordering"The device name value.
data.sellernullnullThe seller value.
data.ticketNumberstring"A042"The ticket number value.
data.tableNamenullnullThe table name value.
data.commentnullnullThe comment value.
data.numberOfGuestsinteger1The number of guests value.
data.currencystring"EUR"ISO 4217 currency code.
data.startDatestring"2026-03-25T12:30:00.000Z"Date or timestamp for start.
data.lastUpdateDatestring"2026-03-25T12:32:00.000Z"Date or timestamp for last update.
data.businessYearinteger2026The business year value.
data.businessMonthinteger3The business month value.
data.businessDayinteger25The business day value.
data.serviceinteger0The service value.
data.shiftobject{…}Object containing shift fields.
data.shift.namestring"Lunch"The name value.
data.totalPriceWithTaxIncludedinteger1850The total price with tax included value.
data.totalPriceWithTaxExcludedinteger1542The total price with tax excluded value.
data.totalPriceDiscountedWithTaxIncludedinteger1550The total price discounted with tax included value.
data.totalPriceDiscountedWithTaxExcludedinteger1292The total price discounted with tax excluded value.
data.totalTaxinteger258The total tax value.
data.totalDiscountinteger300The total discount value.
data.turnoverinteger1550The turnover value.
data.totalAmountFreeinteger0The total amount free value.
data.totalItemFreeinteger0The total item free value.
data.totalAmountCancelledinteger0The total amount cancelled value.
data.totalItemCancelledinteger0The total item cancelled value.
data.itemsarray[…]List of items entries.
data.items[]object{…}Object containing items fields.
data.items[].itemIdinteger5001Identifier of the associated item.
data.items[].parentItemIdnullnullIdentifier of the associated parent item.
data.items[].namestring"Classic Burger"The name value.
data.items[].typestring"PRODUCT"The type value.
data.items[].statusstring"VALIDATED"HTTP status code returned by the API.
data.items[].quantityinteger1000The quantity value.
data.items[].totalPriceWithTaxIncludedinteger1200The total price with tax included value.
data.items[].originalUnitPriceinteger1200The original unit price value.
data.items[].itemTypestring"STANDARD"The item type value.
data.items[].vatValueinteger1000The vat value value.
data.items[].skuValuestring"BUR-001"The sku value value.
data.items[].freebooleanfalseThe free value.
data.items[].tagsarray[…]List of tags entries.
data.items[].tags[]object{…}Object containing tags fields.
data.items[].tags[].valuestring"Burger"The value value.
data.items[].categoriesarray[…]List of categories entries.
data.items[].categories[]object{…}Object containing categories fields.
data.items[].categories[].valuestring"Main Course"The value value.
data.items[].purchasePricenullnullThe purchase price value.
data.items[].billingCodenullnullThe billing code value.
data.items[].discountedbooleanfalseThe discounted value.
data.items[].reducedbooleanfalseThe reduced value.
data.items[].serviceinteger0The service value.
data.items[].totalItemDiscountedinteger0The total item discounted value.
data.items[].totalPriceDiscountedinteger0The total price discounted value.
data.items[].cancelReasonnullnullThe cancel reason value.
data.items[].deviceNamestring"Web Ordering"The device name value.
data.items[].deviceIdstring"WEB-001"Identifier of the associated device.
data.items[].measurementUnitstring"UNIT"The measurement unit value.
data.items[].measuredQuantityinteger1The measured quantity value.
data.paymentsarray[…]List of payments entries.
data.payments[]object{…}Object containing payments fields.
data.payments[].typestring"Card"The type value.
data.payments[].labelstring"Visa"The label value.
data.payments[].quantityinteger1The quantity value.
data.payments[].valueinteger1550The value value.
data.payments[].luncheonCodenullnullThe luncheon code value.
data.payments[].transactionIdnullnullIdentifier of the transaction.
data.taxesarray[…]List of taxes entries.
data.taxes[]object{…}Object containing taxes fields.
data.taxes[].taxRateinteger1000The tax rate value.
data.taxes[].totalTaxinteger258The total tax value.
data.taxes[].totalInclTaxinteger1550The total incl tax value.
data.taxes[].totalExclTaxinteger1292The total excl tax value.
data.discountsarray[…]List of discounts entries.
data.discounts[]object{…}Object containing discounts fields.
data.discounts[].namestring"SUMMER10"The name value.
data.discounts[].valueinteger300The value value.
data.feesarray[…]List of fees entries.
data.fees[]object{…}Object containing fees fields.
data.fees[].namestring"Delivery Fee"The name value.
data.fees[].taxRateinteger2000The tax rate value.
data.fees[].quantityinteger1The quantity value.
data.fees[].amountinteger350The amount value.
data.fees[].typestring"Delivery"The type value.
data.grantsarray[…]List of grants entries.
data.grants[]object{…}Object containing grants fields.
data.grants[].labelTicketstring"SUBV REPAS"The label ticket value.
data.grants[].amountinteger50The amount value.
data.grants[].quantityinteger1The quantity value.
data.grants[].taxBreakdownsarray[…]List of tax breakdowns entries.
data.grants[].taxBreakdowns[]object{…}Object containing tax breakdowns fields.
data.grants[].taxBreakdowns[].taxRateinteger1000The tax rate value.
data.grants[].taxBreakdowns[].totalInclTaxinteger30The total incl tax value.
data.grants[].taxBreakdowns[].totalExclTaxinteger27The total excl tax value.
data.grants[].taxBreakdowns[].totalTaxinteger3The total tax value.
data.grants[].taxBreakdowns[].discountableTypestring"PRODUCT"The discountable type value.
data.grants[].taxBreakdowns[].feeTypenullnullThe fee type value.
data.entranceFeesarray[]List of entrance fees entries.
data.loyaltyProgramsarray[]List of loyalty programs entries.
data.pricingRulenullnullThe pricing rule value.
data.customerobject{…}Object containing customer fields.
data.customer.phonestring"+33612345678"Phone number.
data.customer.emailstring"jean.dupont@example.com"Email address.
data.customer.firstNamestring"Jean"The first name value.
data.customer.lastNamestring"Dupont"The last name value.
data.customer.badgeNumbernullnullThe badge number value.
data.customer.disabledAtnullnullDate or timestamp for disabled.
data.customer.studentnullnullThe student value.
data.restaurantobject{…}Object containing restaurant fields.
data.restaurant.namestring"Chez Yann"The name value.
data.restaurant.contactPhonestring"0147689047"The contact phone value.
data.restaurant.externalIdstring"SITE01_REST01"Identifier in the connected external system.
data.restaurant.addressobject{…}Object containing address fields.
data.restaurant.address.streetNumberstring"12"The street number value.
data.restaurant.address.routestring"Rue de la Paix"The route value.
data.restaurant.address.postalCodestring"75002"The postal code value.
data.restaurant.address.localitystring"Paris"The locality value.
data.deliveryAddressobject{…}Object containing delivery address fields.
data.deliveryAddress.phonestring"+33612345678"Phone number.
data.deliveryAddress.routestring"45 Avenue des Champs-Élysées"The route value.
data.deliveryAddress.postalCodestring"75008"The postal code value.
data.deliveryAddress.localitystring"Paris"The locality value.
data.deliveryAddress.streetNumberstring"45"The street number value.
data.deliveryAddress.additionalInfostring"3rd floor"The additional info value.
data.deliveryAddress.digicodestring"4521"The digicode value.
data.deliveryAddress.apartmentNumberstring"12B"The apartment number value.
data.photosarray[]List of photos entries.
data.isCancellablebooleantrueWhether cancellable is enabled or applies.
data.isRefundablebooleantrueWhether refundable is enabled or applies.
data.cancellationReasonnullnullThe cancellation reason value.
data.cancellationReasonDescriptionnullnullThe cancellation reason description value.
data.metadatanullnullAdditional metadata supplied with the response.

OmnichannelOrder Field Reference

Complete reference for the OmnichannelOrder object returned by GET /v1/orders endpoints and used in webhook payloads.

Core Identifiers

FieldTypeDescription
omnichannelOrderIdStringUnique order identifier
reportOrderIdNumberNumeric order identifier for reporting
orderUuidString|nullUUID of the order (may be null for legacy orders)
brandIdNumberBrand identifier
restaurantIdNumberRestaurant identifier
customerIdNumber|nullCustomer identifier (null for anonymous orders)
userIdNumber|nullUser identifier (null for guest orders)
dailyOrderIdNumberSequential order number for the day
channelIdStringSales channel (1=Kiosk, 2=Web, 5=POS)
consumptionModeIdNumberConsumption mode (1=Delivery, 2=TakeAway, 3=SitIn, 4=Drive)
deviceIdStringDevice identifier
deviceNameStringDevice display name
sellerString|nullSeller name (POS orders)
ticketNumberString|nullTicket number displayed to customer
tableNameString|nullTable name (SitIn orders)
commentString|nullOrder comment from customer
numberOfGuestsNumberNumber of guests for the order
currencyStringISO 4217 currency code (e.g. EUR)

Timestamps & Business Date

FieldTypeDescription
startDateISO DateOrder creation timestamp
lastUpdateDateISO DateLast modification timestamp
businessYearNumberBusiness year of the order
businessMonthNumberBusiness month of the order
businessDayNumberBusiness day of the order
serviceNumberService number within the business day
shift{ name: String }Shift information (e.g. Lunch, Dinner)

Status

FieldTypeDescription
statusStringOrder status: PAID, CANCELLED, VALIDATED, OPEN, CLOSED
isCancellableBoolean|undefinedWhether the order can be cancelled
isRefundableBoolean|undefinedWhether the order can be refunded
cancellationReasonString|nullReason for cancellation
cancellationReasonDescriptionString|nullDetailed cancellation reason description
metadataString|nullJSON-encoded metadata of the originating Web/Kiosk order (null when the order has no Web/Kiosk counterpart, e.g. a POS sale). Carries the reserved kioskPaymentState key set to NOT_PAID_AT_KIOSK when a kiosk guest ordered to pay at the counter - this can happen while status already reads PAID, see Create Orders

Pricing & Amounts (all values in cents)

FieldTypeDescription
totalPriceWithTaxIncludedNumberTotal price including tax before discounts
totalPriceWithTaxExcludedNumberTotal price excluding tax before discounts
totalPriceDiscountedWithTaxIncludedNumberTotal price including tax after discounts
totalPriceDiscountedWithTaxExcludedNumberTotal price excluding tax after discounts
totalTaxNumberTotal tax amount
totalDiscountNumberTotal discount amount
turnoverNumberNet turnover (revenue after discounts)
totalAmountFreeNumberTotal amount of free items
totalItemFreeNumberCount of free items
totalAmountCancelledNumberTotal amount of cancelled items
totalItemCancelledNumberCount of cancelled items

Items (Array<Item>)

FieldTypeDescription
itemIdNumberUnique item identifier
parentItemIdNumber|nullParent item ID for sub-items (null for top-level items)
nameStringItem display name
typeStringItem type: PRODUCT, URSSAFCOMPENSATORYPRODUCT
statusStringItem status
quantityNumberQuantity in thousandths (1000 = 1 unit)
totalPriceWithTaxIncludedNumberTotal price including tax (cents)
originalUnitPriceNumber|nullOriginal unit price before discounts
itemTypeStringItem classification type
vatValueNumberVAT rate in basis points (1000 = 10%)
skuValueString|nullSKU identifier
freeBooleanWhether the item is free
tagsArray<{value:String}>Item tags
categoriesArray<{value:String}>Item categories
purchasePriceNumber|nullPurchase/cost price
billingCodeString|nullBilling code for accounting
discountedBooleanWhether a discount was applied
reducedBooleanWhether a price reduction was applied
serviceNumberService number
totalItemDiscountedNumberNumber of discounted items
totalPriceDiscountedNumberTotal discounted price
cancelReasonString|nullReason for item cancellation
deviceNameStringDevice that added the item
deviceIdStringDevice identifier
measurementUnitStringUnit of measurement (e.g. UNIT)
measuredQuantityNumberMeasured quantity in the given unit

Payments (Array<Payment>)

FieldTypeDescription
typeStringPayment type: Cash, Card, EWallet, Change
labelString|undefinedPayment label (e.g. Visa, Mastercard)
quantityNumberNumber of payment transactions
valueNumberPayment amount in cents
luncheonCodeString|nullLuncheon voucher code
transactionIdNumber|nullPayment transaction identifier

Taxes (Array<Tax>)

FieldTypeDescription
taxRateNumberTax rate in basis points (1000 = 10%)
totalTaxNumberTotal tax amount
totalInclTaxNumberTotal amount including tax
totalExclTaxNumberTotal amount excluding tax

Fees (Array<Fee>)

FieldTypeDescription
nameStringFee name
taxRateNumberTax rate in basis points
quantityNumberNumber of fees applied
amountNumberFee amount in cents
typeStringFee type: Delivery, Service

Discounts (Array<Discount>)

FieldTypeDescription
nameStringDiscount name or code
valueNumberDiscount amount in cents

Grants (Array<Grant>)

FieldTypeDescription
labelTicketStringLabel displayed on the ticket
amountNumberGrant amount
quantityNumberNumber of grants applied
totalAmountNumber|undefinedTotal grant amount
taxBreakdownsArray<GrantTaxBreakdown>|undefinedPer-VAT-rate breakdown of how the grant is split across discountable products and fees. See GrantTaxBreakdown below.

Grant Tax Breakdown (Array<GrantTaxBreakdown>)

Ventilation of a grant's amount across the VAT rates of the items and fees it was applied to. The sum of all totalInclTax values equals the grant amount. Useful for VAT reporting and URSSAF compliance. All monetary values are in cents.

FieldTypeDescription
taxRateNumberVAT rate this portion of the grant applies to (e.g. 1000 for 10%, 10 for legacy encoding). Mirrors the rate of the underlying product/fee.
totalInclTaxNumberGrant amount allocated to this rate, tax included (cents).
totalExclTaxNumberGrant amount allocated to this rate, tax excluded (cents).
totalTaxNumberTax portion of the allocated grant amount (cents). Equals totalInclTax - totalExclTax.
discountableTypeString|nullWhat the grant portion was applied to: PRODUCT or FEE.
feeTypeString|nullWhen discountableType is FEE, the fee category (e.g. AdmissionFee, RoyaltyFee). null for products.

Entrance Fees (Array<EntranceFee>)

FieldTypeDescription
labelTicketStringLabel displayed on the ticket
amountNumberEntrance fee amount
vatNumberVAT rate
typeStringEntrance fee type
totalTaxEntranceFeeNumberTotal tax on entrance fee
quantityNumberNumber of entrance fees
totalAmountNumber|undefinedTotal entrance fee amount

Loyalty

FieldTypeDescription
loyaltyProgramsArray<{name:String, amount:Number}>Loyalty programs applied to the order
pricingRuleObject|nullPricing rule applied: {code:String, applyScope:String} or null

Customer (Object|null)

FieldTypeDescription
phoneString|nullCustomer phone number
emailString|nullCustomer email address
firstNameStringCustomer first name
lastNameStringCustomer last name
badgeNumberString|nullCustomer badge number
disabledAtDate|nullDate when customer was disabled (null if active)
studentObject|nullStudent info: {class, section, subSection, studentNumber} or null
balanceInformationObject|undefinedE-wallet balance: {ewalletBalanceBeforeOrder, ewalletBalanceAfterOrder}

Restaurant (Object|null)

FieldTypeDescription
nameStringRestaurant name
contactPhoneStringRestaurant contact phone number
externalIdStringExternal identifier for the restaurant
addressObjectAddress: {streetNumber, route, postalCode, locality, country}
legalObject|undefinedLegal information for the restaurant

Delivery Address (Object|undefined)

FieldTypeDescription
phoneString|nullDelivery contact phone
additionalInfoString|nullAdditional delivery information
digicodeString|nullBuilding access code
apartmentNumberString|nullApartment number
localityString|nullCity or locality
routeString|nullStreet name
postalCodeString|nullPostal code
streetNumberString|nullStreet number

Note: This OmnichannelOrder object is the same structure used in orders.paid and orders.cancelled webhook event payloads. See Order Events for webhook-specific documentation.

Customer Order History

Retrieve the full order history for a specific customer. This is useful for "My Orders" sections in apps or websites. This is the List Orders endpoint above, called with customerId as the single scope parameter (do not combine it with brandId). See the parameter table above for the full contract.

GET /v1/orders?customerId=510&limit=10&order=-startDate
{
    "status": 200,
    "code": "omnichannel_orders_succeed",
    "data": {
        "count": 8,
        "omnichannelOrders": [
            {
                "reportOrderId": 239190,
                "customerId": 510,
                "restaurantId": 255,
                "brandId": 10,
                "status": "PAID",
                "dailyOrderId": 5,
                "startDate": "2023-05-05T14:41:36.000Z",
                "omnichannelOrderId": "286911",
                "totalPriceDiscountedWithTaxIncluded": 300000,
                "currency": "EUR",
                "items": [
                    {
                        "itemId": 1086408,
                        "name": "Eau Nestlé",
                        "quantity": 1000,
                        "totalPriceWithTaxIncluded": 300000
                    }
                ],
                "restaurant": {
                    "name": "Chez Yann",
                    "contactPhone": "0647689047"
                }
            }
        ]
    }
}

Search Orders (Cursor-based)

Search orders using cursor-based pagination. More efficient than offset-based pagination for large datasets, with stable results when data changes between pages. Returns a lightweight payload optimized for list views.

This endpoint returns a lightweight response without items, taxes, grants, entrance fees, photos, or shift data. To retrieve the full details of a specific order, use GET /v1/orders/{orderId}.

GET/v1/orders/searchSearch Omnichannel Orders

Search and filter orders using cursor-based pagination. Requires startDate and endDate, and exactly one scope parameter among: brandId, customerId, restaurantId, restaurantIds, or brandIds. Returns a lightweight payload without items, taxes, grants, entrance fees, photos, shift, or ticket HTML. The order metadata is not loaded either: metadata is always null here, even on an order that has one. Read it with GET /v1/orders, GET /v1/orders/{orderId} or GET /v1/orders/uuid/{orderUuid}.

Parameters

NameTypeRequiredDescription
brandIdintegerNoFilter by brand ID (mutually exclusive with other scope params).
customerIdintegerNoFilter by customer ID.
restaurantIdintegerNoFilter by restaurant ID.
restaurantIdsstringNoComma-separated list of restaurant IDs.
brandIdsstringNoComma-separated list of brand IDs.
startDateISO dateYesStart of the date range (required).
endDateISO dateYesEnd of the date range (required, must be >= startDate).
cursorstringNoOpaque cursor for the next page (from nextCursor in previous response).
limitintegerNoNumber of results per page (1-100, default 20).
channelIdsstringNoComma-separated channel IDs.
consumptionModeIdsstringNoComma-separated consumption mode IDs.
statusstringNoComma-separated statuses: PAID, VALIDATED, CANCELLED, PAID_CANCELLED, CONTRA_ENTRY.
searchstringNoFree-text search on order ID.
customerNamestringNoFilter by customer name.
badgeNumberstringNoFilter by badge number.
pricingRulestringNoFilter by pricing rule code.
phoneNumberstringNoFilter by phone number.
restaurantNamestringNoFilter by restaurant name.
ticketNumberstringNoFilter by ticket number or daily order ID.
ticketStartDateISO dateNoFilter by ticket date (lastUpdateDate) range start.
ticketEndDateISO dateNoFilter by ticket date range end.
totalPriceMinintegerNoMinimum total price (in cents).
totalPriceMaxintegerNoMaximum total price (in cents).
turnoverMinintegerNoMinimum turnover (in cents).
turnoverMaxintegerNoMaximum turnover (in cents).
itemsTagstringNoFilter by item tag.
orderstringNoSort field. Prefix with - for descending (e.g. -startDate). Supported: startDate, status, lastUpdateDate, ticketNumber, consumptionMode, turnover, totalPriceDiscountedWithTaxIncluded, customerName, phoneNumber, badgeNumber, pricingRule, restaurantName, channelId, omnichannelOrderId, and more.

Response

json
{
  "status": 200,
  "code": "omnichannel_orders_search_succeed",
  "message": "Omnichannel orders search successfully retrieved.",
  "data": {
    "orders": [
      {
        "omnichannelOrderId": "12345678",
        "brandId": 100,
        "restaurantId": 200,
        "customerId": 300,
        "status": "PAID",
        "dailyOrderId": 42,
        "ticketNumber": "T-042",
        "startDate": "2025-12-03T13:09:05.000Z",
        "lastUpdateDate": "2025-12-03T13:09:10.000Z",
        "consumptionModeId": 1,
        "channelId": "5",
        "totalPriceDiscountedWithTaxIncluded": 1500,
        "turnover": 1500,
        "payments": [
          {
            "type": "CREDIT_CARD",
            "value": 1500
          }
        ],
        "customer": {
          "firstName": "John",
          "lastName": "Doe",
          "email": "john@example.com",
          "phone": "+33600000000",
          "badgeNumber": "B001"
        },
        "restaurant": {
          "name": "Le Bistrot"
        },
        "pricingRule": {
          "code": "STANDARD",
          "applyScope": "ALL"
        },
        "items": [],
        "photos": [],
        "grants": [],
        "entranceFees": [],
        "metadata": null
      }
    ],
    "nextCursor": "eyJ2IjoiMjAyNS0xMi0wM1QxMzowOTowNS4wMDBaIiwiaWQiOjEyMzQ1fQ==",
    "hasMore": true
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"omnichannel_orders_search_succeed"Machine-readable application code for the result.
messagestring"Omnichannel orders search successfully retrieved."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.ordersarray[…]List of orders entries.
data.orders[]object{…}Object containing orders fields.
data.orders[].omnichannelOrderIdstring"12345678"Identifier of the associated omnichannel order.
data.orders[].brandIdinteger100Identifier of the brand.
data.orders[].restaurantIdinteger200Identifier of the restaurant.
data.orders[].customerIdinteger300Identifier of the customer.
data.orders[].statusstring"PAID"HTTP status code returned by the API.
data.orders[].dailyOrderIdinteger42Identifier of the associated daily order.
data.orders[].ticketNumberstring"T-042"The ticket number value.
data.orders[].startDatestring"2025-12-03T13:09:05.000Z"Date or timestamp for start.
data.orders[].lastUpdateDatestring"2025-12-03T13:09:10.000Z"Date or timestamp for last update.
data.orders[].consumptionModeIdinteger1Identifier of the associated consumption mode.
data.orders[].channelIdstring"5"Identifier of the associated channel.
data.orders[].totalPriceDiscountedWithTaxIncludedinteger1500The total price discounted with tax included value.
data.orders[].turnoverinteger1500The turnover value.
data.orders[].paymentsarray[…]List of payments entries.
data.orders[].payments[]object{…}Object containing payments fields.
data.orders[].payments[].typestring"CREDIT_CARD"The type value.
data.orders[].payments[].valueinteger1500The value value.
data.orders[].customerobject{…}Object containing customer fields.
data.orders[].customer.firstNamestring"John"The first name value.
data.orders[].customer.lastNamestring"Doe"The last name value.
data.orders[].customer.emailstring"john@example.com"Email address.
data.orders[].customer.phonestring"+33600000000"Phone number.
data.orders[].customer.badgeNumberstring"B001"The badge number value.
data.orders[].restaurantobject{…}Object containing restaurant fields.
data.orders[].restaurant.namestring"Le Bistrot"The name value.
data.orders[].pricingRuleobject{…}Object containing pricing rule fields.
data.orders[].pricingRule.codestring"STANDARD"Machine-readable application code for the result.
data.orders[].pricingRule.applyScopestring"ALL"The apply scope value.
data.orders[].itemsarray[]List of items entries.
data.orders[].photosarray[]List of photos entries.
data.orders[].grantsarray[]List of grants entries.
data.orders[].entranceFeesarray[]List of entrance fees entries.
data.orders[].metadatanullnullAdditional metadata supplied with the response.
data.nextCursorstring"eyJ2IjoiMjAyNS0xMi0wM1QxMzowOTowNS4wMDBaIiwiaWQiOjEyMzQ1fQ=="Cursor to use when retrieving the next page.
data.hasMorebooleantrueWhether more is enabled or applies.

Order History

Retrieve the chronological history of status changes for a specific order. Useful for tracking the lifecycle of an order from creation through fulfillment.

GET/v1/orders/{orderId}/historyGet Order History

Returns the full status history timeline for a given Omnichannel Order ID.

Parameters

NameTypeRequiredDescription
orderIdstringYesThe unique Omnichannel Order ID.

Response

json
{
  "status": 200,
  "code": "omnichannel_orders_succeed",
  "data": [
    {
      "status": "CREATED",
      "date": "2025-12-03T15:50:00.000Z"
    },
    {
      "status": "VALIDATED",
      "date": "2025-12-03T15:50:02.000Z"
    },
    {
      "status": "PAID",
      "date": "2025-12-03T15:50:05.000Z"
    }
  ]
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"omnichannel_orders_succeed"Machine-readable application code for the result.
dataarray[…]Endpoint-specific response payload.
data[]object{…}Endpoint-specific response payload.
data[].statusstring"CREATED"HTTP status code returned by the API.
data[].datestring"2025-12-03T15:50:00.000Z"The date value.

Get Order by UUID

Retrieve an order using its UUID. This is particularly useful for anonymous orders or when the numeric order ID is not available.

GET/v1/orders/uuid/{orderUuid}Get Order by UUID

Retrieve the full details of a specific order using its UUID. Supports anonymous order lookup when restaurantId and channelId query parameters are provided.

Parameters

NameTypeRequiredDescription
orderUuidstringYesThe order UUID.
restaurantIdstringNoRestaurant ID (needed for anonymous order lookup).
channelIdintegerNoChannel ID, must be 2 (WEB) for anonymous orders.

Response

json
{
  "status": 200,
  "code": "omnichannel_order_found",
  "message": "Omnichannel order successfully retrieved.",
  "data": {
    "omnichannelOrderId": "12345678",
    "orderUuid": "c4d2261e-2779-4eb6-beb0-cb41235c751e",
    "status": "PAID",
    "totalPriceWithTaxIncluded": 1500,
    "restaurantId": 2285,
    "brandId": 100,
    "metadata": null
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"omnichannel_order_found"Machine-readable application code for the result.
messagestring"Omnichannel order successfully retrieved."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.omnichannelOrderIdstring"12345678"Identifier of the associated omnichannel order.
data.orderUuidstring"c4d2261e-2779-4eb6-beb0-cb41235c751e"The order uuid value.
data.statusstring"PAID"HTTP status code returned by the API.
data.totalPriceWithTaxIncludedinteger1500The total price with tax included value.
data.restaurantIdinteger2285Identifier of the restaurant.
data.brandIdinteger100Identifier of the brand.
data.metadatanullnullAdditional metadata supplied with the response.

Statistics & Attendance

Endpoints for retrieving order counts, attendance data, and footfall statistics. Useful for capacity planning, slot availability, and operational reporting.

Attendance

Key Concepts

Business Day

The business sales day of a restaurant. Takes deferred closing into account (not necessarily calendar day).

Attendance Count

Count of covers/customers for the business day, aggregated by channel. Calculated as max(quantité admission).

Example: If a ticket has 1 Main, 2 Admission A, and 3 Admission B, the attendance recorded is 3.

Channels

Standardized codes representing the source of orders:

  • 1Kiosk
  • 2Web
  • 5POS

GET/restaurants/{restaurantId}/attendanceGet Restaurant Attendance

Retrieve real-time attendance counts for a specific restaurant and business day.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant.
businessDayYYYY-MM-DDNoThe target business day. Defaults to the current day in the restaurant time zone.

Response

json
{
  "status": 200,
  "code": "success",
  "message": "Success",
  "data": {
    "restaurantId": 4105,
    "businessDay": "2025-07-16",
    "attendance": {
      "total": 2630,
      "channels": [
        {
          "code": "5",
          "label": "POS",
          "isEnabled": true,
          "total": 261
        },
        {
          "code": "1",
          "label": "KIOSK",
          "isEnabled": true,
          "total": 0
        },
        {
          "code": "2",
          "label": "WEB",
          "isEnabled": true,
          "total": 2369
        }
      ]
    }
  },
  "metadata": {
    "generatedAt": "2025-07-16T15:14:00.000Z"
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"success"Machine-readable application code for the result.
messagestring"Success"Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.restaurantIdinteger4105Identifier of the restaurant.
data.businessDaystring"2025-07-16"The business day value.
data.attendanceobject{…}Object containing attendance fields.
data.attendance.totalinteger2630Total number of matching records.
data.attendance.channelsarray[…]List of channels entries.
data.attendance.channels[]object{…}Object containing channels fields.
data.attendance.channels[].codestring"5"Machine-readable application code for the result.
data.attendance.channels[].labelstring"POS"The label value.
data.attendance.channels[].isEnabledbooleantrueWhether this feature is enabled.
data.attendance.channels[].totalinteger261Total number of matching records.
metadataobject{…}Additional metadata supplied with the response.
metadata.generatedAtstring"2025-07-16T15:14:00.000Z"Date or timestamp for generated.

Order Counts

GET/orders/count_by_intervalCount Orders by Interval

Returns order counts grouped by a time interval (in minutes) within a date range. The date range must not exceed one month.

Parameters

NameTypeRequiredDescription
startDateISO dateYesStart of the date range (ISO 8601).
endDateISO dateYesEnd of the date range (ISO 8601). Must be >= startDate and within 1 month.
intervalintegerYesInterval in minutes (must be > 0).
brandIdintegerNoFilter by brand. Defaults to authenticated user brand.
restaurantIdintegerNoFilter by restaurant.

Response

json
{
  "status": 200,
  "code": "count_order_success",
  "message": "Order counts retrieved.",
  "data": [
    {
      "date": "2025-12-03T12:00:00.000Z",
      "count": 14
    },
    {
      "date": "2025-12-03T12:30:00.000Z",
      "count": 22
    },
    {
      "date": "2025-12-03T13:00:00.000Z",
      "count": 8
    }
  ]
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"count_order_success"Machine-readable application code for the result.
messagestring"Order counts retrieved."Human-readable result message. Do not use this value for program logic.
dataarray[…]Endpoint-specific response payload.
data[]object{…}Endpoint-specific response payload.
data[].datestring"2025-12-03T12:00:00.000Z"The date value.
data[].countinteger14Total number of matching records.

GET/orders/schedule_availabilitySchedule Slot Availability

Returns availability for every configured schedule window of a restaurant and consumption mode: the current order count and the configured ordering quota per window. A window is full when count >= orderingQuota (a quota of 0 means the window is closed to ordering). Windows are keyed by day + minute-of-day (the same clock window can recur on several weekdays). No authentication required.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe restaurant ID.
consumptionModeintegerYesConsumption mode number (1=SIT_IN, 2=TAKE_AWAY, 3=DELIVERY, 4=DRIVE).
areaUuidstringNoOptional delivery area UUID.

Response

json
{
  "status": 200,
  "code": "count_order_success",
  "message": "Order counts retrieved.",
  "data": [
    {
      "day": "MON",
      "start": 720,
      "end": 735,
      "count": 12,
      "orderingQuota": 10
    },
    {
      "day": "MON",
      "start": 735,
      "end": 750,
      "count": 3,
      "orderingQuota": 10
    },
    {
      "day": "MON",
      "start": 750,
      "end": 765,
      "count": 0,
      "orderingQuota": 0
    }
  ]
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"count_order_success"Machine-readable application code for the result.
messagestring"Order counts retrieved."Human-readable result message. Do not use this value for program logic.
dataarray[…]Endpoint-specific response payload.
data[]object{…}Endpoint-specific response payload.
data[].daystring"MON"The day value.
data[].startinteger720The start value.
data[].endinteger735The end value.
data[].countinteger12Total number of matching records.
data[].orderingQuotainteger10The ordering quota value.

GET/orders/areas/{areaUuid}/count_by_schedulesCount Orders by Schedule for a Delivery Area

Returns order counts grouped by schedule time slots for a specific delivery area. Requires authentication and rights over the restaurant.

Parameters

NameTypeRequiredDescription
areaUuidstring (UUID)YesThe delivery area UUID.
restaurantIdintegerYesThe restaurant ID.
consumptionModeintegerYesConsumption mode number.

Response

json
{
  "status": 200,
  "code": "count_order_success",
  "message": "Order counts retrieved.",
  "data": [
    {
      "startTime": "18:00",
      "endTime": "18:30",
      "count": 3
    },
    {
      "startTime": "18:30",
      "endTime": "19:00",
      "count": 7
    }
  ]
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"count_order_success"Machine-readable application code for the result.
messagestring"Order counts retrieved."Human-readable result message. Do not use this value for program logic.
dataarray[…]Endpoint-specific response payload.
data[]object{…}Endpoint-specific response payload.
data[].startTimestring"18:00"The start time value.
data[].endTimestring"18:30"The end time value.
data[].countinteger3Total number of matching records.