Collect payments on account with Stripe Terminal
Partners can start, monitor, and cancel a card-present payment on account with
Stripe Terminal. This is an asynchronous flow: starting the attempt does not
create a PaymentOnAccount. Stripe's successful-payment webhook creates the
credit, after which the status query returns its paymentOnAccountId.
Use startTerminalPaymentOnAccount with the patient, amount, and Stripe reader
identifier. Poll paymentOnAccountTerminalStatus until it reports SUCCEEDED,
FAILED, or CANCELED. Use cancelTerminalPaymentOnAccount to stop an
in-progress reader action and cancel its PaymentIntent.
The payload includes the PaymentIntent identifier, reader identity and status,
attempt status, failure message, and the persisted payment-on-account
identifier when available. The optional date and comment are retained on
the payment created by the webhook. Optional partner metadata is copied to the
Stripe PaymentIntent and the resulting PaymentOnAccount.metadata, with the
same reserved-key and size restrictions as card payments on account.
All three operations require the createPayment right. The practice must have
Stripe connected and Stripe Terminal enabled, and Express readers must belong
to the practice's Stripe Terminal location.