List countries
curl --request GET \
--url https://sandbox-api.sakawave.example/countriesconst options = {method: 'GET'};
fetch('https://sandbox-api.sakawave.example/countries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox-api.sakawave.example/countries"
response = requests.get(url)
print(response.text){
"countries": [
{
"code": "NG",
"code3": "NGA",
"name": "Nigeria",
"dialCode": "+234",
"flag": "🇳🇬"
}
],
"count": 1
}{
"statusCode": 500,
"code": "internal_server_error",
"message": "An unexpected error occurred."
}Currencies and countries
List countries
Every country Sakawave will onboard, alphabetically by name. This is the source for any jurisdiction or address.country value you send. Jurisdictions the platform will not serve are absent from the list.
GET
/
countries
List countries
curl --request GET \
--url https://sandbox-api.sakawave.example/countriesconst options = {method: 'GET'};
fetch('https://sandbox-api.sakawave.example/countries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox-api.sakawave.example/countries"
response = requests.get(url)
print(response.text){
"countries": [
{
"code": "NG",
"code3": "NGA",
"name": "Nigeria",
"dialCode": "+234",
"flag": "🇳🇬"
}
],
"count": 1
}{
"statusCode": 500,
"code": "internal_server_error",
"message": "An unexpected error occurred."
}This endpoint is unversioned and unauthenticated. It is not part of the
/v1 Business API and takes no Authorization header.
The response is cacheable for a day, and you should cache it. The list changes only when the allowlist is edited and the service is redeployed.
A country absent from this list is not an oversight — it is a jurisdiction Sakawave will not onboard. Validate a customer’s
jurisdiction against this list before you send it, rather than discovering the refusal at creation time.