A valid request URL is required to generate request examplesProcess a PaymentIntent on a Terminal
Creates a durable Terminal Payment for one physical or simulated Terminal assigned to your account and returns before cardholder interaction. Ionic then prompts physical hardware for an explicit supported tender when required and dispatches the Sale asynchronously.
The PaymentIntent must be in requires_payment_method, use automatic
capture, use USD, and belong to the same account and mode as the
Terminal. Do not first attach or confirm a normal card PaymentMethod.
HTTP 202 means the command was accepted, not that payment succeeded.
Poll the returned Terminal Payment or consume webhooks until its status is
final. Reusing the same Idempotency-Key safely returns the same HTTP result.
An existing active attempt is returned only when it uses the same
Terminal; selecting another Terminal returns HTTP 409.
If the Terminal Payment becomes unknown, keep retrieving it; do not
process the order again, because the original payment may have
completed.
A valid request URL is required to generate request examplesAuthorizations
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
Physical or built-in simulated Terminal selected by the POS for this checkout.
^tmr_Body
Existing PaymentIntent in requires_payment_method.
^pi_"pi_01JEXAMPLEF9W6B3C2D7K4M8N"
Response
Durable Terminal Payment accepted for asynchronous dispatch. Inspect
status; only succeeded means the payment was approved.
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.

