Complete guide to testing payments across different countries
This guide covers testing FiatRails payments in sandbox mode across Kenya, Ghana, Tanzania, and Nigeria. Use the provided test credentials and phone numbers to simulate real transactions without actual money movement.
Login to your sandbox at partners.fiatrails.com and get your API key from the dashboard.
Select a country and use the corresponding test phone numbers and currency.
Initiate a payment using the test phone number. The STK push will be simulated.
Monitor transaction status using the status endpoint.
Convert tokens back to mobile money using test disbursement numbers.
Mobile Money: M-Pesa Safaricom
| Type | Minimum | Maximum | Recommended Test |
|---|---|---|---|
| On-ramp | 1 KES | 100,000 KES | 1,000 KES |
| Off-ramp | 10 KES | 50,000 KES | 500 KES |
curl -X POST https://api.fiatrails.com/api/v1/onramp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "+254700000000",
"amountKES": 1000,
"merchantWallet": "0x742d35Cc6635C0532925a3b8D0C0F0E4C33a8cC7",
"currency": "KES"
}'
Mobile Money: MTN MoMo MTN Ghana
| Type | Minimum | Maximum | Recommended Test |
|---|---|---|---|
| On-ramp | 1 GHS | 10,000 GHS | 100 GHS |
| Off-ramp | 5 GHS | 5,000 GHS | 50 GHS |
curl -X POST https://api.fiatrails.com/api/v1/onramp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "+233200000000",
"amountKES": 100,
"merchantWallet": "0x742d35Cc6635C0532925a3b8D0C0F0E4C33a8cC7",
"currency": "GHS"
}'
Mobile Money: M-Pesa Vodacom
| Type | Minimum | Maximum | Recommended Test |
|---|---|---|---|
| On-ramp | 1 TZS | 200,000 TZS | 2,000 TZS |
| Off-ramp | 100 TZS | 100,000 TZS | 1,000 TZS |
Mobile Money: Airtel Money Airtel Nigeria
| Type | Minimum | Maximum | Recommended Test |
|---|---|---|---|
| On-ramp | 1 NGN | 500,000 NGN | 5,000 NGN |
| Off-ramp | 100 NGN | 250,000 NGN | 2,500 NGN |
Goal: Test successful mobile money to crypto conversion
Steps:
Goal: Test amount limit validation
Steps:
Goal: Test phone number validation
Steps:
Goal: Test payments across different countries
Steps:
Monitor your test transactions using the status endpoint:
curl -X GET "https://api.fiatrails.com/api/status?transactionId=YOUR_TX_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
| Status | Description | Next Action |
|---|---|---|
initiated |
STK push sent to customer | Wait for customer to enter PIN |
pending |
Customer entered PIN, processing | Wait for blockchain confirmation |
completed |
Payment successful, tokens minted | Tokens available in wallet |
failed |
Payment failed or cancelled | Check error details, retry if needed |
expired |
Customer didn't complete in time | Initiate new transaction |
Once you've completed testing, request production access from your sandbox dashboard.
Access Sandbox API Reference