Stripe agentic commerce
Your offers sell inside AI assistants, businesses and their agents pay your Stripe handle, and your own agents pay under your limits.
- Connect
- Nothing to connect, 1 grant
- Runs through
- Your account
- First run
- List your Pro plan where AI assistants shop, free on your account
- Venues
- None, it holds your records
List my Pro plan where AI assistants shop, and show me what an assistant sees.
curl -X POST "https: //api.sb/ leaseline.app/ offers/ publish? mode= try" \
-H "Authorization: Bearer $SB_TOKEN" \
-H "Content-Type: application/ json" \
-d '{"offer": "offers/ pro", "to": "stripe-catalog"}'
npx startup-builder do Offer.publish --try --data '{"offer": "offers/ pro", "to": "stripe-catalog"}'
{
"name": "do",
"arguments": {
"mode": "try",
"code": "return await $.Offer.publish({ offer: 'offers/ pro', to: 'stripe-catalog' })"
}
}
import { $ } from 'startup-builder'
const result = await $.try.Offer.publish({ offer: 'offers/ pro', to: 'stripe-catalog' })
{
"$type": "Offer",
"mode": "try",
"stored": false,
"offer": "offers/ pro",
"row": {
"name": "Leaseline",
"plan": "monthly",
"for": "property managers with 20 to 400 units",
"price": {
"amount": 149,
"currency": "USD",
"per": "month"
},
"per": "portfolio",
"checkout": "tool: leaseline.checkout"
},
"checkoutReply": {
"tool": "leaseline.checkout",
"takes": [
"name",
"email",
"payment token"
],
"returns": [
"account",
"key",
"receipt"
],
"phone": "optional"
},
"onPaid": "Order.paid records the assistant as `by` and the Customer as `for`"
}
Connect once
- Nothing to connect: your startup’s own Stripe connected account is already agent-ready (hub Stripe; the account itself is on Stripe).
- One grant, “List my offers for AI agents”, publishes your catalog feed: one row per offer variant, with its Price and its checkout tool.
- The rails, named once: Instant Checkout in ChatGPT over the Agentic Commerce Protocol; the Shared Payment Token, scoped to one startup and one total, for card payments from agents; the Machine Payments Protocol and x402 for per-call payments; Link’s agent wallet; and the Stripe Directory, where agents find services they can pay for. A buyer’s agent that hands over a whole job comes in over the open agent-to-agent protocol.
- Your Stripe profile and its handle, such as
@leaseline: businesses and their agents pay you there with Stripe Pay, instantly and account to account, and find you in the Stripe Directory. Your agents pay other businesses’ handles the same way: a sponsorship, a listing, a Partner’s commission.
| Grant | What it unlocks | Scope |
|---|---|---|
| List my offers for AI agents | Your catalog feed published to Stripe, read by ChatGPT, Claude, Gemini and Perplexity | catalog_feed: |
| To | Do this |
|---|---|
| Pause | Integration.pause takes your catalog rows down and stops new agent checkouts at once; Orders already paid are fulfilled. |
| Reconnect | Integration.reconnect publishes the catalog feed again from your Stripe Prices, keeping every row’s id. |
| Disconnect | Integration.revoke withdraws the catalog feed and the Directory listing; your Stripe connected account stays, because your customers pay through it. |
What it holds
| Noun | The account’s object | When | Which side leads |
|---|---|---|---|
| Order | payment intent,by`` | An agent buys for a customer | Your records |
| Card | issuing card | Your agent gets a card under a standing approval | The account |
| standing approval | spending controls | You authorize your agent to spend | Your records |
| Transaction | balance transaction | Money moves | The account |
| account | Stripe profile handle | A business or its agent pays you, or you pay one, by handle | The account |
What your agents do
| Ask | Call | Path | Runs through | Price |
|---|---|---|---|---|
| List my pilot and Pro plans where AI assistants shop. | Offer.publish | POST / | Your account | Free |
| Take Northgate’s assistant’s payment for Pro. | Order.pay | POST / | Your account | Free |
| Charge agents 0.2¢ per lookup from their first call. | Offer.publish | POST / | Your account | Free |
| Give my agent a $200 card for directory listings this month. | Card.issue | POST / | Your account | Free |
| Pay the newsletter’s Stripe handle $60 for its tools slot. | Bill.pay | POST / | Your account | Free |
| Show me what agents bought this month, by assistant. | Transaction.list | GET / | Your account | Free |
Calls on your own account are free.
What try does: Returns the catalog row and the checkout tool’s first reply as an assistant sees them; nothing is published or charged. A sk_test_ key runs the same calls against your Stripe test account.
Limits
| What | Limit | Call |
|---|---|---|
| Card payments from agents | 50¢ or more each | Order.pay |
| Per-call units | Billed below a cent, settled from 1¢ | Offer.publish |
| Your agents’ cards | Never above your standing approval’s Limit; a purchase above it opens an Approval | Card.issue |
Related
- Plays: Get bought by agents · Sell to agents · Keyless signup · Agent-to-agent selling
- Strategies: Launch and search
- Calls:
Offer.publish·Order.pay·Card.issue·Bill.pay·Transaction.list
Reference
Field map, formats, events and how long a connection lasts
| Direction | Event |
|---|---|
| Emits | Offer.published, Order.paid, Card.issued, Mandate.spent |
Hears payment_intent.succeeded | Becomes Order.paid |
Hears shared_ | Becomes Order.paid |
Hears issuing_authorization.created | Becomes Mandate.spent |
Any Event can wake a Workflow, and a Watch delivers it to your endpoint, signed (Events and webhooks).
A connection lasts for as long as your startup runs: the connected account carries no sign-in that runs out. The platform asks you to reconnect 7 days before it runs out; until you do, a call that needs it refuses with needs-reauth.