402 response of the endpoint lists the accepted protocols and options. For the payment flow and owner approval, see Payments. To pay from your own application, see Pay from code.
How the agent pays
By default, the agent pays from its InFlow balance. It can also pay in other ways when the seller offers them.
For x402, the CLI prefers
balance, then exact, then instrument. For MPP, the seller challenge sets the rail. A card payment does not use your InFlow balance. See Rails and schemes.
Check before you pay
Do these checks before the first payment to a new endpoint.1
Read the endpoint
inspect reports the ODP, AEP, MPP, and x402 capabilities of a URL. It does not enroll and it does not pay.2
Check what you can pay with
mpp supported lists your payment methods by intent, settlement rail, and currency. x402 supported lists your buyer capabilities by scheme and network.3
Check your balance
deposit-addresses list shows where to send stablecoins. Always copy a deposit address in full. A shortened address does not work.Pay in one command
One command probes the endpoint, prepares the payment, and waits for approval. Then it sends the credential to the seller and returns the response body.outcome, transaction_id, response_status, settled, and the seller’s response body.
With --format json or --format toon, the agent sees only the final result. To show the approval_url to the owner earlier, stream the frames with --format jsonl.
--timeout is 900 seconds, the same as the approval expiry on the server.
Pay in two steps
Use this path when your agent host cannot block on one long command.1
Start the payment
Run The result contains
pay without --interval.transaction_id, approval_id, approval_url, and a _next object.2
Show the approval URL
Give the
approval_url to the owner at once. Save the transaction_id at once. You need it to resume.3
Complete the payment
Run the command in
_next.command at once, with inflow before it. Do not wait for the owner to reply first.fetch polls until the owner approves. Then it sends the credential to the seller and returns the body.mpp with x402 in each command.
Resume an interrupted payment
Runfetch with the saved transaction_id. Do not start a new payment for the same request.
Check or cancel a payment
A cancel is a best-effort request.
Send a body or headers
The seller request usesGET by default. Use --method, --data, and --header for other requests.
--data, the content type is application/json. A --header value can change it. --header repeats.
Select one payment option
These flags limit the seller options that the CLI considers.
To pay with a specific linked card, use
--instrument-id with MPP or x402. Without it, the CLI uses your primary card. If the outcome is verification-required, give the verification_url to the owner. Do not start a new payment.
For x402, --payment-id sends your own payment identifier. It must have 16 to 128 characters from a-z, A-Z, 0-9, _, and -.
Keep content and secrets out of chat
Subscribe to an MPP resource
Recurring offers are MPP challenges with the intentsubscription.
1
Find the option
2
Subscribe
3
Use the subscription
Decode a header
decode reads a raw payment header.
Rules for agents
- Never print OAuth tokens or API keys.
- Use
fetchto complete an approved payment.fetchattaches the credential to the seller request, so the credential stays out of chat. - On the fast path, the credential in the result is for reference only. Do not send it again.
- Save the
transaction_idas soon as you get it.
Troubleshooting
The payment never settles
The payment never settles
The owner did not approve it. Approval expires after 900 seconds. Check the state with
inflow mpp status or inflow x402 status.The command finds no matching option
The command finds no matching option
Your filters exclude every option from the seller. Remove
--currency, --rail, --scheme, --network, or --asset-name. Then run inflow inspect again.The balance is too low
The balance is too low
Run
inflow deposit-addresses list. Send stablecoins to the full address. Then run inflow balances list again.