The program you built asks for a resource. The server does not send a checkout page. It sends 402 Payment Required: this much, from this asset, to that destination. Pay, then come back.
But a person doesn’t respond. The program has to answer now. There is no human on the other end.
An agent has only the bill, a listed corridor, and a way to retry the same payment so it does not charge twice.
Why existing workflows assume a human
Recall a pneumatic tube with a clerk at the other end. You fill a slip. It whooshes back to the other end. If the amount is wrong, or the canister arrives empty, someone calls.
An agent still needs the tube. It cannot fill a slip. It cannot wait for a clerk to call from an intercom speaker. HTTP reserved 402 decades ago and then mostly ignored it, because the internet assumed a person with a physical transaction request.
Atum is that payment delivery system, without the clerk. The 402 is the slip. If the slip is incomplete, nobody calls. The program just cannot continue.
What an agent actually needs to do
The agentic part is not that software has a wallet. It is that software has to decide, without a person, a small set of things a clerk used to decide at the window.
Whether to pay. The 402 lists what the resource will accept. The program pays, or it doesn’t. There is no “let me check with someone and come back.”
Which corridor. The resource says what it will receive, and on which rail. The program pays with what it already holds. Those do not have to be the same chain, or the same token.
Atum keeps a list of what is allowed to move through its contracts. – If the asset is not on our allowlist, the request cannot enter.
- If the pair is listed but no operator is covering it, nothing quotes.
- For agentic payments, our 402 facilitator offers pairs the network admits and an agent can select from the list
How to come back without charging twice. The strongest thing you can give a developer building an agent: no duplicate charges, if they reuse the same payment instead of creating another.
Those are the decisions. When to pay. Which listed pair. How to retry. Not a smarter checkout.
Identity and limits
The signature is a constraint on this payment. It is not a login.
Who may spend? Up to what? To which destination? Those limits apply to this payment, not a blank check on the account. The signature says the source authorized those terms. It does not say who the software “is,” and it does not mean Atum signed on anyone’s behalf.
Authorization gates whether this payment may proceed. Identity is who is acting. They are not the same check.
If you have shipped a checkout system, you already know this. Charging a card is not logging in the customer. The charge says some amount may leave this account, for this merchant, at this time. The 402 signature is that charge. Seeing which account signed it does not tell you who is behind the software.
Atum ID is the other check. It is a credential that says this participant is known to Atum — a badge on the envelope, not a login. It can travel with the payment so you can ask who acted. It does not move the money, and the 402 does not wait for it. Build the first integration on the signature.
If you are building on Atum, do not make Atum ID a gate, and do not treat “the agent signs in as the user” as part of this flow. Sign-in is a session-based feature. This describes the payment flow.
No news is not a no
A person who doesn’t hear back asks. An agent who doesn’t hear back is tempted to pay again.
Don’t. The first payment may still be moving. Come back with that one. A second 402 is a second charge. The docs cover what silence means and what to record so you do not start a second payment.
The honest gap
A human who gets stuck asks. They call the merchant. They open a dashboard. They say “did this go through?” and wait for a human to answer.
An agent cannot ask for help as easily. It has the 402, a receipt, or silence. If the terms were incomplete, if the corridor was not listed, if the retry created a new payment, there is no clerk at the other ende. MPP has the same gap, and the same three answers.
Build as if no one will be there to ask. The 402 is the conversation.
To send one, start with making an x402 payment. The same retry rule holds if you are on MPP instead.
