curl -X POST "https://api.tabsglobal.co/v1/fx/quotes" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"currency": "USD",
"foreignAmount": 5000
}'
const response = await fetch("https://api.tabsglobal.co/v1/fx/quotes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.TABS_SECRET_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
currency: "USD",
foreignAmount: 5000,
}),
});
const quote = await response.json();
console.log(quote);
import requests
response = requests.post(
"https://api.tabsglobal.co/v1/fx/quotes",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={"currency": "USD", "foreignAmount": 5000},
)
print(response.json())
{
"quoteId": "quote_7e2a9b1c-4d3f-4e5a-8b2c-1d0f3a4b5c6d",
"currency": "USD",
"direction": "NGN_TO_FOREIGN",
"foreignAmountMinor": "500000",
"rate": 1625.50,
"transferFeeMinor": "250000",
"ngnAmountMinor": "812750000",
"totalDebitMinor": "813000000",
"expiresAt": "2026-09-21T03:00:00.000Z"
}
Foreign Exchange (FX) API
Request Guaranteed FX Quote
Lock in an institutional exchange rate for a foreign currency amount with a 60-second validity countdown.
POST
/
v1
/
fx
/
quotes
curl -X POST "https://api.tabsglobal.co/v1/fx/quotes" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"currency": "USD",
"foreignAmount": 5000
}'
const response = await fetch("https://api.tabsglobal.co/v1/fx/quotes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.TABS_SECRET_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
currency: "USD",
foreignAmount: 5000,
}),
});
const quote = await response.json();
console.log(quote);
import requests
response = requests.post(
"https://api.tabsglobal.co/v1/fx/quotes",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={"currency": "USD", "foreignAmount": 5000},
)
print(response.json())
{
"quoteId": "quote_7e2a9b1c-4d3f-4e5a-8b2c-1d0f3a4b5c6d",
"currency": "USD",
"direction": "NGN_TO_FOREIGN",
"foreignAmountMinor": "500000",
"rate": 1625.50,
"transferFeeMinor": "250000",
"ngnAmountMinor": "812750000",
"totalDebitMinor": "813000000",
"expiresAt": "2026-09-21T03:00:00.000Z"
}
Locks in an exchange rate for a specified foreign amount. Returns a quote with amounts in minor units that can be passed to payouts before expiration.
Scopes required
fx:write or *
Headers
string
required
Bearer API secret key formatted as
Bearer sk_live_... or Bearer sk_test_....Body
string
required
Foreign payout currency (
USD, GBP, EUR).number
required
Amount in foreign currency major units (e.g.
5000 for 5,000 USD).Response
string
Unique quote identifier.
string
Currency quoted.
string
Quote direction (
NGN_TO_FOREIGN).string
Target foreign currency amount in minor units as a string.
number
Locked exchange rate.
string
Corridor transfer fee in NGN minor units.
string
Calculated total in Nigerian Naira (NGN) minor units.
string
Total NGN amount to debit (amount + fee) in minor units.
string
ISO timestamp when the 60-second rate lock expires.
curl -X POST "https://api.tabsglobal.co/v1/fx/quotes" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"currency": "USD",
"foreignAmount": 5000
}'
const response = await fetch("https://api.tabsglobal.co/v1/fx/quotes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.TABS_SECRET_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
currency: "USD",
foreignAmount: 5000,
}),
});
const quote = await response.json();
console.log(quote);
import requests
response = requests.post(
"https://api.tabsglobal.co/v1/fx/quotes",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={"currency": "USD", "foreignAmount": 5000},
)
print(response.json())
{
"quoteId": "quote_7e2a9b1c-4d3f-4e5a-8b2c-1d0f3a4b5c6d",
"currency": "USD",
"direction": "NGN_TO_FOREIGN",
"foreignAmountMinor": "500000",
"rate": 1625.50,
"transferFeeMinor": "250000",
"ngnAmountMinor": "812750000",
"totalDebitMinor": "813000000",
"expiresAt": "2026-09-21T03:00:00.000Z"
}
