Retrieves a ticket by its identifier, including current totals, payment status, and itemized detail. Use this endpoint to confirm the outcome of an order, display an order summary, or reconcile payment after checkout.
Request Headers
| Header | Required | Description |
|---|---|---|
| Authorization | Yes | Bearer YOUR_ACCESS_TOKEN |
| Accept | No | application/json |
Request Parameters
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| location_id | string | Yes | Identifier of the location. |
| ticket_id | string | Yes | Identifier of the ticket to read. |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| with | string | No | Related resources to include in the response, for example guests. |
| global_on_id | integer | Yes | Identifier of the originating ordering channel. |
| user_id | integer | Yes | Identifier of the user making the request. |
| i18n | string | No | Language code for localized content, for example en. |
Request Example
GET /v1/locations/YOUR_LOCATION_ID/tickets/1284877?with=guests&global_on_id=12&user_id=2&i18n=en
cURL Example
curl --request GET \
--url "https://sandbox-api.softpoint.io/interface/v1/locations/YOUR_LOCATION_ID/tickets/1284877?with=guests&global_on_id=12&user_id=2&i18n=en" \
--header "Authorization: Bearer YOUR_ACCESS_TOKEN" \
--header "Accept: application/json"
Success Response
The response returns the ticket with its totals and embedded detail. A closed, fully paid ticket shows open as 0, totals.paid equal to the total, and totals.due as 0. The example below is trimmed for brevity.
{
"id": 1284877,
"id_external": "418",
"pos_id": "418",
"opened_at": "2025-12-09 00:01:57",
"closed_at": "2025-12-09 00:02:24",
"name": "Eduardo API_A",
"open": 0,
"guest_count": 1,
"ticket_number": 546,
"totals": {
"items": 1149,
"tax": 201,
"exclusive_tax": 201,
"sub_total": 1149,
"total": 1350,
"paid": 1350,
"refunded": 0,
"due": 0,
"grand_total": 1350
},
"_embedded": {
"employee": { "employee_id": 376, "first_name": "ADAM", "last_name": "GAREN", "check_name": "ADAM G." },
"order_type": { "order_type_id": 38, "name": "RESTAURANT" },
"revenue_center": { "revenue_center_id": "23", "name": "RESTAURANT" },
"guests": [],
"items": [
{
"id": 80289,
"name": "BURGER",
"price": 1149,
"tax": 201,
"quantity": 1,
"modifiers": [
{ "id": 38192, "menu_modifier_id": 494915, "name": "HASH BROWNS", "price": 0, "quantity": 1 }
]
}
]
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
| id | integer | Internal ticket identifier. |
| id_external | string | External ticket identifier. |
| pos_id | string | Point-of-sale ticket identifier. |
| opened_at | string | Timestamp when the ticket was opened (UTC). |
| closed_at | string | null |
| name | string | Ticket display name. |
| open | integer | Indicates whether the ticket is open. 1 is open, 0 is closed. |
| guest_count | integer | Number of guests on the ticket. |
| ticket_number | integer | Sequential ticket number. |
| totals | object | Monetary totals for the ticket, in minor units. |
| totals.items | integer | Combined item price. |
| totals.tax | integer | Total tax. |
| totals.sub_total | integer | Subtotal before tax. |
| totals.total | integer | Grand total. |
| totals.paid | integer | Amount paid. |
| totals.refunded | integer | Amount refunded. |
| totals.due | integer | Amount still due. |
| _embedded.employee | object | Employee associated with the ticket. |
| _embedded.order_type | object | Order type applied to the ticket. |
| _embedded.revenue_center | object | Revenue center applied to the ticket. |
| _embedded.guests | array | Guests associated with the ticket, when requested with with=guests. |
| _embedded.items | array | Items on the ticket, including modifiers. |
Error Responses
Retrieve Ticket uses the standard error envelope. A missing channel identifier produces error code 10189.
{
"error": {
"code": 10189,
"message": "Invalid global on id.",
"details": {
"error": "The parameter global_on_id is required"
}
}
}
Status Codes
| Code | Description |
|---|---|
| 200 | Ticket retrieved successfully. |
| 401 | Missing or invalid access token, or missing channel identifier. |
| 404 | The ticket does not exist. |
Workflow Placement
Retrieve Ticket is the confirmation step after order submission:
-
Submit an order with Pay & Create Order.
-
Retrieve the ticket to confirm status, totals, and payment.
Notes
-
All monetary values are expressed in minor units (cents).
-
Use the
withparameter to include related resources, such asguests, in a single request. -
For a fully paid ticket,
totals.dueis 0 andtotals.paidequalstotals.total.
Common Mistakes
-
Omitting
global_on_id, which results in error code 10189. -
Expecting embedded guests without supplying
with=guests. -
Interpreting
totalsvalues as major units rather than minor units (cents).

