Base URL
All API requests — both test and live — use a single base URL:Test vs live mode
| Test mode | Live mode | |
|---|---|---|
| Blockchain | Testnet | Mainnet |
| Real funds | No | Yes |
| API key prefix | ora_test_ | ora_live_ |
| Onboarding required | No | Yes |
| Webhooks | Delivered normally | Delivered normally |
Switching modes
You can switch between test and live mode in two ways:- Dashboard — Toggle the mode switch in your Orafi Dashboard.
- API — Call the Mode endpoint programmatically.
Switching to live mode requires completed onboarding and business verification.
Local webhook testing
Webhooks are delivered to publicly accessible HTTPS URLs. For local development, use a tunneling tool to expose your local server:Start a tunnel
Use a tool like ngrok or localtunnel to create a public URL that forwards to your local server.
Testing best practices
Use idempotent transaction references
Use idempotent transaction references
Always generate a unique
txRef for each payment. If you retry with the same txRef, Orafi returns the original payment instead of creating a duplicate.Simulate different scenarios
Simulate different scenarios
Create payments, trigger refunds, and initiate payouts in test mode to cover your integration’s happy and error paths.
Verify webhook signatures
Verify webhook signatures
Every webhook payload is signed with your webhook secret. Always verify the signature before processing events — even in test mode.
Test webhook retries
Test webhook retries
If your endpoint returns a non-2xx status, Orafi retries delivery automatically. Make sure your handler is idempotent so duplicate deliveries don’t cause issues.
