How can my app let a user's AI agent pay with the user's own saved card?
Don't give the agent the card. With Agentcard Vault, your users save their own card once, encrypted with a passkey on their phone. When the agent checks out, it types a placeholder card. Agentcard holds the payment, your user approves it with Face ID, a passkey or their voice, and only then does their real card go to the store. The agent never sees the full number.
How it works
- Your user saves their card once. Your app sends them a link to Agentcard's form, white-labeled with your logo, colors and fonts. The card is encrypted on their phone with a passkey, similar to 1Password. Neither the agent, your servers nor Agentcard ever sees the full number.
- The agent shops. It fills the cart in its browser (Browser Use, Kernel, Browserbase, Anchor or your own Chromium) and types a placeholder card at checkout.
- Agentcard holds the payment. It catches the checkout request before anything is charged.
- Your user approves. They get a push or an iMessage, see the store and the amount, and approve with Face ID, a passkey or, in early access, their voice. If they turned on auto-approval, purchases under their limit go through without asking.
- Their card pays. Agentcard sends the real card to the store with a trusted-agent signature, and logs the approval with a timestamp as evidence if the store ever faces a dispute.
What your users keep
- Their own card. Credit, debit, prepaid, commercial or consumer; Visa, Mastercard or Amex; from any country.
- Their points. It's their real card on the card network, so rewards accrue as usual and the statement shows the actual store.
- Their disputes. A charge is disputed from their bank statement, like any other.
- Cover for mistakes. Agentcard insures up to $250 for mistakes the agent makes, with Sure.
- Control. Every purchase waits for their approval unless they set an auto-approve limit, which they choose themselves. Purchases above that limit still ask.
What you build
Attach Agentcard to the page your agent shops in. When the agent pays, you get an approval link to send your user, in your app or in your chat:
await attachToPlaywright(page, {
vault,
user: 'usr_8f3k2m',
merchant: 'shop.example.com',
amount: 2306,
currency: 'usd',
onApprovalUrl: (url) => sendToUser(url),
});Stores don't integrate anything. It works on any checkout that takes cards, with 23 payment processors mapped plus native integrations for Amazon, DoorDash, eBay, Best Buy and airlines.
Your agent doesn't run a browser? opencommerce gives it one buy tool for 5,000+ online stores, paid from the same Vault card. iMessage agents built on Linq or Blooio can use Agentcard to pay too.
What not to do
- Don't put the card number in the prompt. Anything the agent can read, it can repeat, log or leak.
- Don't keep card numbers on your servers. With the Vault, the full number never reaches them.
- Don't let the agent decide alone. Your user approves each purchase, or sets the limit it can spend under.
Questions
Does the agent ever see the card number?
No. The card is encrypted with a passkey on the user's phone. The agent types a placeholder, and the real card goes to the store only after the user approves. Neither the agent, your servers nor Agentcard ever sees the full number.
Does every purchase need approval?
By default, yes. Users can opt in to auto-approval when they save the card and pick a limit, for example purchases under $50. Anything above that limit still asks.
Does the store need to integrate anything?
No. It works on any checkout that takes cards.
Does 3D Secure still apply?
Yes, when the user's bank asks for it. Not on every purchase.
What does it cost?
The Vault is free up to 5,000 users.
Are you building an agent that buys for your users? Start with the Vault quickstart or book a call.