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
Name | Type | In | Description |
---|---|---|---|
organizationId | string | path | Organization ID |
locationId | string | path | Location ID |
cartId | string | path |
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"
},
{
"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",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
}
],
"id": "OPTSAUCE",
"title": "Sauce Selection"
},
{
"choices": [
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"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",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
}
],
"id": "OPTSAUCE",
"title": "Sauce Selection"
},
{
"choices": [
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"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",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
}
],
"id": "OPTSAUCE",
"title": "Sauce Selection"
},
{
"choices": [
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"title": "BBQ Sauce"
},
{
"amount": 20,
"id": "SAUCE001",
"options": [
{},
{}
],
"quantity": 2,
"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
Name | Type | In | Description |
---|---|---|---|
organizationId | string | path | Organization ID |
locationId | string | path | Location ID |
cartId | string | path |
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: 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
Name | Type | In | Description |
---|---|---|---|
organizationId | string | path | Organization ID |
locationId | string | path | Location ID |
cartId | string | path |
Responses
204: No Content response.
409: conflict: Conflict response.
Models
Cart
Name | Type | Description |
---|---|---|
id | string | A Unique ID for the cart. |
createdAt | string | When this cart was created |
fulfillAt | string | (optional) Timestamp to be attached to the cart for scheduled pickup orders |
validatedAt | string | (optional) When this cart was marked valid |
currency | string(enum) | (optional) The currency used amounts specified in this cart "AUD", "SGD", "GBP", "NZD" |
notes | string | (optional) Optional customer provided note to be attached to the order or instructions for delivery |
serviceRef | string | (optional) Table or Room number, may not always be numeric |
status | string(enum) | (optional) Validation status of the cart "PENDING", "VALID", "INVALID", "EXPIRED" |
total | integer | Total value of the cart. |
deliveryAddress | DeliveryAddress | (optional) |
adjustments | Adjustment[] | (optional) Any POS-supplied adjustments to the cart, for example 2-for-1 and combo adjustments |
items | CartItem[] | The contents of the customer's cart |
Adjustment
Name | Type | Description |
---|---|---|
id | string | Identifier of the source of this adjustment |
amount | integer | The amount of the adjustment. Discounts should be negative, and surcharges positive. |
label | string | Descriptive text to be displayed to the customer for this adjustment |
DeliveryAddress
Name | Type | Description |
---|---|---|
apartment | string | (optional) Apartment / Suite / Unit |
country | string | Country |
locality | string | Suburb / Sub-region |
postcode | string | Postcode / Postal code |
region | string | Region / Province / State |
streetAddress | string | Street address (number + name) |
coords | Coords | (optional) |
Coords
Name | Type | Description |
---|---|---|
latitude | number | Latitude |
longitude | number | Longitude |
CartItem
Represents a single line item on an order or bill
Name | Type | Description |
---|---|---|
id | string | The ID of the item provided by the external system |
title | string | Display name for this product |
amount | integer | The per-quantity base-amount of this item (ie excluding options) |
note | string | (optional) Optional note to be attached to this item |
quantity | integer | The quantity of items on this order line item |
options | CartItemOption[] | |
CartItemOption
Set of options for an item
Name | Type | Description |
---|---|---|
id | string | The option set ID |
title | string | Display name of the option set |
choices | CartItemOptionChoice[] | |
CartItemOptionChoice
Represents a choice or selection on an option set
Name | Type | Description |
---|---|---|
id | string | The choice ID |
title | string | Display name of this choice |
amount | integer | Per-quantity cost (if any) of this choice |
quantity | integer | The quantity of this choice on this order line item |
options | CartItemOption[] | |
CartValidationPayload
Name | Type | Description |
---|---|---|
adjustments | Adjustment[] | |