Charge cart
Headers
x-zpl-api-keyGateway API key. Required on every request.
x-api-keyYour store API key — authenticates the request as your store.
Charge cart › Request Body
cardNumberFull PAN of the card being charged.
saleIdPOS sale id (echoed onto the persisted Transaction row).
registerRegister number at which the sale is being rung.
userIdOperator/cashier identifier (echoed onto the persisted Transaction row).
acceptPartialWhen true, the cart approves whatever portion of the total the card can cover. When false, the cart rejects every line if the amount exceeds the available balance.
maxChargeOptional ceiling on the total amount drawn from the card (allowance purses + main
balance combined). Use when part of the cart has already been paid by another tender
(cash, loyalty points, etc.) and only the remainder should be charged to this card.
Lines are processed in order; once the cumulative approved amount reaches
MaxCharge the remaining lines are approved for zero and returned with reason
"Max charge reached.".
When null (default) no ceiling is applied.
discountAppliedAmountOptional amount of discount applied to the cart. this is just a passthrough from the POS to the API, it is not used for any calculations.
Cart lines. Must contain at least one entry.
remarkOptional remark forwarded to the persisted Transaction row.
pinCard PIN entered at the register / self-checkout. Required only when the card (or its provider) requires a PIN; ignored otherwise. Never persisted.
phoneCardholder phone entered at the register / self-checkout. Required only when the card (or its provider) requires a phone; ignored otherwise. Any common format is accepted (normalised to E.164 server-side). Never persisted.
idempotencyKeyOptional client-supplied idempotency key — typically the POS transaction id. When a
request repeats a previously committed key (per store) with the same card and line
items, it is rejected as a duplicate charge (Duplicate_Charge) and the card is
not charged again; reusing a key with a different payload (amount, card, or lines) is
rejected with Idempotency_KeyReuse. Ignored on the quote path (quotes have no
side effects).
Charge cart › Responses
OK
Response body for POST /api/Transactions/cart and /cart/quote. Carries
the per-line decision, the draws made against each purse, and a roll-up summary.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a
known business error (e.g. "Incorrect" / "Locked" for PIN checkout).
Clients should switch on this instead of parsing ErrorMessage. Null for
success and for generic/unclassified failures.
Quote cart
Headers
x-zpl-api-keyGateway API key. Required on every request.
x-api-keyYour store API key — authenticates the request as your store.
Quote cart › Request Body
cardNumberFull PAN of the card being charged.
saleIdPOS sale id (echoed onto the persisted Transaction row).
registerRegister number at which the sale is being rung.
userIdOperator/cashier identifier (echoed onto the persisted Transaction row).
acceptPartialWhen true, the cart approves whatever portion of the total the card can cover. When false, the cart rejects every line if the amount exceeds the available balance.
maxChargeOptional ceiling on the total amount drawn from the card (allowance purses + main
balance combined). Use when part of the cart has already been paid by another tender
(cash, loyalty points, etc.) and only the remainder should be charged to this card.
Lines are processed in order; once the cumulative approved amount reaches
MaxCharge the remaining lines are approved for zero and returned with reason
"Max charge reached.".
When null (default) no ceiling is applied.
discountAppliedAmountOptional amount of discount applied to the cart. this is just a passthrough from the POS to the API, it is not used for any calculations.
Cart lines. Must contain at least one entry.
remarkOptional remark forwarded to the persisted Transaction row.
pinCard PIN entered at the register / self-checkout. Required only when the card (or its provider) requires a PIN; ignored otherwise. Never persisted.
phoneCardholder phone entered at the register / self-checkout. Required only when the card (or its provider) requires a phone; ignored otherwise. Any common format is accepted (normalised to E.164 server-side). Never persisted.
idempotencyKeyOptional client-supplied idempotency key — typically the POS transaction id. When a
request repeats a previously committed key (per store) with the same card and line
items, it is rejected as a duplicate charge (Duplicate_Charge) and the card is
not charged again; reusing a key with a different payload (amount, card, or lines) is
rejected with Idempotency_KeyReuse. Ignored on the quote path (quotes have no
side effects).
Quote cart › Responses
OK
Response body for POST /api/Transactions/cart and /cart/quote. Carries
the per-line decision, the draws made against each purse, and a roll-up summary.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a
known business error (e.g. "Incorrect" / "Locked" for PIN checkout).
Clients should switch on this instead of parsing ErrorMessage. Null for
success and for generic/unclassified failures.
Create transaction
Headers
x-zpl-api-keyGateway API key. Required on every request.
x-api-keyYour store API key — authenticates the request as your store.
Create transaction › Request Body
cardNumberGets or sets the card number to process the transaction for.
amountGets or sets the transaction amount. Must be positive (greater than zero). The TransactionType determines whether this is a credit (adds value) or debit (deducts value).
saleIdGets or sets the sale ID associated with this transaction.
registerGets or sets the register number where the transaction is occurring.
userIdGets or sets the user ID processing the transaction.
transactionTypeGets or sets the type of transaction (Credit, Debit, etc.). Must be explicitly provided when not coming from route parameter.
acceptPartialGets or sets a value indicating whether partial payment is accepted for debit transactions.
remarkGets or sets an optional remark or note about the transaction.
pinCard PIN entered at the register / self-checkout. Required only for debit transactions on cards that require a PIN; ignored otherwise. Never persisted.
phoneCardholder phone entered at the register / self-checkout. Required only for debit transactions on cards that require a phone; ignored otherwise. Never persisted.
idempotencyKeyOptional client-supplied idempotency key — typically the POS transaction id. When a
request repeats a previously committed key (per store) with the same transaction type,
card and amount, it is rejected as a duplicate charge (Duplicate_Charge) and no
funds move; reusing a key with a different payload is rejected with
Idempotency_KeyReuse.
Create transaction › Responses
OK
Data transfer object representing the result of processing a transaction.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a
known business error (e.g. "Incorrect" / "Locked" for PIN checkout).
Clients should switch on this instead of parsing ErrorMessage. Null for
success and for generic/unclassified failures.
Create transaction by type
path Parameters
typeThe type of transaction (Credit, Debit, etc.) from the route.
Represents the type of transaction.
Headers
x-zpl-api-keyGateway API key. Required on every request.
x-api-keyYour store API key — authenticates the request as your store.
Create transaction by type › Request Body
cardNumberGets or sets the card number to process the transaction for.
amountGets or sets the transaction amount. Must be positive (greater than zero). The TransactionType determines whether this is a credit (adds value) or debit (deducts value).
saleIdGets or sets the sale ID associated with this transaction.
registerGets or sets the register number where the transaction is occurring.
userIdGets or sets the user ID processing the transaction.
transactionTypeGets or sets the type of transaction (Credit, Debit, etc.). Must be explicitly provided when not coming from route parameter.
acceptPartialGets or sets a value indicating whether partial payment is accepted for debit transactions.
remarkGets or sets an optional remark or note about the transaction.
pinCard PIN entered at the register / self-checkout. Required only for debit transactions on cards that require a PIN; ignored otherwise. Never persisted.
phoneCardholder phone entered at the register / self-checkout. Required only for debit transactions on cards that require a phone; ignored otherwise. Never persisted.
idempotencyKeyOptional client-supplied idempotency key — typically the POS transaction id. When a
request repeats a previously committed key (per store) with the same transaction type,
card and amount, it is rejected as a duplicate charge (Duplicate_Charge) and no
funds move; reusing a key with a different payload is rejected with
Idempotency_KeyReuse.
Create transaction by type › Responses
OK
Void transaction
path Parameters
transactionIdThe ID of the transaction to void.
Headers
x-zpl-api-keyGateway API key. Required on every request.
x-api-keyYour store API key — authenticates the request as your store.
Void transaction › Responses
OK
resultGets or sets the result data if the operation was successful.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a
known business error (e.g. "Incorrect" / "Locked" for PIN checkout).
Clients should switch on this instead of parsing ErrorMessage. Null for
success and for generic/unclassified failures.