Pay at Table

Retrieve a tab

Returns full details of a single tab including items and payment requests.

get/poslink/v1/tabs/{tab_id}

Request

Path parameters

tab_idstring uuid required

The tab identifier

Response

Tab retrieved successfully

tab_idstring uuid required

Tab identifier

store_idstring uuid required

Store 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.

epos_instance_idstring

ePOS instance identifier

showing_bill_terminal_idstring

Terminal currently showing the bill. Present only while a bill is being displayed.

bill_file_idstring

Bill file identifier. Present only after a bill has been generated.

created_atstring date-time required

ISO 8601 creation timestamp (in UTC)

updated_atstring date-time required

ISO 8601 last update timestamp (in UTC)

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. Polling clients use this as the fallback path for missed TAB_ERROR Pushy notifications.

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",
  "store_id": "eac4d470-4731-45b2-af6b-c828f03c1f9d",
  "tab_name": "Table 5",
  "status": "OPEN",
  "total_amount": {
    "amount": 1500,
    "currency": "EUR"
  },
  "total_paid": 1500,
  "remaining": 3500,
  "merchant_reference": "ORDER-2026-001",
  "epos_instance_id": "epos-register-1",
  "showing_bill_terminal_id": "term-001",
  "bill_file_id": "bill-file-001",
  "payment_requests": [
    {
      "payment_request_id": "9c1a7c2c-3e2a-4d5b-9f8a-6c2e5a8c9d01",
      "merchant_reference": "ORDER_123",
      "status": "SUCCESSFUL",
      "requested_amount": {
        "currency": "GBP",
        "amount": 50,
        "tip": 0
      },
      "payment_method": "CARD",
      "payment_type": "FULL",
      "created_at": "2026-04-14T10:00:00Z",
      "updated_at": "2026-04-14T10:05:00Z",
      "metadata": {
        "payment_method_details": {
          "card": {
            "last4": "4673",
            "issuing_country": "GB",
            "brand": "MASTERCARD",
            "type": "DEBIT",
            "bin": "123456"
          },
          "entry_mode": "EMV_CONTACTLESS",
          "verification_method": "NONE",
          "application_id": "A0000000041010",
          "mid": "5006544",
          "response_code": "00",
          "authorisation_code": "537001"
        }
      },
      "transaction_timestamp": "2026-04-14T10:04:30Z"
    }
  ],
  "created_at": "2026-04-14T10:00:00Z",
  "updated_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.