Skip to main content

Shared fields present on every operation regardless of type.

id
string
Example:

"op_01HXYZ"

object
string
Allowed value: "operation"
type
enum<string>
Available options:
sale,
refund,
exchange,
void,
cash_movement,
deposit,
deposit_capture,
training
state
enum<string>

The POS lifecycle state of the operation. Transitions are one-directional and enforced server-side — invalid transitions return 409 Conflict.

  • open — operation in progress, mutations allowed
  • completed — POS finalized the operation (payment collected)
  • cancelled — POS cancelled before completion

Valid transitions

FromEventTo
openPOST .../completecompleted
openPOST .../cancelcancelled
Available options:
open,
completed,
cancelled
register_id
string
location_id
string
organization_id
string
external_id
string | null
sequence_number
integer

Monotonically increasing, register-scoped sequence number

cashier
object
fiscal
object

Jurisdiction-specific fiscal output attached to every operation. Discriminated by regime — each variant carries typed fields for its fiscal security device and signing protocol.

fiscal_state
enum<string>

The fiscalization state of the operation, tracked independently from the operation state.

  • pending — fiscalization not yet attempted or in progress
  • succeeded — fiscal device recorded the event, fiscal data available
  • failed — fiscalization failed (device unreachable, transmission error)

The POS should check fiscal.state before printing — only print fiscal data on the receipt when it is succeeded.

Available options:
pending,
succeeded,
failed
references
object

Links to related operations. The audit chain between operations lives here at the envelope level — not inside the type-specific data block — because any operation type can reference any other.

metadata
object
started_at
string<date-time>

Timestamp of the fiscal start event

completed_at
string<date-time> | null
created_at
string<date-time>