EPOS Data API (REST) (1.0)
Download OpenAPI specification:Download
A proposal REST Open API spec for an EPOS ordering system for a single Location/Account.
Core modules:
- Tables
- Areas
- Orders
- Parties
- Reservations
API modules can generally be
implemented independently, with a small number of interdependent fields affected
by other modules (for example, if Parties are implemented & the information is
known, a partyId
should be attached to an Order's dineInDetails
).
All requests also contain special headers within the REST headers, containing details about the requestor that can be used for logging purposes or EPOS business logic (such as waiter id based access to entities).
List areas
Retrieves all areas that are being served. Capability: ListAreas
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Responses
Response Schema: application/json
id required | string Unique ID of the area |
name required | string User friendly name of the area |
waiterIds | Array of strings |
Request samples
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
import http.client conn = http.client.HTTPSConnection("virtserver.swaggerhub.com") conn.request("GET", "/DojoPaymentProducts/EPOS-Gateway-API/1.0/v1/areas") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
Response samples
- 200
- 4XX
- 5XX
[- {
- "id": "area_1234",
- "name": "downstairs"
}
]
Create an order
Create an order on the EPOS. Capability: CreateOrder
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Request Body schema: application/jsonrequired
required | Array of objects The line items purchased by the customer. |
note | string Order note |
object | |
Array of objects List of discounts applied to the order | |
required | object |
Array of objects Taxes applied to the order | |
object | |
reference | string Human readable order ID |
dojoOrderId required | string The Dojo API order ID |
required | Array of objects |
required | Dine In (object) or Collection (object) Details about the order including the type and the details. |
displayName | string The display name of the order |
Responses
Response Schema: application/json
id required | string Order ID |
Array of objects The line items purchased by the customer. | |
note | string |
object | |
Array of objects List of discounts applied to the order | |
Array of objects Taxes applied to the order | |
status required | string Enum: "New" "Submitted" "Confirmed" "Accepted" "Preparing" "Prepared" "Ready" "Finalized" "Canceled" "Failed" |
createdAt | string <date-time> The creation date, in ISO 8601 UTC format. |
updatedAt | string <date-time> The timestamp of the update date, in ISO 8601 UTC format. |
object | |
Array of objects | |
payable | boolean Flag to indicate if the order is able to be paid for. |
object | |
object | |
reference | string Human readable order ID |
object | |
required | Dine In (object) or Collection (object) Details about the order including the type and the details. |
displayName | string The display name of the order |
Request samples
- Payload
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
{- "items": [
- {
- "amountPerItem": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "quantity": 0,
- "name": "string",
- "plu": "string"
}
], - "totalAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "dojoOrderId": "string",
- "payments": [
- {
- "paidAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}
}
], - "details": {
- "orderType": "DineIn"
}
}
Response samples
- 200
- 4XX
- 5XX
{- "id": "string",
- "items": [
- {
- "amountPerItem": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "quantity": 0,
- "note": "string",
- "name": "string",
- "plu": "string",
- "subItems": [
- {
- "amountPerItem": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "quantity": 0,
- "note": "string",
- "name": "string",
- "plu": "string",
- "modifiers": [
- {
- "name": "string",
- "quantity": 0,
- "amountPerModifier": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "plu": "string"
}
]
}
], - "modifiers": [
- {
- "name": "string",
- "quantity": 0,
- "amountPerModifier": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "plu": "string"
}
]
}
], - "note": "string",
- "customer": {
- "emailAddress": "support@dojo.com",
- "phoneNumber": 448000443550
}, - "discounts": [
- {
- "isPercentage": true,
- "provider": "Order & Pay app",
- "name": "Spring Sale 25% off",
- "discountCode": "SPRING2023",
- "discountReference": "123456",
- "affectedPlu": "item_123",
- "value": 2500,
- "amount": 500
}
], - "taxLines": [
- {
- "id": "string",
- "name": "string",
- "affectedPlu": "string",
- "amountPercentage": 0,
- "amountTotal": {
- "value": 1000,
- "currencyCode": "GBP"
}
}
], - "status": "New",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "totalAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "payments": [
- {
- "paymentIntentId": "string",
- "paidAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "tipsAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}
}
], - "payable": true,
- "paidAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "serviceChargeAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "reference": "string",
- "tipsAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "details": {
- "dineIn": {
- "tableId": "string",
- "waiterId": "string",
- "partyId": "string",
- "reservationId": "string",
- "readyAt": "2019-08-24T14:15:22Z"
}, - "collection": {
- "collectionTime": "2024-02-21T14:39:21.6050276Z",
- "asap": false
}, - "orderType": "DineIn"
}, - "displayName": "string"
}
Get an order by id
Retrieve details of an order using the order ID. Capability: GetOrderById
path Parameters
orderId required | string The ID of the order to retrieve. |
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Responses
Response Schema: application/json
id required | string Order ID |
Array of objects The line items purchased by the customer. | |
note | string |
object | |
Array of objects List of discounts applied to the order | |
Array of objects Taxes applied to the order | |
status required | string Enum: "New" "Submitted" "Confirmed" "Accepted" "Preparing" "Prepared" "Ready" "Finalized" "Canceled" "Failed" |
createdAt | string <date-time> The creation date, in ISO 8601 UTC format. |
updatedAt | string <date-time> The timestamp of the update date, in ISO 8601 UTC format. |
object | |
Array of objects | |
payable | boolean Flag to indicate if the order is able to be paid for. |
object | |
object | |
reference | string Human readable order ID |
object | |
required | Dine In (object) or Collection (object) Details about the order including the type and the details. |
displayName | string The display name of the order |
Request samples
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
import http.client conn = http.client.HTTPSConnection("virtserver.swaggerhub.com") conn.request("GET", "/DojoPaymentProducts/EPOS-Gateway-API/1.0/v1/orders/%7BorderId%7D") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
Response samples
- 200
- 4XX
- 5XX
{- "id": "string",
- "items": [
- {
- "amountPerItem": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "quantity": 0,
- "note": "string",
- "name": "string",
- "plu": "string",
- "subItems": [
- {
- "amountPerItem": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "quantity": 0,
- "note": "string",
- "name": "string",
- "plu": "string",
- "modifiers": [
- {
- "name": "string",
- "quantity": 0,
- "amountPerModifier": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "plu": "string"
}
]
}
], - "modifiers": [
- {
- "name": "string",
- "quantity": 0,
- "amountPerModifier": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "plu": "string"
}
]
}
], - "note": "string",
- "customer": {
- "emailAddress": "support@dojo.com",
- "phoneNumber": 448000443550
}, - "discounts": [
- {
- "isPercentage": true,
- "provider": "Order & Pay app",
- "name": "Spring Sale 25% off",
- "discountCode": "SPRING2023",
- "discountReference": "123456",
- "affectedPlu": "item_123",
- "value": 2500,
- "amount": 500
}
], - "taxLines": [
- {
- "id": "string",
- "name": "string",
- "affectedPlu": "string",
- "amountPercentage": 0,
- "amountTotal": {
- "value": 1000,
- "currencyCode": "GBP"
}
}
], - "status": "New",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "totalAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "payments": [
- {
- "paymentIntentId": "string",
- "paidAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "tipsAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}
}
], - "payable": true,
- "paidAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "serviceChargeAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "reference": "string",
- "tipsAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "details": {
- "dineIn": {
- "tableId": "string",
- "waiterId": "string",
- "partyId": "string",
- "reservationId": "string",
- "readyAt": "2019-08-24T14:15:22Z"
}, - "collection": {
- "collectionTime": "2024-02-21T14:39:21.6050276Z",
- "asap": false
}, - "orderType": "DineIn"
}, - "displayName": "string"
}
Cancel an order by id
Cancels an order by ID. Capability: CancelOrderById
path Parameters
orderId required | string The ID of the order to retrieve. |
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Responses
Response Schema: application/json
id required | string Order ID |
Array of objects The line items purchased by the customer. | |
note | string |
object | |
Array of objects List of discounts applied to the order | |
Array of objects Taxes applied to the order | |
status required | string Enum: "New" "Submitted" "Confirmed" "Accepted" "Preparing" "Prepared" "Ready" "Finalized" "Canceled" "Failed" |
createdAt | string <date-time> The creation date, in ISO 8601 UTC format. |
updatedAt | string <date-time> The timestamp of the update date, in ISO 8601 UTC format. |
object | |
Array of objects | |
payable | boolean Flag to indicate if the order is able to be paid for. |
object | |
object | |
reference | string Human readable order ID |
object | |
required | Dine In (object) or Collection (object) Details about the order including the type and the details. |
displayName | string The display name of the order |
Request samples
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
import http.client conn = http.client.HTTPSConnection("virtserver.swaggerhub.com") conn.request("DELETE", "/DojoPaymentProducts/EPOS-Gateway-API/1.0/v1/orders/%7BorderId%7D") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
Response samples
- 200
- 4XX
- 5XX
{- "id": "string",
- "items": [
- {
- "amountPerItem": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "quantity": 0,
- "note": "string",
- "name": "string",
- "plu": "string",
- "subItems": [
- {
- "amountPerItem": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "quantity": 0,
- "note": "string",
- "name": "string",
- "plu": "string",
- "modifiers": [
- {
- "name": "string",
- "quantity": 0,
- "amountPerModifier": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "plu": "string"
}
]
}
], - "modifiers": [
- {
- "name": "string",
- "quantity": 0,
- "amountPerModifier": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "plu": "string"
}
]
}
], - "note": "string",
- "customer": {
- "emailAddress": "support@dojo.com",
- "phoneNumber": 448000443550
}, - "discounts": [
- {
- "isPercentage": true,
- "provider": "Order & Pay app",
- "name": "Spring Sale 25% off",
- "discountCode": "SPRING2023",
- "discountReference": "123456",
- "affectedPlu": "item_123",
- "value": 2500,
- "amount": 500
}
], - "taxLines": [
- {
- "id": "string",
- "name": "string",
- "affectedPlu": "string",
- "amountPercentage": 0,
- "amountTotal": {
- "value": 1000,
- "currencyCode": "GBP"
}
}
], - "status": "New",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "totalAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "payments": [
- {
- "paymentIntentId": "string",
- "paidAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "tipsAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}
}
], - "payable": true,
- "paidAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "serviceChargeAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "reference": "string",
- "tipsAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "details": {
- "dineIn": {
- "tableId": "string",
- "waiterId": "string",
- "partyId": "string",
- "reservationId": "string",
- "readyAt": "2019-08-24T14:15:22Z"
}, - "collection": {
- "collectionTime": "2024-02-21T14:39:21.6050276Z",
- "asap": false
}, - "orderType": "DineIn"
}, - "displayName": "string"
}
Search orders
Searches through the orders on the EPOS. Capability: SearchOrders
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Request Body schema: application/jsonrequired
object Details for searching order-in orders | |
payableOnly | boolean Return only orders where payable=true |
object A cursor for use in pagination. |
Responses
Response Schema: application/json
Array of objects | |
before | string |
after | string |
Request samples
- Payload
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
{ }
Response samples
- 200
- 4XX
- 5XX
{- "data": [
- {
- "id": "string",
- "items": [
- {
- "amountPerItem": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "quantity": 0,
- "note": "string",
- "name": "string",
- "plu": "string",
- "subItems": [
- {
- "amountPerItem": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "quantity": 0,
- "note": "string",
- "name": "string",
- "plu": "string",
- "modifiers": [
- {
- "name": "string",
- "quantity": 0,
- "amountPerModifier": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "plu": "string"
}
]
}
], - "modifiers": [
- {
- "name": "string",
- "quantity": 0,
- "amountPerModifier": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "plu": "string"
}
]
}
], - "note": "string",
- "customer": {
- "emailAddress": "support@dojo.com",
- "phoneNumber": 448000443550
}, - "discounts": [
- {
- "isPercentage": true,
- "provider": "Order & Pay app",
- "name": "Spring Sale 25% off",
- "discountCode": "SPRING2023",
- "discountReference": "123456",
- "affectedPlu": "item_123",
- "value": 2500,
- "amount": 500
}
], - "taxLines": [
- {
- "id": "string",
- "name": "string",
- "affectedPlu": "string",
- "amountPercentage": 0,
- "amountTotal": {
- "value": 1000,
- "currencyCode": "GBP"
}
}
], - "status": "New",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "totalAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "payments": [
- {
- "paymentIntentId": "string",
- "paidAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "tipsAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}
}
], - "payable": true,
- "paidAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "serviceChargeAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "reference": "string",
- "tipsAmount": {
- "value": 1000,
- "currencyCode": "GBP"
}, - "details": {
- "dineIn": {
- "tableId": "string",
- "waiterId": "string",
- "partyId": "string",
- "reservationId": "string",
- "readyAt": "2019-08-24T14:15:22Z"
}, - "collection": {
- "collectionTime": "2024-02-21T14:39:21.6050276Z",
- "asap": false
}, - "orderType": "DineIn"
}, - "displayName": "string"
}
], - "before": "string",
- "after": "string"
}
Create party
Create a new party in the POS domain. Capability: CreateParty
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Request Body schema: application/json
name | string |
covers | integer |
tableIds required | Array of strings non-empty |
status | string |
startTime required | string <date-time> When the party was seated. ISO8601 formatted, ms precise. |
expectedEndTime | string <date-time> When the party is expected to leave, if known. ISO8601 formatted, ms precise. |
hostNotes | string |
guestRequests | string |
reservationId | string |
object Information about payments captured pre-arrival to secure the reservation. | |
dojoPartyId required | string |
dojoReservationId | string |
Responses
Response Schema: application/json
id required | string The EPOS-internal ID for this party. Must be globally unique within the EPOS' domain. |
name | string The human-readable name, typically the name of the lead guest. |
covers | integer The number of covers this party occupies. |
tableIds required | Array of strings non-empty The set of tables this party is currently sat across. |
status required | string non-empty An arbitrary description of the party's current status - typically used to show where in their journey the party is, such as "partially arrived", "ordered" or "paying"/"paid". |
startTime required | string <date-time> The time the party was seated. ISO8601 formatted, millisecond precision. |
expectedEndTime | string <date-time> The time the party is expected to depart, if known. ISO8601 formatted, millisecond precision. |
endTime | string <date-time> The time the party actually departed. ISO8601 formatted, millisecond precision. |
hostNotes | string Host-written notes about the party. Not surfaced to the Guest(s). |
guestRequests | string Guest-written requests for the party. Surfaced to & editable by the Guest(s). May not be edited by the EPOS partner, as this may contain dietary requirements set by the Guest. |
reservationId | string If reservations are implemented & this party has an associated reservation, the EPOS-internal ID of the reservation this party corresponds to. |
object Information about payments captured pre-arrival to secure the reservation. |
Request samples
- Payload
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
{- "name": "Martin B.",
- "covers": 4,
- "tableIds": [
- "table-01-001",
- "table-01-002"
], - "startTime": "2024-08-12T09:30:00.000Z",
- "expectedEndTime": "2024-08-12T11:00:00.000Z",
- "guestRequests": "nut allergy; gluten intolerance; please could we have a table next to a window?",
- "hostNotes": "called ahead to notify kitchen of dietary requirements - confirm upon arrival",
- "reservationId": "reservation-2024-08-12-0028",
- "deposit": {
- "totalAmount": {
- "value": 5000,
- "currencyCode": "GBP"
}
}
}
Response samples
- 200
- 4XX
- 5XX
{- "id": "party-2024-08-12-0001",
- "startTime": "2024-08-12T09:30:00.000Z",
- "status": "Ordered",
- "tableIds": [
- "table-01-001",
- "table-01-002"
]
}
Get party
Retrieves a specific party. Capability: GetPartyById
path Parameters
partyId required | string The ID of the party to retrieve. |
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Responses
Response Schema: application/json
id required | string The EPOS-internal ID for this party. Must be globally unique within the EPOS' domain. |
name | string The human-readable name, typically the name of the lead guest. |
covers | integer The number of covers this party occupies. |
tableIds required | Array of strings non-empty The set of tables this party is currently sat across. |
status required | string non-empty An arbitrary description of the party's current status - typically used to show where in their journey the party is, such as "partially arrived", "ordered" or "paying"/"paid". |
startTime required | string <date-time> The time the party was seated. ISO8601 formatted, millisecond precision. |
expectedEndTime | string <date-time> The time the party is expected to depart, if known. ISO8601 formatted, millisecond precision. |
endTime | string <date-time> The time the party actually departed. ISO8601 formatted, millisecond precision. |
hostNotes | string Host-written notes about the party. Not surfaced to the Guest(s). |
guestRequests | string Guest-written requests for the party. Surfaced to & editable by the Guest(s). May not be edited by the EPOS partner, as this may contain dietary requirements set by the Guest. |
reservationId | string If reservations are implemented & this party has an associated reservation, the EPOS-internal ID of the reservation this party corresponds to. |
object Information about payments captured pre-arrival to secure the reservation. |
Request samples
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
import http.client conn = http.client.HTTPSConnection("virtserver.swaggerhub.com") conn.request("GET", "/DojoPaymentProducts/EPOS-Gateway-API/1.0/v1/parties/%7BpartyId%7D") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
Response samples
- 200
- 4XX
- 5XX
{- "id": "party-2024-08-12-0001",
- "startTime": "2024-08-12T09:30:00.000Z",
- "status": "Ordered",
- "tableIds": [
- "table-01-001",
- "table-01-002"
]
}
Update party
Sets the party's details to those provided. Capability: UpdatePartyById
path Parameters
partyId required | string The ID of the party to retrieve. |
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Request Body schema: application/json
dojoPartyId required | string The Dojo API party ID |
name | string The human-readable name, typically the name of the lead guest. |
covers | integer The number of covers this party occupies. |
tableIds required | Array of strings non-empty The set of tables this party is currently sat across. |
status required | string non-empty An arbitrary description of the party's current status - typically used to show where in their journey the party is, such as "partially arrived", "ordered" or "paying"/"paid". |
startTime required | string <date-time> The time the party was seated. ISO8601 formatted, millisecond precision. |
expectedEndTime | string <date-time> The time the party is expected to depart, if known. ISO8601 formatted, millisecond precision. |
endTime | string <date-time> The time the party actually departed. ISO8601 formatted, millisecond precision. |
hostNotes | string Host-written notes about the party. Not surfaced to the Guest(s). |
guestRequests | string Guest-written requests for the party. Surfaced to & editable by the Guest(s). May not be edited by the EPOS partner, as this may contain dietary requirements set by the Guest. |
object Information about payments captured pre-arrival to secure the reservation. |
Responses
Response Schema: application/json
id required | string The EPOS-internal ID for this party. Must be globally unique within the EPOS' domain. |
name | string The human-readable name, typically the name of the lead guest. |
covers | integer The number of covers this party occupies. |
tableIds required | Array of strings non-empty The set of tables this party is currently sat across. |
status required | string non-empty An arbitrary description of the party's current status - typically used to show where in their journey the party is, such as "partially arrived", "ordered" or "paying"/"paid". |
startTime required | string <date-time> The time the party was seated. ISO8601 formatted, millisecond precision. |
expectedEndTime | string <date-time> The time the party is expected to depart, if known. ISO8601 formatted, millisecond precision. |
endTime | string <date-time> The time the party actually departed. ISO8601 formatted, millisecond precision. |
hostNotes | string Host-written notes about the party. Not surfaced to the Guest(s). |
guestRequests | string Guest-written requests for the party. Surfaced to & editable by the Guest(s). May not be edited by the EPOS partner, as this may contain dietary requirements set by the Guest. |
reservationId | string If reservations are implemented & this party has an associated reservation, the EPOS-internal ID of the reservation this party corresponds to. |
object Information about payments captured pre-arrival to secure the reservation. |
Request samples
- Payload
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
{- "startTime": "2024-08-12T09:30:00.000Z",
- "status": "Ordered",
- "tableIds": [
- "table-01-001",
- "table-01-002"
]
}
Response samples
- 200
- 4XX
- 5XX
{- "id": "party-2024-08-12-0001",
- "startTime": "2024-08-12T09:30:00.000Z",
- "status": "Ordered",
- "tableIds": [
- "table-01-001",
- "table-01-002"
]
}
Delete party
Deletes a specific party. Capability: DeletePartyById
path Parameters
partyId required | string The ID of the party to retrieve. |
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Responses
Request samples
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
import http.client conn = http.client.HTTPSConnection("virtserver.swaggerhub.com") conn.request("DELETE", "/DojoPaymentProducts/EPOS-Gateway-API/1.0/v1/parties/%7BpartyId%7D") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
Response samples
- 4XX
- 5XX
{- "debugMessage": "string",
- "traceId": "string",
- "errorType": "NotFound"
}
Search parties
Searches through parties on the EPOS.
By default, this endpoint should exclude parties with endTime
set, including them only when completedOnly: true
.
Capability: SearchParties
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Request Body schema: application/jsonrequired
object A cursor for use in pagination. | |
completedOnly | boolean |
tableId | string |
Responses
Response Schema: application/json
Array of objects | |
before | string |
after | string |
Request samples
- Payload
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
{ }
Response samples
- 200
- 4XX
- 5XX
{- "data": [
- {
- "id": "party-2024-08-12-0001",
- "startTime": "2024-08-12T09:30:00.000Z",
- "status": "Ordered",
- "tableIds": [
- "table-01-001",
- "table-01-002"
]
}
], - "before": "string",
- "after": "string"
}
Create reservation
Create a new reservation in the POS domain. Capability: CreateReservation
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Request Body schema: application/json
dojoReservationId required | string |
name required | string |
covers required | integer |
startTime required | string <date-time> When the reservation is expected to arrive. ISO8601 formatted, ms precise. |
endTime required | string <date-time> When the reservation is expected to depart. ISO8601 formatted, ms precise. |
tableIds required | Array of strings non-empty |
hostNotes | string |
guestRequests | string |
Responses
Response Schema: application/json
id required | string The globally unique (within the EPOS) ID for the reservation. |
name required | string The name of the guest who the reservation is for. |
covers required | integer The number of covers the reservation is expected to occupy. |
startTime required | string <date-time> The time the reservation is expected to begin. ISO8601 formatted, millisecond precision. |
endTime required | string <date-time> The time the reservation is expected to finish. ISO8601 formatted, millisecond precision. |
tableIds required | Array of strings non-empty The tables the reservation is expected to occupy. |
hostNotes | string Host-written notes about the reservation. Not exposed to guests. |
guestRequests | string Guest-written requests for the reservation. Shown to & editable by guests. May not be edited by the EPOS partner, as this may contain dietary requirements set by the Guest. |
Request samples
- Payload
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
{- "dojoReservationId": "dojo-res-210345",
- "name": "Sasha J.",
- "covers": 3,
- "startTime": "2024-08-12T13:00:00.000Z",
- "endTime": "2024-08-12T15:00:00.000Z",
- "tableIds": [
- "table-02-003",
- "table-02-004"
], - "guestRequests": "we'll be bringing our dog",
- "hostNotes": "dog may be given little snacks"
}
Response samples
- 200
- 4XX
- 5XX
{- "id": "reservation-2024-08-12-0065",
- "name": "Sasha J.",
- "covers": 3,
- "startTime": "2024-08-12T13:00:00.000Z",
- "endTime": "2024-08-12T15:00:00.000Z",
- "tableIds": [
- "table-02-003",
- "table-02-004"
]
}
Get reservation
Retrieves a specific reservation. Capability: GetReservationById
path Parameters
reservationId required | string The ID of the reservation to retrieve. |
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Responses
Response Schema: application/json
id required | string The globally unique (within the EPOS) ID for the reservation. |
name required | string The name of the guest who the reservation is for. |
covers required | integer The number of covers the reservation is expected to occupy. |
startTime required | string <date-time> The time the reservation is expected to begin. ISO8601 formatted, millisecond precision. |
endTime required | string <date-time> The time the reservation is expected to finish. ISO8601 formatted, millisecond precision. |
tableIds required | Array of strings non-empty The tables the reservation is expected to occupy. |
hostNotes | string Host-written notes about the reservation. Not exposed to guests. |
guestRequests | string Guest-written requests for the reservation. Shown to & editable by guests. May not be edited by the EPOS partner, as this may contain dietary requirements set by the Guest. |
Request samples
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
import http.client conn = http.client.HTTPSConnection("virtserver.swaggerhub.com") conn.request("GET", "/DojoPaymentProducts/EPOS-Gateway-API/1.0/v1/reservations/%7BreservationId%7D") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
Response samples
- 200
- 4XX
- 5XX
{- "id": "reservation-2024-08-12-0065",
- "name": "Sasha J.",
- "covers": 3,
- "startTime": "2024-08-12T13:00:00.000Z",
- "endTime": "2024-08-12T15:00:00.000Z",
- "tableIds": [
- "table-02-003",
- "table-02-004"
]
}
Update reservation
Sets the reservation's details to those provided. Capbility: UpdateReservationById
path Parameters
reservationId required | string The ID of the reservation to retrieve. |
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Request Body schema: application/json
dojoReservationId required | string The Dojo API reservation ID |
name required | string The name of the guest who the reservation is for. |
covers required | integer The number of covers the reservation is expected to occupy. |
startTime required | string <date-time> The time the reservation is expected to begin. ISO8601 formatted, millisecond precision. |
endTime required | string <date-time> The time the reservation is expected to finish. ISO8601 formatted, millisecond precision. |
tableIds required | Array of strings non-empty The tables the reservation is expected to occupy. |
hostNotes | string Host-written notes about the reservation. Not exposed to guests. |
guestRequests | string Guest-written requests for the reservation. Shown to & editable by guests. May not be edited by the EPOS partner, as this may contain dietary requirements set by the Guest. |
Responses
Response Schema: application/json
id required | string The globally unique (within the EPOS) ID for the reservation. |
name required | string The name of the guest who the reservation is for. |
covers required | integer The number of covers the reservation is expected to occupy. |
startTime required | string <date-time> The time the reservation is expected to begin. ISO8601 formatted, millisecond precision. |
endTime required | string <date-time> The time the reservation is expected to finish. ISO8601 formatted, millisecond precision. |
tableIds required | Array of strings non-empty The tables the reservation is expected to occupy. |
hostNotes | string Host-written notes about the reservation. Not exposed to guests. |
guestRequests | string Guest-written requests for the reservation. Shown to & editable by guests. May not be edited by the EPOS partner, as this may contain dietary requirements set by the Guest. |
Request samples
- Payload
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
{- "name": "Sasha J.",
- "covers": 3,
- "startTime": "2024-08-12T13:00:00.000Z",
- "endTime": "2024-08-12T15:00:00.000Z",
- "tableIds": [
- "table-02-003",
- "table-02-004"
]
}
Response samples
- 200
- 4XX
- 5XX
{- "id": "reservation-2024-08-12-0065",
- "name": "Sasha J.",
- "covers": 3,
- "startTime": "2024-08-12T13:00:00.000Z",
- "endTime": "2024-08-12T15:00:00.000Z",
- "tableIds": [
- "table-02-003",
- "table-02-004"
]
}
Delete reservation
Deletes a specific reservation. Capability: DeleteReservationById
path Parameters
reservationId required | string The ID of the reservation to retrieve. |
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Responses
Request samples
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
import http.client conn = http.client.HTTPSConnection("virtserver.swaggerhub.com") conn.request("DELETE", "/DojoPaymentProducts/EPOS-Gateway-API/1.0/v1/reservations/%7BreservationId%7D") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
Response samples
- 4XX
- 5XX
{- "debugMessage": "string",
- "traceId": "string",
- "errorType": "NotFound"
}
Search reservations
Search through reservations on the EPOS. Capability: SearchReservations
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Request Body schema: application/jsonrequired
object A cursor for use in pagination. | |
tableId | string |
fromTime | string <date-time> |
toTime | string <date-time> |
Responses
Response Schema: application/json
Array of objects | |
before | string |
after | string |
Request samples
- Payload
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
{ }
Response samples
- 200
- 4XX
- 5XX
{- "data": [
- {
- "id": "reservation-2024-08-12-0065",
- "name": "Sasha J.",
- "covers": 3,
- "startTime": "2024-08-12T13:00:00.000Z",
- "endTime": "2024-08-12T15:00:00.000Z",
- "tableIds": [
- "table-02-003",
- "table-02-004"
]
}
], - "before": "string",
- "after": "string"
}
Search tables
Search through tables on the EPOS. Capability: SearchTables
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Request Body schema: application/jsonrequired
object A cursor for use in pagination. | |
areaId | string |
waiterId | string |
Responses
Response Schema: application/json
Array of objects | |
before | string |
after | string |
Request samples
- Payload
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
{ }
Response samples
- 200
- 4XX
- 5XX
[- {
- "data": [
- {
- "id": "tbl_12345",
- "name": "Table 12",
- "maxCovers": 4,
- "areaId": "area_123"
}
], - "before": "string",
- "after": "string"
}
]
Handle event
Handle events from Dojo. Capabilities:
HandleEvent:payment_intent.created
HandleEvent:payment_intent.status_updated
header Parameters
waiter-id | string Example: 42 The ID of the waiter making the request, if known |
dojo-requesting-product | string Example: Order&Pay The dojo product making the request, if known. |
device-id | string Example: tm_sandbox_65c5fe8a104a1222b2d8b968 The ID of the device making the request, if known |
device-type | string Example: Dojo Terminal The device making the request, if known |
Request Body schema: application/jsonrequired
id required | string |
accountId required | string |
event required | string one of EventType |
required | PaymentIntentEvent (object) |
createdAt required | string <date-time> |
Responses
Request samples
- Payload
- Python + Python3
- Node + Request
- Shell + Curl
- Php + Curl
- Csharp + Restsharp
- Python + Requests
- Javascript + Jquery
- Javascript + Xhr
- Swift + Nsurlsession
- Ruby + Native
- Go + Native
- C + Libcurl
- Powershell + Webrequest
{- "id": "string",
- "accountId": "string",
- "event": "string",
- "data": {
- "paymentIntentId": "string",
- "paymentStatus": "Created",
- "captureMode": "Auto"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
Response samples
- 4XX
- 5XX
{- "debugMessage": "string",
- "traceId": "string",
- "errorType": "NotFound"
}