1. Transaction Initiation
Creating an onramp transaction with rate locking.2. Fiat Payment Collection
Mobile Money Payment
Available Countries: All supported countries Networks: M-PESA, MTN Money, Airtel Money, Orange MoneyBank Checkout Payment
Fiat Wallet Deduction
3. Crypto Delivery
Lightning Network Delivery
EVM Chain Delivery
Supported Networks: Ethereum, Polygon, Arbitrum, Base, Optimism Tokens: USDT, USDC, DAITRON Network Delivery
Tokens: USDT (TRC20)Fiat Wallet Credit (No Crypto Wallet)
4. Webhook Notification
Transaction Statuses
| Status | Description |
|---|---|
PENDING | Awaiting fiat payment |
PENDING_PROVIDER | Payment initiated with provider |
CRYPTO_PENDING | Fiat confirmed, crypto transfer in progress |
PROCESSING | Blockchain transaction submitted |
SUCCESS | Crypto delivered successfully |
FAILED | Transaction failed (fiat refunded to wallet) |
TIMEOUT | Payment not confirmed within 24 hours |
Key Features
Rate Locking
- Exchange rate locked at transaction creation
- Valid for 30 minutes
- Auto-refreshed upon payment confirmation
Flexible Delivery
- Has Crypto Wallet: Crypto delivered to user’s address
- No Crypto Wallet: Fiat credited at crypto rate
Safety Mechanisms
- Failed crypto transfers automatically refund to fiat wallet
- Up to 3 retry attempts for blockchain transactions
- Balance never lost
Error Handling
Insufficient Fiat Wallet Balance
Invalid Crypto Address
Crypto Transfer Failed (Auto-Refund)
Best Practices
- Pre-Check Rates: Use
/rates/onramp-ratebefore creating transaction - Validate Addresses: Verify address format matches network
- Handle Callbacks: Implement webhook endpoint with HMAC verification
- Monitor Status: Poll status endpoint and display transaction hash to users