Pay at Table
The "Pay at Table" (PAT) integration allows waiters to retrieve and pay for orders on an POS, via Dojo card machines. This integration communicates with the POS system to retrieve open orders and notify the POS system about payments via the EPOS Data API.
We recommend reading our documentation on the following before beginning this integration, as these are the main entities which the Pay at Table integration depends upon:
- Orders
- The Dojo card machine will display payable orders which are returned from the POS system via the SearchOrders capability.
- Payment Intents
- Any payment taken for an order via the Pay at Table integration will be associated to a payment intent. The order id a payment is for can be found in the
orderDetails.externalId
field. - If a waiter ID was provided during the Pay at Table flow on the payment device, an entry with the key
waiterId
will be included in themetadata
on payment intents which were created as part of the flow. - Payment information is available on the payment intent which can be retrieved via GET /payment-intents/{paymentIntentId}
- Refunds can be issued against a payment intent via POST /payment-intents/{paymentIntentId}/refunds
- Any payment taken for an order via the Pay at Table integration will be associated to a payment intent. The order id a payment is for can be found in the
Integration
You can integrate into the PAT flow using a combination of the REST API, and/or the WebSockets API implementation of the EPOS Data API, depending on your POS system's architecture. If you're unsure as to which implemenation option would best suit your system please contact your Partnership Development Manager (PDM).
The following capabilities are required to be implemented for Pay at Table:
GetOrderById
This capability enables the POS system to retrieve detailed information about a specific order using its unique order ID. This is crucial for order tracking and status updates.
SearchOrders
POST REST /v1/orders
This capability enables searching for orders based on various criteria. It supports filtering and pagination to help Dojo products efficiently find orders within the POS system. Each Dojo product has different requirements on what filters must be implemented which can be found on the product documentation page(s).
HandleEvent:payment_intent.status_updated
POST REST /v1/events
This capability enables the POS system to record status updates on payments against orders taken by Dojo products.