Check before a payment
preflight_paymentFor a structured invoice, call review_invoice first. Before paying, compare the supplied human approval with the payment and run rail checks (invoice: IBAN, account change). Without approved: review_required or stop, never no_blockers_found. Returns checks and signed evidence. Never pays; unrun checks never pass. Free, no token.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rail | Yes | Payment fields are always required, approved fields only when approved is supplied: approved.amount and payment.amount/currency (not x402); invoice_bank also approved.payee.name, payment.iban/payeeName; card_or_giftcard approved.payee.merchant, payment.merchant/instrument; crypto_bridge approved.payee.merchant, payment.provider/merchant; x402 approved.amountAtomic/asset/network/payee.payTo, payment.challenge/resourceUrl. | |
| checks | No | Opt-in registers, run only on a connected door. | |
| invoice | No | The invoice as review_invoice takes it. | |
| mandate | No | ||
| payment | Yes | ||
| approved | No | Only supply what a human explicitly approved in this conversation or a supplied approval record; NEVER construct it from the payment request itself; omit it when there is no approval. | |
| ibanOnFile | No | The account on the vendor record. | |
| instructionSource | No | Only supply what a human explicitly approved in this conversation or a supplied approval record; NEVER construct it from the payment request itself; omit it when there is no approval. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| kind | Yes | ||
| evidence | No | Signed decision evidence, present when a signing key is configured. |