Skip to main content
Pay an MPP or x402 endpoint with the InFlow CLI, and get the response. The 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.
For the full payment options of one protocol, use the protocol command. It sends a request to the endpoint, but 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.
The result contains 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.
The default --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 pay without --interval.
The result contains 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.
For x402, replace mpp with x402 in each command.

Resume an interrupted payment

Run fetch 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 uses GET by default. Use --method, --data, and --header for other requests.
With --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 intent subscription.
1

Find the option

Copy the option ID of the subscription offer.
2

Subscribe

The owner reviews and approves the recurring terms. InFlow then settles the first period.
3

Use the subscription

An agent must get explicit approval from the owner before it cancels a subscription.

Decode a header

decode reads a raw payment header.

Rules for agents

  • Never print OAuth tokens or API keys.
  • Use fetch to complete an approved payment. fetch attaches 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_id as soon as you get it.

Troubleshooting

The owner did not approve it. Approval expires after 900 seconds. Check the state with inflow mpp status or inflow x402 status.
Your filters exclude every option from the seller. Remove --currency, --rail, --scheme, --network, or --asset-name. Then run inflow inspect again.
Run inflow deposit-addresses list. Send stablecoins to the full address. Then run inflow balances list again.
Last modified on October 15, 2026