Skip to main content
Connect your Link wallet once, and your v4 agent runs can pay for things: a checkout, a subscription, a ticket, a donation. The agent never gets your real card. For each purchase it asks Link for a one-time credential, and nothing is charged until you approve that purchase in the Link app.

One-time cards

A virtual card for one purchase, typed into a normal checkout form. Your saved card is never shared.

Shared Payment Tokens

For merchants on the Stripe network that accept machine payments: the agent pays over HTTP, without filling out a form.

You approve each one

Each purchase shows up in the Link app with merchant and amount. Approve it, or decline it and the agent stops.

How it works

  1. You connect your Link wallet to a project in the dashboard (once).
  2. You start a run with stripeLinkConnectionId. Only runs that pass it can pay.
  3. When the task needs a payment, the agent creates a spend request for the exact merchant and amount.
  4. Link asks you to approve it in the Link app. The run emits a stripe_link.spend_request event with an approval_url.
  5. After you approve, the agent gets a one-time card (or a Shared Payment Token) and completes the purchase.
The agent works through a Browser Use proxy: it never sees your Link login or your real card number, and it cannot create pre-approved spend requests. Every purchase needs your approval.
  1. Open Integrations in the dashboard and pick the project.
  2. Under Link, click Connect and sign in to Link.
  3. Approve the connection in Link. The card now shows your Link email.
Each project has one Link connection. Connecting again replaces it; Remove disconnects it, and runs that are still going lose access on their next payment step.
Connecting only works in the dashboard; there is no API for it. Link agent wallets are currently available for US Link accounts. If Link says the service is not available in your region, your Link account (or network) is outside the supported region.

2. Get the connection id

  • connectionId is what you pass to runs. Reconnecting usually keeps the same id, but don’t cache it forever: read GET /api/v4/stripe-link before a run and use the connectionId and isConnected it returns.
  • mode is live on api.browser-use.com: approved purchases are real charges.
  • If isConnected is false, connect (or reconnect) the wallet in the dashboard first.

3. Start a run that can pay

Write the task like an order: what to buy, from where, and a price limit. The agent buys only what the task asks for, uses the name, email, phone, and shipping addresses saved in your Link account for the checkout, and cancels spend requests it does not use.
  • Follow-up runs. A follow-up POST /runs in the same session must send stripeLinkConnectionId again. Messages queued with POST /sessions/{session_id}/queue keep the previous run’s connection.
  • Dashboard runs. In the dashboard, Pay with Link in the composer is on by default once the project is connected; switch it off for runs that should not pay.

4. Approve the purchase

When the agent is ready to pay, it creates a spend request and waits for you:
  • Link app. You get an approval request in the Link app showing the merchant and the amount. Approve or decline it there.
  • Dashboard. The run’s chat shows a payment card with an approve button that opens Link.
  • API. The run emits stripe_link.spend_request events. Read them with GET /api/v4/runs/{run_id}/events and send approval_url to whoever has to approve:
status moves through pending_approval → approved → succeeded for a completed payment. You can also see denied (you declined), expired (nobody approved in time), canceled (the agent cancelled an unused request) and requires_action (for example a 3-D Secure check). If you decline, the agent stops instead of trying again. While the agent waits, it re-checks the request every few seconds. Unchanged polls are usually collapsed into one event, but the same status can still arrive more than once (we saw repeated pending_approval events in testing), so key on spend_request_id and status.

Cards vs Shared Payment Tokens

The agent picks the credential that fits the merchant: Some Stripe checkouts offer a Link payment button for AI agents; the agent uses it when it is there. That is a way of paying with the card flow, not a third credential type.

Limits

  • Approval every time. There are no standing or pre-approved budgets: the proxy refuses delegated (pre-approved) spend requests.
  • One wallet per project, connected by a dashboard user. Wallets per end user of your product are not supported.
  • Not available in the EU deployment, or for zero-data-retention projects.
  • Reconnect when asked. Link can revoke access (for example after a long time without use). Browser Use may not notice right away: until it marks the connection as needing reauthentication, GET /api/v4/stripe-link can still report isConnected: true and runs still start, but the agent’s Link calls fail at payment time with a link_unauthorized error. Once the connection is marked, the dashboard shows Reconnect, the status API returns isConnected: false, and new runs that send the id get 422 stripe link connection not found. Reconnect in the dashboard in either case.
  • Pricing. Browser Use charges nothing extra for Link. You pay the merchant through Link as usual.

Troubleshooting