Off-Ramp: Crypto → Fiat
Step-by-step guide to integrating crypto-to-fiat off-ramp transactions.
How it works
1. Your server calls POST /v1/offramp with user, account, and transaction details
2. IvoryPay returns a crypto wallet address and amount for the user to send to
3. The user sends crypto to the provided address
4. IvoryPay detects the deposit → webhook: offramp.cryptoPaymentReceived
5. IvoryPay converts crypto to fiat and initiates the payout
6. Payout completes → webhook: offramp.success (or offramp.failed)Mobile money support
Integration steps
1
2
Create the off-ramp transaction
curl -X POST https://ramp-api.ivorypay.io/api/v1/offramp \
-H "x-api-key: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"firstName": "Chidi",
"lastName": "Nwankwo",
"email": "chidi@example.com",
"phoneNumber": "+2348098765432",
"accountNumber": "0123456789",
"bankCode": "058",
"blockchain": "BSC_MAINNET",
"reference": "660e8400-e29b-41d4-a716-446655440001",
"token": "USDT",
"fiatCurrency": "NGN",
"fiatAmount": 100000
}'curl -X POST https://ramp-api.ivorypay.io/api/v1/offramp \
-H "x-api-key: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"firstName": "Chidi",
"lastName": "Nwankwo",
"email": "chidi@example.com",
"phoneNumber": "+256772882926",
"accountNumber": "256772882926",
"blockchain": "STARKNET_MAINNET",
"reference": "660e8410-f23c-41c4-a628-838625530891",
"token": "USDT",
"fiatCurrency": "UGX",
"cryptoAmount": 1.5,
"businessFeeInCrypto": 0.001
}'{
"statusCode": 200,
"success": true,
"message": "Off-ramp initiated successfully",
"data": {
"firstName": "Chidi",
"lastName": "Nwankwo",
"email": "chidi@example.com",
"refCode": "xyz789abc0",
"reference": "660e8400-e29b-41d4-a716-446655440001",
"transferDetails": {
"token": "USDT",
"blockchain": "BSC_MAINNET",
"amountPayable": 62.5,
"businessFee": 0,
"platformFee": 0.3,
"walletAddress": "0xIvoryPayDepositAddress...",
"createdAt": "2026-03-26T12:00:00.000Z",
"fiatAmount": 100000,
"expiresAt": "2026-03-26T13:00:00.000Z",
"sessionId": "session_abc123",
"duration": 3600
}
}
}Specifying amounts and fees
Scenario
Fields to send
Transaction lifecycle
Frequently asked questions
Last updated