BETA: Please note that the current endpoints are considered beta. It is possible there may be changes before these endpoints are finalised.

Cart

Get a Cart

This endpoint allows developers to fetch a previously created cart.

get /organizations/{organizationId}/locations/{locationId}/cart/{cartId}

Parameters

NameTypeInDescription
organizationIdstringpathOrganization ID
locationIdstringpathLocation ID
cartIdstringpath

Responses

200: OK response.Cart
{
  "adjustments": [
    {
      "amount": -500,
      "id": "DISC001",
      "label": "Taco Tuesday 2-for-1 Deal",
      "taxIncluded": -65
    },
    {
      "amount": -500,
      "id": "DISC001",
      "label": "Taco Tuesday 2-for-1 Deal",
      "taxIncluded": -65
    },
    {
      "amount": -500,
      "id": "DISC001",
      "label": "Taco Tuesday 2-for-1 Deal",
      "taxIncluded": -65
    }
  ],
  "createdAt": "2021-08-04T04:22:43Z",
  "currency": "SGD",
  "deliveryAddress": {
    "apartment": "2B",
    "coords": {
      "latitude": -37.802,
      "longitude": 144.988
    },
    "country": "Australia",
    "locality": "Collingwood",
    "postcode": "3066",
    "region": "Victoria",
    "streetAddress": "41 Derby Street"
  },
  "fulfillAt": "2022-01-12T21:00:00.000Z",
  "id": "20e543f0-ddcd-4059-aaf3-7b21952c06f9",
  "items": [
    {
      "amount": 1100,
      "id": "FOOD001",
      "note": "No tomato please",
      "options": [
        {
          "choices": [
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        },
        {
          "choices": [
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        }
      ],
      "price": {
        "amount": 2300,
        "taxIncluded": 250,
        "taxRate": 0.05
      },
      "quantity": 1,
      "title": "Burger"
    },
    {
      "amount": 1100,
      "id": "FOOD001",
      "note": "No tomato please",
      "options": [
        {
          "choices": [
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        },
        {
          "choices": [
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        }
      ],
      "price": {
        "amount": 2300,
        "taxIncluded": 250,
        "taxRate": 0.05
      },
      "quantity": 1,
      "title": "Burger"
    },
    {
      "amount": 1100,
      "id": "FOOD001",
      "note": "No tomato please",
      "options": [
        {
          "choices": [
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        },
        {
          "choices": [
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            },
            {
              "id": "SAUCE001",
              "options": [
                {},
                {},
                {},
                {}
              ],
              "price": {
                "amount": 2300,
                "taxIncluded": 250,
                "taxRate": 0.05
              },
              "quantity": 2,
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        }
      ],
      "price": {
        "amount": 2300,
        "taxIncluded": 250,
        "taxRate": 0.05
      },
      "quantity": 1,
      "title": "Burger"
    }
  ],
  "notes": "Red coloured house with black stripes.",
  "serviceRef": "5",
  "status": "VALID",
  "total": 10000,
  "validatedAt": "2021-08-04T04:23:09Z"
}

Accept a Cart

This endpoint allows the pos to validate and make modifications to the contents of a customer's cart.

put /organizations/{organizationId}/locations/{locationId}/cart/{cartId}/valid

Parameters

NameTypeInDescription
organizationIdstringpathOrganization ID
locationIdstringpathLocation ID
cartIdstringpath

Request Body

CartValidationPayload
{
  "adjustments": [
    {
      "amount": -500,
      "id": "DISC001",
      "label": "Taco Tuesday 2-for-1 Deal",
      "taxIncluded": -65
    },
    {
      "amount": -500,
      "id": "DISC001",
      "label": "Taco Tuesday 2-for-1 Deal",
      "taxIncluded": -65
    },
    {
      "amount": -500,
      "id": "DISC001",
      "label": "Taco Tuesday 2-for-1 Deal",
      "taxIncluded": -65
    }
  ]
}

Responses

204: No Content response.
409: conflict: Conflict response.

Reject a Cart

This endpoint allows the pos to reject a customer's cart

put /organizations/{organizationId}/locations/{locationId}/cart/{cartId}/invalid

Parameters

NameTypeInDescription
organizationIdstringpathOrganization ID
locationIdstringpathLocation ID
cartIdstringpath

Responses

204: No Content response.
409: conflict: Conflict response.

Models

Cart

NameTypeDescription
idstringA Unique ID for the cart.
createdAtstringWhen this cart was created
fulfillAtstring(optional) Timestamp to be attached to the cart for scheduled pickup orders
validatedAtstring(optional) When this cart was marked valid
currencystring(enum)(optional) The currency used amounts specified in this cart
"AUD", "SGD", "GBP", "NZD", "USD"
notesstring(optional) Optional customer provided note to be attached to the order or instructions for delivery
serviceRefstring(optional) Table or Room number, may not always be numeric
statusstring(enum)(optional) Validation status of the cart
"PENDING", "VALID", "INVALID", "EXPIRED"
totalintegerTotal value of the cart.
deliveryAddressDeliveryAddress(optional)
adjustmentsAdjustment[](optional) Any POS-supplied adjustments to the cart, for example 2-for-1 and combo adjustments
itemsCartItem[]The contents of the customer's cart

Adjustment

NameTypeDescription
idstringIdentifier of the source of this adjustment
amountintegerThe amount of the adjustment. Discounts should be negative, and surcharges positive. This is a tax-inclusive amount.
labelstringDescriptive text to be displayed to the customer for this adjustment
taxIncludedinteger(optional) The tax amount of the adjustment. Discounts should be negative, and surcharges positive.

DeliveryAddress

NameTypeDescription
apartmentstring(optional) Apartment / Suite / Unit
countrystringCountry
localitystringSuburb / Sub-region
postcodestringPostcode / Postal code
regionstringRegion / Province / State
streetAddressstringStreet address (number + name)
coordsCoords(optional)

Coords

NameTypeDescription
latitudenumberLatitude
longitudenumberLongitude

CartItem

Represents a single line item on an order or bill

NameTypeDescription
idstringThe ID of the item provided by the external system
titlestringDisplay name for this product
amountintegerThe per-quantity base-amount of this item (ie excluding options)
notestring(optional) Optional note to be attached to this item
quantityintegerThe quantity of items on this order line item
pricePrice
optionsCartItemOption[]The options with selected choices provided by the user

CartItemOption

Set of options for an item

NameTypeDescription
idstringThe option set ID
titlestringDisplay name of the option set
choicesCartItemOptionChoice[]The choices selected by the user for this option

CartItemOptionChoice

Represents a choice or selection on an option set

NameTypeDescription
idstringThe choice ID
titlestringDisplay name of this choice
quantityintegerThe quantity of this choice on this order line item
pricePrice
optionsCartItemOption[]

Price

Specifies the price to charge for ordering a product.

NameTypeDescription
amountinteger Specifies the price to charge for ordering the product including tax. Price is in the lowest denomination (e.g., cents). Price should always be integer value (never decimals). Price should always be set even if price is 0.
taxIncludedinteger(optional) Specifies the tax, in the lowest denomination (e.g., cents), that was added to the product. This can be null if tax is unknown. All price.taxIncluded fields on all products can either all be of type int or all be undefined/null. If price.taxRate is a float then price.taxIncluded is required.
taxRatenumber(optional) Specifies the tax rate, as a decimal value (e.g., 5% = 0.05), that was applied to the product. This can be null if tax rate is unknown. All price.taxRate fields on all products can either all be of type float or all be undefined/null. When a price.taxRates is a float price.taxIncluded is required.

CartValidationPayload

NameTypeDescription
adjustmentsAdjustment[](optional)

In this article