Skip to main content
If your integration works in sandbox, it works in production. Going live is four steps, not a migration.

The checklist

  1. Subscribe. In the dashboard or with agent-cards companies subscribe. The subscription is what unlocks production.
  2. Create production credentials. A production client_id and client_secret from Settings → Developers → Credentials. Nothing else in your code changes; the base URL stays api.agentcard.sh.
  3. Point webhooks at production. Create a production webhook endpoint and verify signatures against its own secret. Sandbox and production endpoints are separate.
  4. Run the loop once with real money. Connect a real user, add a real card, make a small real purchase. Watch the same webhooks you saw in sandbox arrive with livemode: true.

The gate fires at use time

You can create production credentials before subscribing, and they will authenticate. What they can’t do is act: calls that create wallet links, add cards, or issue cards fail with subscription_required (HTTP 402) until the subscription is active. If production suddenly returns 402 where sandbox worked, this is why.

What changes with real money

  • Identity verification is real: documents and a face check, no simulate endpoint.
  • Card eligibility is enforced for real. Almost any credit or debit card works; the known exception today is Chase.
  • Balance funding uses real payment providers, including ones sandbox can’t simulate.
  • The one-time code is never 111111 again.
Next: Errors and troubleshooting