Skip to content

Read Payment request as of a watermark

GET
/v1/object-types/hospitality.payment_request/objects/{id}/as-of
curl --request GET \
--url 'https://api.aerandil.com/v1/object-types/hospitality.payment_request/objects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/as-of?at=example' \
--header 'Authorization: Bearer <token>'

Time-travel read: the instance as it stood at the at watermark, reconstructed by folding its structural events. Property values that were marking-redacted or truncated in the event log surface as sentinel objects, not values.

The house asking a guest for money against one booking, with a pay link (Mews’s payment request): an amount, a reason (deposit, prepayment, fee, a missing or declined card), a kind (payment takes the money, preauthorization places a hold captured later) and a required expires_at. pending until the guest pays on the card rail’s hosted page (completed, with the payment it produced), the house withdraws it (cancelled, only from pending) or the night audit finds it past expires_at (expired). A completed payment lands on the booking’s own account through record_deposit_payment, so the deposit engine’s status ladder moves; a completed preauthorization is the authorise path’s pending payment. Money that moves after a request was cancelled or expired is still recorded — the request completes late — because a ledger that refuses a settled payment disagrees with the processor.

id
required
string format: uuid

Object id (UUID v7, server-generated at create time).

at
required
string

The watermark: an event seq (integer, canonical — the /v1/events cursor namespace) or an RFC3339 timestamp (resolved to the latest seq at or before it in the tenant’s stream).

The reconstructed as-of state.

Media typeapplication/json
object
at
required
string
events_applied
required
integer
id
required
string format: uuid
last_event_seq
required
integer
last_event_ts
required
string format: date-time
object_type
required
Allowed value: hospitality.payment_request
properties
required

Log-shaped folded bag: each entry is a typed {kind, value} object, a {redacted: [markings]} sentinel, or a {truncated_bytes: n} sentinel.

object
key
additional properties
any
Example
{
"object_type": "hospitality.payment_request"
}

Object did not exist at the watermark (not yet created, or already deleted).

Malformed at, or the object’s history predates structural event images and cannot back a faithful reconstruction.