When one product pays another

By

Stripe Pay sends money between businesses by a profile handle. An agent can prepare the transfer. A person still approves the exact amount.

~~~

Stripe introduced stripe pay on October 27, 2026. You find another company by its Stripe profile handle and send funds from the Dashboard or the CLI. Stripe’s post says the transfer is free.

Patrick Collison quoted that post and wrote that A2A payments will be more important than P2P payments.

He means one account paying another account. In this product the accounts belong to businesses. That is a different job from a person paying a person.

I have not sent one of these transfers. I checked Stripe’s post and docs on October 28, 2026.

A handle is the address

A Stripe profile is a public identity for a business. The handle looks like @stripe, it starts with @, and it is unique across Stripe. Profiles are not available in India.

Both sides need a profile. The sender also needs a funded financial account. The receiver needs a destination linked to the profile. Stripe’s skill for agents says that destination can be a financial account on Stripe or a linked bank account.

Instant transfers between those financial accounts move immediately. Each one is from 1 to 50,000, in USD, USDC, or GBP.

Before you confirm, the CLI returns a fee and a delivery time. Stripe’s agent skill says not to assume the transfer is free or instant, because the payout depends on how the recipient is set up. I would read that fee for the recipient in front of me.

Financial accounts sit in Stripe Treasury. Treasury is in public preview in the United States and the United Kingdom, and in private preview in Australia. Whether a given account can send depends on that setup, so the Dashboard is the check.

The command is written for an agent

--agent and --json skip the form. You pass the handle, the amount, and the currency up front, and the answer comes back as JSON.

Stripe’s CLI docs use @recipient and 10.00 usd as the example. You pass the real handle and the real amount. This reviews the transfer and does not send it:

stripe pay @recipient 10.00 usd --agent

The response status is confirmation_required. You get the source financial account, recipient, amount, currency, fee, delivery timing, internal note, and memo.

After a person checks those fields, the same command runs again with --yes. That second run also passes --financial-account set to the account id from the review, even when the review picked the account on its own. That is the run that can send.

--dry-run resolves the profile, the source account, the recipient, and the route. It still creates no transfer.

If the account needs a separate approval, the status is approval_required. You open the approval link, approve it, and run the exact command Stripe returns in next_step.command. You do not change the handle, the amount, the currency, or the account. The request expires after 5 minutes. A resume checks once, and it does not sit there polling.

If you do not already have the exact handle, or the profile id that looks like profile_..., the agent searches Stripe Directory and asks which business you meant. Guessing a handle is how the money goes to the wrong company.

Fig 1 · 1/4Preparing a handle transfer
Find the handle

Checkout, a handle, or one API call

A person buying something is a different payment from a business paying a vendor, and both are different from an API that charges for one call.

Who paysWhat they payHow the agent names itWho approves
A personA product on a storeThe checkoutThe person, for that item and that total
A businessAnother businessA Stripe profile handleThe person, after the CLI review
SoftwareOne API callA machine-payments endpointThe person, before that call

The first row is What happens when AI agents shop for us. Link and Shop Pay let an agent finish a person’s checkout. The person approves the charge, and the agent does not see the card number.

The second row is stripe pay. The payer is a business. The documented range starts at 1 USD, 1 GBP, or 1 USDC, and stops at 50,000. That fits an invoice or a contractor. It is the wrong size for a fraction of a cent.

The third row is already in Stripe Directory, separate from stripe pay. Directory indexes pay-per-call APIs. A search result can include a machine-payments endpoint, and the docs say to review the endpoint and the price, then approve, before paying.

Which payment an agent preparesThe agent picks checkout for a person's purchase, a profile handle for a bill between businesses, or a machine-payments endpoint for a priced API call. Each path waits for a person to approve the amount.A storeA businessAn API callSomething to payWho gets paid?CheckoutProfile handlePriced endpointPerson approves

What changes is the address and the size of the charge. A person still approves the amount on each of them.

What I would do

A reader paying for a course is the first row. I would not move that checkout onto stripe pay.

I would use a handle when my business owes another business that is already on Stripe. A contractor I already pay. A tool that sends me an invoice.

The agent can search Directory and run the review, then put the handle, the amount, the fee, and the timing on one screen. That is the rule from How to prevent AI agents from taking irreversible actions. An agent once bought a domain for $12.20, the registration went through immediately, and there was no refund.

The agent can search and prepare. A person approves the exact action.

I would not leave --yes in a script that runs while I am away.

On October 21, 2026, Stripe announced Treasury for agents. An agent can read balances and prepare sends through Stripe’s MCP server, and the docs still say that live money movement needs a person to approve it, by default. The announcement also said spending limits for agents were coming. I would turn a limit on later, for a vendor I already pay, and only for an amount I already expect. The first payment to a new handle still gets a look.

That is the case of one product paying another. My financial account is the payer. Their handle is the payee. The agent fills in stripe pay from an invoice I already expected. It does not get permission to pick a new recipient on its own.

A friend paying a friend is still a different product. Amounts under 1 USD do not fit this transfer. A business with no profile cannot be paid this way.

If I were receiving the money, I would want a handle, a price, and a description an agent can read without opening a marketing page. Directory is how that agent finds the business. I do not have a Stripe profile for the courses, because that charge does not go through Stripe.

Tagged: Business · All topics

Want me to talk about your product? You can sponsor this site.

~~~

Related posts about business: