Skip to main content
Tanda has one base URL for both environments:
Your keys decide the environment. A token minted with sandbox keys works in sandbox; a token minted with production keys moves real money.
Simulate webhook is the one endpoint with a different path: /api/sandbox/b2b/utilities/simulate-webhook.
Set both webhook URLs in the dashboard under Webhooks. Get user returns them as sandboxWebhookUrl and webhookUrl.

Rules for both environments

  • Unique externalReference. Use a new value for every new transaction. If a request times out and you don’t know whether it arrived, resend it with the same value: Tanda rejects a reused reference with 409 DUPLICATE_EXTERNAL_REFERENCE, so you can’t charge or pay twice.
  • Only successful means money moved. pending means the customer or network hasn’t finished. Don’t release value until you see successful.
  • Confirm before you fulfil. For anything you can’t undo, check the transaction with Get transaction after the webhook.
  • Keep keys apart. Don’t use production keys in tests, or test with real customers’ details.

Going live

1

Test success and failure in sandbox

Run every method you’ll use, collections and payouts, through both outcomes using the sandbox test values.
2

Verify webhook signatures

Reject any webhook that doesn’t carry your secret. See Verify webhooks.
3

Set your production webhook URL

Make sure it’s reachable over HTTPS and returns 2xx quickly.
4

Swap your keys

Replace the sandbox public key and API key with production ones. The URL doesn’t change.