Complete operation
Finalizes a goods-movement operation (sale / return / exchange) and attaches the typed payment contract used for fiscalization and reconciliation. Session-lifecycle operations (session_open, session_cash_adjustment, session_cash_count, session_close) auto-complete on POST /operations and must not be sent here — they will return 409 operation_invalid_state because they are never in OPEN status.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Merchant identifier returned by the merchants resource.
Latest operation ETag returned by OpenFiskal. Replace it after every successful mutation.
Unique key per endpoint, merchant, and tenant. Retained for at least 24 hours.
Path Parameters
Body
Response
Operation completed
- SaleOperation
- ReturnOperation
- ExchangeOperation
POS, ONLINE open, completed, voided ISO 4217 currency code.
"EUR"
Current server-issued version for the operation, starting at 1. Returned as ETag header.
sale "sale"
Cart-level (order-level) discounts applied across the SALE. Empty array when none. Surfaced separately from line items so consumers do not need to back-derive from totals.
Only set for source: POS.
Only set for source: POS.
The RegisterSession this Operation is bound to. Set on every POS Operation; null for ONLINE goods-movement (no register, hence no session). On session-event variants this is the session being opened, adjusted, or closed; on goods-movement variants it is the session the operation was rung up during.
Merchant or POS identifier for the upstream order.
The Fiskaly signature attached to this Operation, when one exists. Null until the operation has been signed.
- FiscalInformationKassenSichV
- FiscalInformationRKSV
- FiscalInformationRT
Merchant free-text note for the goods-movement event.