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"
    },
    {
      "amount": -500,
      "id": "DISC001",
      "label": "Taco Tuesday 2-for-1 Deal"
    }
  ],
  "createdAt": "2021-08-04T04:22:43Z",
  "currency": "AUD",
  "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": [
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        },
        {
          "choices": [
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        },
        {
          "choices": [
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        }
      ],
      "quantity": 1,
      "title": "Burger"
    },
    {
      "amount": 1100,
      "id": "FOOD001",
      "note": "No tomato please",
      "options": [
        {
          "choices": [
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        },
        {
          "choices": [
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        },
        {
          "choices": [
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        }
      ],
      "quantity": 1,
      "title": "Burger"
    },
    {
      "amount": 1100,
      "id": "FOOD001",
      "note": "No tomato please",
      "options": [
        {
          "choices": [
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        },
        {
          "choices": [
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        },
        {
          "choices": [
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            },
            {
              "amount": 20,
              "id": "SAUCE001",
              "title": "BBQ Sauce"
            }
          ],
          "id": "OPTSAUCE",
          "title": "Sauce Selection"
        }
      ],
      "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"
    },
    {
      "amount": -500,
      "id": "DISC001",
      "label": "Taco Tuesday 2-for-1 Deal"
    },
    {
      "amount": -500,
      "id": "DISC001",
      "label": "Taco Tuesday 2-for-1 Deal"
    },
    {
      "amount": -500,
      "id": "DISC001",
      "label": "Taco Tuesday 2-for-1 Deal"
    }
  ]
}

Responses

204: No Content response.
409: 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 response.

Models

Cart

NameTypeDescription
idstring A Unique ID for the cart.
createdAtstring When 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"
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"
totalinteger Total 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
idstring Identifier of the source of this adjustment
amountinteger The amount of the adjustment. Discounts should be negative, and surcharges positive.
labelstring Descriptive text to be displayed to the customer for this adjustment

DeliveryAddress

NameTypeDescription
apartmentstring(optional) Apartment / Suite / Unit
countrystring Country
localitystring Suburb / Sub-region
postcodestring Postcode / Postal code
regionstring Region / Province / State
streetAddressstring Street address (number + name)
coordsCoords(optional)

Coords

NameTypeDescription
latitudenumber Latitude
longitudenumber Longitude

CartItem

Represents a single line item on an order or bill

NameTypeDescription
idstring The ID of the item provided by the external system
titlestring Display name for this product
amountinteger The per-quantity base-amount of this item (ie excluding options)
notestring(optional) Optional note to be attached to this item
quantityinteger The quantity of items on this order line item
optionsCartItemOption[]

CartItemOption

Set of options for an item

NameTypeDescription
idstring The option set ID
titlestring Display name of the option set
choicesCartItemOptionChoice[]

CartItemOptionChoice

Represents a choice or selection on an option set

NameTypeDescription
idstring The choice ID
titlestring Display name of this choice
amountinteger Per-quantity cost (if any) of this choice

CartValidationPayload

NameTypeDescription
adjustmentsAdjustment[]

In this article