A valid request URL is required to generate request examples{
"payment_context": {
"version": 1,
"channel": "<string>",
"flow": "<string>",
"wallet": "unknown",
"wallet_evidence": "unknown",
"initiated_by": "<string>",
"card_brand": "<string>",
"card_funding": "<string>",
"card_entry_method": "<string>",
"observed_at": "2023-11-07T05:31:56Z",
"checkout_session_id": "<string>",
"payment_link_id": "<string>",
"invoice_id": "<string>",
"subscription_id": "<string>",
"card_country": "<string>"
},
"payment_lifecycle": {
"attempted_at": "2023-11-07T05:31:56Z",
"dispatched_at": "2023-11-07T05:31:56Z",
"authorized_at": "2023-11-07T05:31:56Z",
"captured_at": "2023-11-07T05:31:56Z",
"voided_at": "2023-11-07T05:31:56Z",
"finalized_at": "2023-11-07T05:31:56Z"
},
"id": "<string>",
"object": "terminal_payment",
"merchant_id": "<string>",
"terminal_id": "<string>",
"payment_intent_id": "<string>",
"charge_id": "<string>",
"livemode": true,
"amount_requested": 2,
"amount_approved": 1,
"amount_remaining": 1,
"currency": "usd",
"payment_type": "credit",
"status": "pending",
"terminal_interaction": "pending",
"cancellation_requested": true,
"cancellation_requested_at": 123,
"failure_code": "<string>",
"failure_message": "<string>",
"created_at": 123,
"updated_at": 123
}Request cancellation of an active Terminal Payment
Records the cancellation request and returns without waiting for
terminal I/O. Ionic asynchronously attempts at most one supported abort
command and reconciles the original payment reference. A
cancellation_requested: true response is not a financial outcome, and
HTTP 202 does not mean the payment was canceled. Retrieve the same
Terminal Payment or consume terminal-payment webhooks. The payment can
still be approved after the request; refund an unwanted late approval
separately. Ionic never resubmits the original Sale.
A valid request URL is required to generate request examples{
"payment_context": {
"version": 1,
"channel": "<string>",
"flow": "<string>",
"wallet": "unknown",
"wallet_evidence": "unknown",
"initiated_by": "<string>",
"card_brand": "<string>",
"card_funding": "<string>",
"card_entry_method": "<string>",
"observed_at": "2023-11-07T05:31:56Z",
"checkout_session_id": "<string>",
"payment_link_id": "<string>",
"invoice_id": "<string>",
"subscription_id": "<string>",
"card_country": "<string>"
},
"payment_lifecycle": {
"attempted_at": "2023-11-07T05:31:56Z",
"dispatched_at": "2023-11-07T05:31:56Z",
"authorized_at": "2023-11-07T05:31:56Z",
"captured_at": "2023-11-07T05:31:56Z",
"voided_at": "2023-11-07T05:31:56Z",
"finalized_at": "2023-11-07T05:31:56Z"
},
"id": "<string>",
"object": "terminal_payment",
"merchant_id": "<string>",
"terminal_id": "<string>",
"payment_intent_id": "<string>",
"charge_id": "<string>",
"livemode": true,
"amount_requested": 2,
"amount_approved": 1,
"amount_remaining": 1,
"currency": "usd",
"payment_type": "credit",
"status": "pending",
"terminal_interaction": "pending",
"cancellation_requested": true,
"cancellation_requested_at": 123,
"failure_code": "<string>",
"failure_message": "<string>",
"created_at": 123,
"updated_at": 123
}Authorizations
Merchant secret key, or a Platform secret key with delegation.
Headers
Merchant ID when an authorized Platform acts for a connected Merchant. Omit when authenticating directly as that Merchant.
^mer_Unique checkout-attempt key. Reuse the same value only when retrying the same request body and route.
1 - 255Path Parameters
Terminal Payment identifier.
^tpr_Response
The cancellation request was accepted; inspect status and terminal_interaction.
Bounded observations for this payment attempt. Ownership attribution is internal to Ionic. Legacy payments have a null context.
Show child attributes
Show child attributes
First observed lifecycle times. Null means not observed, including historical records; times are never inferred from later updates.
Show child attributes
Show child attributes
Unique identifier for the terminal payment (tpr_…).
^tpr_terminal_payment ID of the account that owns the terminal payment (mer_…).
^mer_ID of the terminal that took the payment (tmr_…).
^tmr_ID of the PaymentIntent this attempt pays (pi_…).
^pi_Present only after an approved attempt creates a Charge.
^ch_PaymentIntent amount in minor currency units.
x >= 1Amount approved so far, in minor currency units. 0 until an approval is recorded.
x >= 0Amount still to be collected (amount_requested minus amount_approved), in minor currency units.
x >= 0Three-letter ISO currency code, in lowercase.
usd Authoritative tender for the payment. Null while the result is unresolved or when no trustworthy tender was returned. Credit and debit are currently available. EBT values depend on terminal capabilities and are reserved for forward compatibility.
credit, debit, ebt_food, ebt_cash succeeded: approved; complete the sale.
voided: authorized and then voided; do not complete the sale.
declined: explicitly declined; request another tender.
canceled: interaction canceled or timed out. When
cancellation_requested is true, the PaymentIntent is also canceled;
create a new PaymentIntent if payment is still needed. Otherwise,
retry this PaymentIntent only after it returns to
requires_payment_method, using a new Idempotency-Key.
failed: known processing failure; show the failure before a new attempt.
unknown: both the command response and the immediate read-only status
check were inconclusive; do not process the order again. Ionic checks
the original payment again about 2, 5, 10, 20, 40 and 80 seconds later,
then at growing intervals, and updates this payment once the result is
confirmed.
pending or in_progress: retrieve this Terminal Payment until final.
pending, in_progress, unknown, succeeded, voided, declined, failed, canceled Reader availability for this Terminal Payment, independent from its
financial status. pending means Ionic accepted the operation but
the terminal interaction has not started. active means
the operation may currently occupy the reader. completed means its
terminal interaction finished and this payment no longer blocks a
new payment; continue retrieving any financially unknown result.
pending, active, completed Whether cancellation was requested. This alone does not mean the payment was canceled.
Unix epoch seconds when cancellation was requested. Null when it was not requested.
Stable Ionic detail for a known non-approval. This is intentionally an
open string: branch on status, use recognized values for richer POS
guidance, and fall back to failure_message for an unfamiliar value.
Raw device responses are not returned.
Currently emitted values:
dispatch_not_started: Ionic rejected the command before payment processing began.processor_error: Ionic confirmed a final processing failure.invalid_routing: the Merchant's payment setup is invalid.pin_processing_error: PIN processing failed.do_not_honor: the payment received a generic decline.insufficient_funds: the payment was declined for insufficient funds.incorrect_pin: the payment was declined for an incorrect PIN.pin_attempts_exceeded: the PIN retry limit was reached.transaction_not_permitted: the transaction is not permitted for the selected payment setup.
Safe Ionic explanation suitable for a POS.
Unix epoch seconds when the terminal payment was created.
Unix epoch seconds when the terminal payment was last updated.

