Search Check receipt
const url = 'https://api.aerandil.com/v1/object-types/hospitality.check_receipt/search';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"branch":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","cursor":"example","filters":[{"property":"number","type":"eq","value":"example"}],"limit":1,"order":"asc","property_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","scope":{"level":"tenant"},"sort_by":"created_at"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.aerandil.com/v1/object-types/hospitality.check_receipt/search \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "branch": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "cursor": "example", "filters": [ { "property": "number", "type": "eq", "value": "example" } ], "limit": 1, "order": "asc", "property_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "scope": { "level": "tenant" }, "sort_by": "created_at" }'Search for instances. Filters eq, contains, gte and lte AND-compose; or / not are additive follow-ups. Pages with an opaque cursor; the +1 fetch returns has_more without a second round-trip. Ordered by sort_by (default created_at) in order (default ascending), id breaking ties; rows with no value for a property key sort last.
The guest’s receipt for a settled check — issued when the check’s balance reaches zero, numbered from the outlet’s receipt series (R-{outlet}-{000001}) and chained by hash onto the property’s issued documents, invoices and credit notes included. A snapshot of what a UK simplified invoice needs (VAT Notice 700 §16.6.1: supplier name, address and VAT number, time of supply, what was supplied, per-rate VAT-inclusive totals and rates) plus the check number, outlet, server, business date, lines, tenders, tips and change. Not a VAT invoice: no recipient. A room charge prints as charged to the room, with the guest’s name and no card detail. Never edited after issue.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Optional open-branch id. Search composes that branch’s copy-on-first-write overlay instead of main, so a preview reads its own hypothetical writes. Omit to read main.
Opaque cursor from a prior response’s next_cursor. Pass back verbatim; do not introspect.
Conjunctive list of predicates. Empty or omitted matches every row in scope, capped by limit.
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
- object
object
object
Case-insensitive substring needle.
object
object
object
object
Case-insensitive substring needle.
object
object
object
object
object
object
object
Case-insensitive substring needle.
object
object
object
object
Case-insensitive substring needle.
object
object
object
object
object
Case-insensitive substring needle.
object
object
object
object
object
object
object
Case-insensitive substring needle.
object
object
object
object
object
object
object
object
object
object
Case-insensitive substring needle.
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Case-insensitive substring needle.
object
object
object
object
object
object
object
object
object
Case-insensitive substring needle.
object
object
object
object
Case-insensitive substring needle.
object
object
Page size. Server defaults to 50, silently clamps at 500 (AIP-158 §3).
Direction of sort_by: asc (oldest / smallest first) or desc. A cursor is bound to the sort_by and order it was minted under; another pair is refused (422).
The house a desk stands in: keeps this property’s rows (property- or venue-scoped there) and every row scoped to no property (tenant, brand, portfolio), and drops a sibling house’s — the meaning property_id has on the event tail.
object
object
object
object
object
What the page is ordered by: the row’s created_at or updated_at, or a property whose type orders — strings, enums and dates as text, ints, decimals and durations as numbers, datetimes as instants. Rows with no value sort last in either direction. A property the caller is not cleared to read is refused (403).
Responses
Section titled “Responses”Search results, ordered by (sort_by, id) in the requested order (ascending by default).
object
object
object
The check’s business date — the hotel date it opened on.
Cash handed back across the payments.
object
The check’s own number, the one the server says aloud.
SHA-256 over the receipt’s canonical fields (the invoice’s field list: issuer tax reference, series, number, business date, kind receipt, tax, total) and previous_hash.
The instant the receipt was issued.
The supplier’s legal identity as it printed — the property’s legal name, address and VAT number from its billing identity; its own name and address under scheme none when it has no billing identity; absent when it has neither (a till never refuses a guest their slip over back-office configuration).
object
object
object
What was supplied, in the order it rang: each fulfilled or comped line with its modifier lines after it (modifier: true). Voided lines were never made and are not printed; a comped line prints at its price, marked.
object
object
object
R-{outlet code}-{000001} — drawn from the outlet’s dense receipt series inside the settling transaction and never reissued.
What the payments applied to the check, tips out.
object
Each tender in the order it was taken: amount, tip, cash tendered and change; a room charge with its room and the name of the guest who signed — never card data.
object
object
object
object
object
The property’s previous issued document’s content_hash — invoice, credit note or receipt: one chain per property. Absent only on the property’s first document.
The bare counter value number was rendered from, so a gap is detectable without parsing the number.
The sequence the number came from — {property_id}:receipt:{outlet_id}: one run per outlet (a till prints its own), dense, and kept apart from the property’s invoice and credit-note runs.
The owning server’s given name, as it printed.
When the check settled — the time of supply the receipt prints (Notice 700 §16.6.1).
Always true: a till receipt is the retailer’s simplified invoice, issued without the customer’s details.
The live lines’ gross — comps and voids out, inclusive VAT in.
object
The house’s name as the slip heads it.
VAT
object
settled_at in the house’s own time zone, as the slip prints it (2026-11-02 19:42; UTC appended when the property names no zone) — snapshotted so a render needs no clock and no zone database.
Tips taken with the payments — outside the scope of VAT.
object
What the guest owed: subtotal plus any add-on tax.
object
Per tax rule and rate over the live lines: the code, the rate, and the net, tax and VAT-inclusive gross — the per-rate figures Notice 700 §16.6.1 asks a simplified invoice to show.
object
object
object
object
Per-property source attribution and pins. An entry under properties means the property’s current value came from that source (on the source’s own clock, source_updated_at); an entry under pins is a human override protecting the property from sourced writes.
object
object
object
object
object
object
object
object
object
object
object
Cursor for the next page; omitted when the result set is exhausted.
Example
{ "data": [ { "object_type": "hospitality.check_receipt", "properties": { "order_kind": "dine_in", "payments": [ { "tender": "room_charge" } ] }, "scope": { "level": "tenant" } } ]}Validation error — unknown property or filter type mismatch.