Simulate webhook is the one endpoint with a different path:
/api/sandbox/b2b/utilities/simulate-webhook.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 with409 DUPLICATE_EXTERNAL_REFERENCE, so you can’t charge or pay twice. - Only
successfulmeans money moved.pendingmeans the customer or network hasn’t finished. Don’t release value until you seesuccessful. - 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.

