curl --request POST \
--url https://api.onswitch.xyz/offramp/initiate \
--header 'Content-Type: application/json' \
--header 'x-service-key: <api-key>' \
--data '
{
"amount": 100,
"wallet": "68d4f2a91eb37c15b8e3a4f7",
"country": "NG",
"currency": "NGN",
"asset": "base:usdc",
"beneficiary": {
"holder_type": "INDIVIDUAL",
"holder_name": "Chinonso Adeyemi",
"account_number": "3048915627",
"bank_code": "058"
},
"narration": "Bank transfer to Chinonso Adeyemi",
"exact_output": false,
"callback_url": "https://your-app.com/webhook",
"reference": "a3f9c2e1-7b4d-4a8e-9c62-1d8f4e6b2a90",
"channel": "BANK",
"reason": "PERSONAL_TRANSFER",
"developer_fee": 0.5,
"developer_recipient": "0x8F3aC91d2B741E59f064E9053a4d2E8F1c0b6D93a",
"refund_address": "0x8F3aC91d2B741E59f064E9053a4d2E8F1c0b6D93a",
"static": false
}
'{
"success": true,
"message": "Offramp initiated successfully",
"timestamp": "2026-04-23T14:35:04.264Z",
"data": {
"status": "AWAITING_DEPOSIT",
"type": "OFFRAMP",
"reference": "61f9a35a-e535-4f04-ba50-3058b4c856c4",
"beneficiary": "69e8e664b9fea9f9e6dc3cbb",
"rate": 1380.845,
"developer_fee": {
"amount": 0,
"amount_usd": 0,
"currency": "USDC",
"network": "BASE"
},
"source": {
"amount": 10,
"amount_usd": 10,
"network": "BASE",
"currency": "USDC"
},
"destination": {
"amount": 13808.45,
"amount_usd": 10,
"network": "FIAT",
"currency": "NGN"
},
"deposit": {
"amount": 10,
"address": "0x3131b6f6a32751C9d99C1710e357A6C4297d17Bc",
"asset": "base:usdc",
"note": [
"Kindly send the exact amount to the wallet address to complete the transaction.",
"This wallet address is for one-time use only and has a 30 minutes expiry window."
]
},
"meta": {},
"created_at": "2026-04-23T14:35:02.448Z",
"updated_at": "2026-04-23T14:35:02.448Z"
}
}Initiate a stablecoin to local currency transaction.
curl --request POST \
--url https://api.onswitch.xyz/offramp/initiate \
--header 'Content-Type: application/json' \
--header 'x-service-key: <api-key>' \
--data '
{
"amount": 100,
"wallet": "68d4f2a91eb37c15b8e3a4f7",
"country": "NG",
"currency": "NGN",
"asset": "base:usdc",
"beneficiary": {
"holder_type": "INDIVIDUAL",
"holder_name": "Chinonso Adeyemi",
"account_number": "3048915627",
"bank_code": "058"
},
"narration": "Bank transfer to Chinonso Adeyemi",
"exact_output": false,
"callback_url": "https://your-app.com/webhook",
"reference": "a3f9c2e1-7b4d-4a8e-9c62-1d8f4e6b2a90",
"channel": "BANK",
"reason": "PERSONAL_TRANSFER",
"developer_fee": 0.5,
"developer_recipient": "0x8F3aC91d2B741E59f064E9053a4d2E8F1c0b6D93a",
"refund_address": "0x8F3aC91d2B741E59f064E9053a4d2E8F1c0b6D93a",
"static": false
}
'{
"success": true,
"message": "Offramp initiated successfully",
"timestamp": "2026-04-23T14:35:04.264Z",
"data": {
"status": "AWAITING_DEPOSIT",
"type": "OFFRAMP",
"reference": "61f9a35a-e535-4f04-ba50-3058b4c856c4",
"beneficiary": "69e8e664b9fea9f9e6dc3cbb",
"rate": 1380.845,
"developer_fee": {
"amount": 0,
"amount_usd": 0,
"currency": "USDC",
"network": "BASE"
},
"source": {
"amount": 10,
"amount_usd": 10,
"network": "BASE",
"currency": "USDC"
},
"destination": {
"amount": 13808.45,
"amount_usd": 10,
"network": "FIAT",
"currency": "NGN"
},
"deposit": {
"amount": 10,
"address": "0x3131b6f6a32751C9d99C1710e357A6C4297d17Bc",
"asset": "base:usdc",
"note": [
"Kindly send the exact amount to the wallet address to complete the transaction.",
"This wallet address is for one-time use only and has a 30 minutes expiry window."
]
},
"meta": {},
"created_at": "2026-04-23T14:35:02.448Z",
"updated_at": "2026-04-23T14:35:02.448Z"
}
}Documentation Index
Fetch the complete documentation index at: https://docs.onswitch.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Service key for API authentication
x >= 0AD, AE, AF, AG, AI, AL, AM, EU, AN, AO, AQ, AR, AS, AT, AU, AW, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BM, BN, BO, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, GZ, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW base:usdc, solana:usdc, solana:usdt, ethereum:usdc, ethereum:usdt, polygon:usdc, polygon:usdt, bsc:usdc, bsc:usdt, arbitrum:usdc, optimism:usdc, gnosis:usdc, gnosis:usdt, arbitrum:usdt, avalanche:usdc, monad:usdc, optimism:usdt, monad:usdt, plasma:usdt, avalanche:usdt, tron:usdt, linea:usdt, mantle:usdt, hyperevm:usdt, berachain:usdt, linea:usdc, berachain:usdc, sonic:usdc, base:cngn, bsc:cngn The recipient of the offramp transaction.
Hide child attributes
Unique identifier for the beneficiary
^[a-f0-9]{24}$Wallet to send the offramp amount from
Currency code (optional).
AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, FOK, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, IMP, INR, IQD, IRR, ISK, JEP, JMD, JOD, JPY, KES, KGS, KHR, KID, KMF, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STN, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TVD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VES, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, YER, ZAR, ZMW, ZWL Bank transfer sender name. Only applicable for Nigeria bank transfers.
Transfer narration or memo; appears on the recipient's statement.
Webhook URL to receive transaction status updates.
Optional transfer channel. If not specified, defaults to the country's default channel.
BANK, BLOCKCHAIN, SWIFT, SEPA, SEPA_EUR, WIRE, ACH, DOMESTIC_GBP, MOBILEMONEY, ALIPAY, WECHATPAY Purpose of the payment.
ADVERTISING_EXPENSES, ADVISORY_FEES, BUSINESS_INSURANCE, COMPUTER_SERVICES, CONSTRUCTION_EXPENSES, DELIVERY_FEES, EDUCATION, EXPORTED_GOODS, FAMILY_SUPPORT, FUND_INVESTMENT, GIFT_AND_DONATION, HOTEL_ACCOMMODATION, INFLUENCER_PAYMENT, INSURANCE_CLAIMS, LIBERALIZED_REMITTANCE, LOAN_PAYMENT, MAINTENANCE_EXPENSES, MEDICAL_TREATMENT, OFFICE_EXPENSES, OTHER, OTHER_FEES, PERSONAL_TRANSFER, PROPERTY_PURCHASE, PROPERTY_RENTAL, REWARD_PAYMENT, ROYALTY_FEES, SALARY_PAYMENT, SERVICE_CHARGES, SHARES_INVESTMENT, SMALL_VALUE_REMITTANCE, TAX_PAYMENT, TRAVEL, TRANSPORTATION_FEES, UTILITY_BILLS Optional developer fee percentage (0-100)
0 <= x <= 100Optional wallet address to receive developer fee.
Optional wallet address to receive refunds for failed/expired deposits.
Optional. When true, deposit address will always be the same for the same beneficiary.
Successfully initiated offramp transaction
Hide child attributes
AWAITING_DEPOSIT, PROCESSING, COMPLETED, FAILED OFFRAMP, ONRAMP, SWAP, WALLET