Integrate cross-border payments in 5 minutes
FiatRails enables seamless fiat-to-crypto and crypto-to-fiat conversions across Africa using mobile money. Our API supports real-time payments in multiple countries with smart contract settlement on FUJI testnet.
Sign up at partners.fiatrails.com to get your sandbox API key instantly.
Use our SDKs for faster integration or make direct HTTP requests.
Test an on-ramp transaction in sandbox mode.
Convert mobile money to crypto tokens with a simple API call:
curl -X POST https://api.fiatrails.com/v1/onramp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "+254712345678",
"amountKES": 1000,
"merchantWallet": "0x742d35Cc6635C0532925a3b8D0C0F0E4C33a8cC7",
"currency": "KES"
}'
Convert crypto tokens back to mobile money:
curl -X POST https://api.fiatrails.com/offramp/initiate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userWallet": "0x742d35Cc6635C0532925a3b8D0C0F0E4C33a8cC7",
"amount": "1000",
"currency": "KES",
"phoneNumber": "+254712345678",
"disbursementMethod": "MPESA"
}'
Monitor your transactions in real-time:
curl -X GET https://api.fiatrails.com/api/status?transactionId=YOUR_TX_ID \
-H "Authorization: Bearer YOUR_API_KEY"
All API requests require authentication using your API key in the Authorization header:
Authorization: Bearer sandbox_YOUR_API_KEY_HERE
Use these test credentials in sandbox mode:
+254700000000+254711111111
Use any amount between 1-100,000 KES
+233200000000+233244444444
Use any amount between 1-10,000 GHS
+255700000000+255788888888
Use any amount between 1-200,000 TZS
+234800000000+234900000000
Use any amount between 1-500,000 NGN
https://api.fiatrails.com
For testing and development
FUJI TestnetComing with MainNet
Real transactions with live money
MainNet Soonconst fiatRails = require('@fiatrails/sdk');
const client = new fiatRails({
apiKey: 'sandbox_your_api_key',
environment: 'sandbox'
});
// On-ramp example
const onramp = await client.onramp.create({
phoneNumber: '+254712345678',
amountKES: 1000,
merchantWallet: '0x742d35Cc6635C0532925a3b8D0C0F0E4C33a8cC7'
});
console.log('Transaction ID:', onramp.transactionId);
import fiatrails
client = fiatrails.Client(
api_key='sandbox_your_api_key',
environment='sandbox'
)
# On-ramp example
onramp = client.onramp.create(
phone_number='+254712345678',
amount_kes=1000,
merchant_wallet='0x742d35Cc6635C0532925a3b8D0C0F0E4C33a8cC7'
)
print(f'Transaction ID: {onramp.transaction_id}')