Overview
Bread’s offramp functionality allows you to seamlessly convert cryptocurrency assets to fiat currency and transfer the funds directly to bank accounts. Whether you need automatic conversions or manual control, Bread provides flexible options to meet your needs.
Key Features
Instant Conversion : Convert crypto to fiat at competitive exchange rates
Direct Bank Transfer : Funds are sent directly to beneficiary bank accounts
Automatic Offramp : Set up wallets to automatically convert incoming deposits
Multi-Asset Support : Support for USDC, USDT, and CNGN across multiple blockchains
Real-time Rates : Get live exchange rates before executing transactions
Supported Assets
Offramp supports USDC, USDT, and CNGN across multiple blockchains. For list of supported assets and their blockchain networks, Check here .
Automatic Offramp
Create wallets that automatically convert incoming crypto to fiat:
curl -X POST "https://api.bread.africa/wallet" \
-H "x-service-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"offramp": true,
"beneficiary_id": "68bf2eba196a18d7bd166184"
}'
How it works:
Any crypto sent to the wallet is automatically detected
The crypto is immediately converted to fiat at current rate
Funds are transferred to the linked beneficiary’s bank account
You receive notifications about the completed transaction
Manual Offramp
For manual control, you can execute offramps on-demand:
Get Exchange Rate
Check the current offramp rate for your target currency: curl -X GET "https://api.bread.africa/rate/offramp?currency=NGN" \
-H "x-service-key: YOUR_API_KEY"
Response: {
"success" : true ,
"status" : 200 ,
"message" : "Offramp rate fetched successfully" ,
"data" : {
"rate" : 1515
}
}
Get Offramp Quote
Get a detailed quote for your offramp transaction: curl -X POST "https://api.bread.africa/quote/offramp" \
-H "x-service-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 1000,
"currency": "NGN",
"asset": "base:usdc"
}'
Response: {
"success" : true ,
"status" : 200 ,
"message" : "Offramp quote fetched successfully" ,
"data" : {
"type" : "offramp" ,
"fee" : 0 ,
"expiry" : "2025-09-09T23:00:05.691Z" ,
"currency" : "NGN" ,
"rate" : 1515 ,
"input_amount" : 1000 ,
"output_amount" : 1515000
}
}
Execute Offramp
Execute the offramp transaction: curl -X POST "https://api.bread.africa/offramp" \
-H "x-service-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"wallet_id": "68bb7d8399900e253084e6f9",
"amount": 100,
"beneficiary_id": "68bf2eba196a18d7bd166184",
"asset": "base:usdc"
}'
Response: {
"success" : true ,
"status" : 200 ,
"message" : "Offramp initiated successfully" ,
"data" : {
"reference" : "n4ri27oeopl9m5tuzbpe03cmvq4d1j80"
}
}
Prerequisites
Before using offramp functionality, you need:
1. Identity Verification
Create an identity for KYC compliance:
curl -X POST "https://api.bread.africa/identity" \
-H "x-service-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "BVN",
"name": "John Doe",
"details": {
"bvn": "1234567890",
"dob": "01-05-1990"
}
}'
2. Beneficiary Account
Create a beneficiary to receive offramp payouts:
curl -X POST "https://api.bread.africa/beneficiary" \
-H "x-service-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"currency": "NGN",
"identity_id": "68bf2de7196a18d7bd165ffb",
"details": {
"bank_code": "100004",
"account_number": "1234567890"
}
}'
Use the /lookup
endpoint to verify bank account details before creating a
beneficiary.
More currencies are being added regularly. Contact our team if you need
support for a specific currency.
Integration
const axios = require ( 'axios' );
class BreadOfframp {
constructor ( apiKey ) {
this . apiKey = apiKey ;
this . baseURL = 'https://api.bread.africa' ;
}
async getOfframpRate ( currency = 'NGN' ) {
const response = await axios . get ( ` ${ this . baseURL } /rate/offramp` , {
headers: { 'x-service-key' : this . apiKey },
params: { currency }
});
return response . data ;
}
async getOfframpQuote ( amount , currency , asset ) {
const response = await axios . post ( ` ${ this . baseURL } /quote/offramp` , {
amount ,
currency ,
asset
}, {
headers: {
'x-service-key' : this . apiKey ,
'Content-Type' : 'application/json'
}
});
return response . data ;
}
async executeOfframp ( walletId , amount , beneficiaryId , asset ) {
const response = await axios . post ( ` ${ this . baseURL } /offramp` , {
wallet_id: walletId ,
amount ,
beneficiary_id: beneficiaryId ,
asset
}, {
headers: {
'x-service-key' : this . apiKey ,
'Content-Type' : 'application/json'
}
});
return response . data ;
}
}
// Usage
const bread = new BreadOfframp ( 'your-api-key' );
// Get current rate
const rate = await bread . getOfframpRate ( 'NGN' );
console . log ( 'Current NGN rate:' , rate . data . rate );
// Execute offramp
const result = await bread . executeOfframp (
'68bb7d8399900e253084e6f9' ,
100 ,
'68bf2eba196a18d7bd166184' ,
'base:usdc'
);
console . log ( 'Offramp reference:' , result . data . reference );
import requests
class BreadOfframp :
def __init__ ( self , api_key ):
self .api_key = api_key
self .base_url = 'https://api.bread.africa'
self .headers = { 'x-service-key' : api_key}
def get_offramp_rate ( self , currency = 'NGN' ):
response = requests.get(
f ' { self .base_url } /rate/offramp' ,
headers = self .headers,
params = { 'currency' : currency}
)
return response.json()
def get_offramp_quote ( self , amount , currency , asset ):
response = requests.post(
f ' { self .base_url } /quote/offramp' ,
headers = { ** self .headers, 'Content-Type' : 'application/json' },
json = {
'amount' : amount,
'currency' : currency,
'asset' : asset
}
)
return response.json()
def execute_offramp ( self , wallet_id , amount , beneficiary_id , asset ):
response = requests.post(
f ' { self .base_url } /offramp' ,
headers = { ** self .headers, 'Content-Type' : 'application/json' },
json = {
'wallet_id' : wallet_id,
'amount' : amount,
'beneficiary_id' : beneficiary_id,
'asset' : asset
}
)
return response.json()
# Usage
bread = BreadOfframp( 'your-api-key' )
# Get current rate
rate = bread.get_offramp_rate( 'NGN' )
print ( f "Current NGN rate: { rate[ 'data' ][ 'rate' ] } " )
# Execute offramp
result = bread.execute_offramp(
'68bb7d8399900e253084e6f9' ,
100 ,
'68bf2eba196a18d7bd166184' ,
'base:usdc'
)
print ( f "Offramp reference: { result[ 'data' ][ 'reference' ] } " )
Need Help?
Our team is here to help you succeed with offramp integration: