Pay at Table

Retrieve the current bill for a tab

Returns the current bill for a tab, including items, amounts, and bill image URL (if any). If the ePOS has reported a rejection via POST /v1/tabs/{tab_id}/errors before any bill content was posted, the response still returns 200 with the bill fields empty/zero and last_error_* populated so the terminal can surface the error to the user.

get/poslink/v1/tabs/{tab_id}/bill

Request

Path parameters

tab_idstring uuid required

The tab identifier

Response

Bill retrieved. bill_file_url is null when the ePOS POSTed the bill without a print_model (no print-receipt round-trip occurred), or when the ePOS reported an error and no bill content was posted (check last_error_code).

tab_idstring uuid required

Tab identifier

tab_namestring required

Tab display name

status'OPEN' | 'PAYING' | 'PAUSED' | 'COMPLETED' | 'CLOSED' required

Current tab status

total_paidinteger required

Total amount paid so far, in the same currency as total_amount

remaininginteger required

Remaining amount to be paid, in the same currency as total_amount

merchant_referencestring required

Merchant-assigned unique reference for the tab.

bill_file_urlstring uri

Presigned URL to the bill file/image. Null when the ePOS POSTed the bill without a print_model (no print-receipt round-trip occurred).

showing_bill_terminal_idstring

Terminal currently holding the show-bill intent. Null when no show-bill intent is active for the tab (e.g. bill_posted was reset, or the intent expired).

show_bill_expires_atstring date-time

ISO 8601 expiry timestamp for show-bill (in UTC). Null when no show-bill intent is active.

last_error_codestring

Last ePOS-reported rejection on this tab. Present only when the ePOS POSTed /errors and no subsequent teardown event has cleared it.

last_error_messagestring

Human-readable error message paired with last_error_code.

last_error_atstring date-time

ISO 8601 timestamp when the rejection was recorded (in UTC).

Example response

{
  "tab_id": "3f2b6a2e-9d3e-4a1f-8f1e-6b2e5a8c9d01",
  "tab_name": "Table 5",
  "status": "OPEN",
  "total_amount": {
    "amount": 1500,
    "currency": "EUR"
  },
  "remaining": 5000,
  "merchant_reference": "ORDER-2026-001",
  "bill_file_url": "https://files.example.com/bills/bill-file-001.png",
  "showing_bill_terminal_id": "term-001",
  "show_bill_expires_at": "2026-04-14T10:05:00Z",
  "last_error_code": "BILL_ALREADY_SETTLED",
  "last_error_message": "Bill has already been paid in full",
  "last_error_at": "2026-04-14T10:07:00Z"
}

Changes

No recorded changes to this operation across all 1 revision of this API.