Discover transfer corridors
curl --request GET \
--url https://sandbox-api.sakawave.example/v1/transfer-corridors \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox-api.sakawave.example/v1/transfer-corridors', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox-api.sakawave.example/v1/transfer-corridors"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)[
{
"currency": {
"code": "KES",
"name": "Kenyan Shilling",
"symbol": "KSh",
"minorUnits": 2
},
"countries": [
"KE"
],
"route": {
"id": "01K2Z3AB4M5N6P7Q8RSTVWXYZA",
"name": "Kenya bank transfer",
"destinationCurrency": "KES",
"destinationCountry": "KE",
"scheme": "pesalink",
"paymentMethod": "bank-transfer",
"requiredFields": [
"bankCode",
"accountNumber"
],
"fieldDescriptors": [
{
"key": "bankCode",
"label": "Bank",
"type": "select",
"required": true,
"options": [
{
"value": "001",
"label": "Example Bank"
}
]
},
{
"key": "accountNumber",
"label": "Account number",
"type": "text",
"required": true,
"minLength": 6,
"maxLength": 20,
"placeholder": "0123456789"
}
],
"settlementTiming": "same_day",
"minimumAmount": "10000",
"maximumAmount": "100000000",
"limits": {
"minimumAmount": "10000",
"maximumAmount": "100000000"
},
"institutionDirectoryEnabled": true,
"countryRequired": true,
"isDefault": true
}
}
]{
"statusCode": 400,
"message": "Must be a valid identifier.",
"code": "validation_failed",
"errors": [
{
"message": "Must be a valid identifier.",
"field": "accountId",
"code": "custom",
"path": [
"accountId"
]
}
]
}{
"statusCode": 401,
"code": "INVALID_API_KEY",
"message": "Invalid or inactive API credentials."
}{
"statusCode": 404,
"code": "resource_not_found",
"message": "Resource not found."
}{
"statusCode": 409,
"code": "resource_conflict",
"message": "The request conflicts with the current resource state."
}{
"statusCode": 429,
"message": "Too many API requests. Try again later.",
"code": "api_key_rate_limit_exceeded",
"retryAfterSeconds": 17
}{
"statusCode": 500,
"code": "internal_server_error",
"message": "An unexpected error occurred."
}Currencies and countries
Discover transfer corridors
Returns active provider-neutral payout routes and their exact client field descriptors. Provider identity is never returned.
GET
/
v1
/
transfer-corridors
Discover transfer corridors
curl --request GET \
--url https://sandbox-api.sakawave.example/v1/transfer-corridors \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox-api.sakawave.example/v1/transfer-corridors', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox-api.sakawave.example/v1/transfer-corridors"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)[
{
"currency": {
"code": "KES",
"name": "Kenyan Shilling",
"symbol": "KSh",
"minorUnits": 2
},
"countries": [
"KE"
],
"route": {
"id": "01K2Z3AB4M5N6P7Q8RSTVWXYZA",
"name": "Kenya bank transfer",
"destinationCurrency": "KES",
"destinationCountry": "KE",
"scheme": "pesalink",
"paymentMethod": "bank-transfer",
"requiredFields": [
"bankCode",
"accountNumber"
],
"fieldDescriptors": [
{
"key": "bankCode",
"label": "Bank",
"type": "select",
"required": true,
"options": [
{
"value": "001",
"label": "Example Bank"
}
]
},
{
"key": "accountNumber",
"label": "Account number",
"type": "text",
"required": true,
"minLength": 6,
"maxLength": 20,
"placeholder": "0123456789"
}
],
"settlementTiming": "same_day",
"minimumAmount": "10000",
"maximumAmount": "100000000",
"limits": {
"minimumAmount": "10000",
"maximumAmount": "100000000"
},
"institutionDirectoryEnabled": true,
"countryRequired": true,
"isDefault": true
}
}
]{
"statusCode": 400,
"message": "Must be a valid identifier.",
"code": "validation_failed",
"errors": [
{
"message": "Must be a valid identifier.",
"field": "accountId",
"code": "custom",
"path": [
"accountId"
]
}
]
}{
"statusCode": 401,
"code": "INVALID_API_KEY",
"message": "Invalid or inactive API credentials."
}{
"statusCode": 404,
"code": "resource_not_found",
"message": "Resource not found."
}{
"statusCode": 409,
"code": "resource_conflict",
"message": "The request conflicts with the current resource state."
}{
"statusCode": 429,
"message": "Too many API requests. Try again later.",
"code": "api_key_rate_limit_exceeded",
"retryAfterSeconds": 17
}{
"statusCode": 500,
"code": "internal_server_error",
"message": "An unexpected error occurred."
}Prerequisites
Use a currencies and countries-capable business account and a valid API key.This operation is limited to 120 requests per minute per business and API key.
Authorizations
A secret API key, sent as Authorization: Bearer sk_test_… in sandbox or Bearer sk_live_… in live.
Query Parameters
Destination currency.
Available options:
NGN, USD, GBP, EUR, GHS, ZAR, UGX, CAD, MXN, AED, AUD, SGD, HKD, KES, TZS, BRL, CNY, XAF, PHP, USDC ISO 3166-1 alpha-2 destination country.
Required string length:
2Payout method.
Available options:
bank-transfer, momo-transfer