curl https://api.kwugwo.africa/v1/checkouts/chk.VCvr.7K2qPmRtV9xLnQ8sD1cYwHfE/ussd \
-H "Authorization: Bearer $KWUGWO_SECRET_KEY"
const providers = await fetch(
`https://api.kwugwo.africa/v1/checkouts/${checkoutId}/${mediumId}`,
{ headers: { Authorization: `Bearer ${process.env.KWUGWO_SECRET_KEY}` } }
).then(r => r.json());
<?php
$url = "https://api.kwugwo.africa/v1/checkouts/{$checkoutId}/{$mediumId}";
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('KWUGWO_SECRET_KEY')],
]);
$providers = json_decode(curl_exec($ch), true);
curl_close($ch);
import os, requests
providers = requests.get(
f"https://api.kwugwo.africa/v1/checkouts/{checkout_id}/{medium_id}",
headers={"Authorization": f"Bearer {os.environ['KWUGWO_SECRET_KEY']}"},
).json()
url := fmt.Sprintf("https://api.kwugwo.africa/v1/checkouts/%s/%s", checkoutId, mediumId)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KWUGWO_SECRET_KEY"))
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
{
"id": "ussd",
"name": "enum.ugwo.medium.ussd",
"providers": {
"gtb": { "id": "gtb", "name": "Guaranty Trust Bank" },
"access": { "id": "access", "name": "Access Bank" },
"ecobank": { "id": "ecobank", "name": "Ecobank Nigeria" },
"fidelity": { "id": "fidelity", "name": "Fidelity Bank" },
"fbn": { "id": "fbn", "name": "First Bank of Nigeria" }
}
}
{
"id": "bank_transfer",
"name": "enum.ugwo.medium.bank_transfer",
"providers": []
}
{
"code": 404,
"message": "nzube.checkout.error.not_found"
}
Checkouts
Get medium providers
The banks or wallets a customer can pick for a medium on this checkout.
GET
/
v1
/
checkouts
/
{checkoutId}
/
{mediumId}
curl https://api.kwugwo.africa/v1/checkouts/chk.VCvr.7K2qPmRtV9xLnQ8sD1cYwHfE/ussd \
-H "Authorization: Bearer $KWUGWO_SECRET_KEY"
const providers = await fetch(
`https://api.kwugwo.africa/v1/checkouts/${checkoutId}/${mediumId}`,
{ headers: { Authorization: `Bearer ${process.env.KWUGWO_SECRET_KEY}` } }
).then(r => r.json());
<?php
$url = "https://api.kwugwo.africa/v1/checkouts/{$checkoutId}/{$mediumId}";
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('KWUGWO_SECRET_KEY')],
]);
$providers = json_decode(curl_exec($ch), true);
curl_close($ch);
import os, requests
providers = requests.get(
f"https://api.kwugwo.africa/v1/checkouts/{checkout_id}/{medium_id}",
headers={"Authorization": f"Bearer {os.environ['KWUGWO_SECRET_KEY']}"},
).json()
url := fmt.Sprintf("https://api.kwugwo.africa/v1/checkouts/%s/%s", checkoutId, mediumId)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KWUGWO_SECRET_KEY"))
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
{
"id": "ussd",
"name": "enum.ugwo.medium.ussd",
"providers": {
"gtb": { "id": "gtb", "name": "Guaranty Trust Bank" },
"access": { "id": "access", "name": "Access Bank" },
"ecobank": { "id": "ecobank", "name": "Ecobank Nigeria" },
"fidelity": { "id": "fidelity", "name": "Fidelity Bank" },
"fbn": { "id": "fbn", "name": "First Bank of Nigeria" }
}
}
{
"id": "bank_transfer",
"name": "enum.ugwo.medium.bank_transfer",
"providers": []
}
{
"code": 404,
"message": "nzube.checkout.error.not_found"
}
Returns the providers (banks or wallets) your connected PSPs can charge
through for this checkout and medium. Use it to build the bank picker
for
ussd and pay_with_bank: send the chosen key as
medium_params.provider when you charge the ugwo.
This is the authoritative list of
provider codes you can send. The
bank code table is everything the API
recognises; this endpoint is the subset your PSPs can actually charge
for this checkout. Cache it for a few minutes rather than calling it
on every page load.Path parameters
string
required
An active checkout,
chk.XXXX.YYYY.... Usually the ugwo’s
checkout.uid.string
required
bank_transfer, ussd, pay_with_bank or mobile_money.Response
string
The medium you asked for.
string
A message key for the medium’s name, e.g.
enum.ugwo.medium.ussd.
"" if no PSP on this checkout supports the medium. Use your own
labels for display.object | array
Supported providers, keyed by provider code (the value to send as
provider). An empty array [] for mediums that take no provider,
such as bank_transfer, or when no PSP supports the medium.curl https://api.kwugwo.africa/v1/checkouts/chk.VCvr.7K2qPmRtV9xLnQ8sD1cYwHfE/ussd \
-H "Authorization: Bearer $KWUGWO_SECRET_KEY"
const providers = await fetch(
`https://api.kwugwo.africa/v1/checkouts/${checkoutId}/${mediumId}`,
{ headers: { Authorization: `Bearer ${process.env.KWUGWO_SECRET_KEY}` } }
).then(r => r.json());
<?php
$url = "https://api.kwugwo.africa/v1/checkouts/{$checkoutId}/{$mediumId}";
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('KWUGWO_SECRET_KEY')],
]);
$providers = json_decode(curl_exec($ch), true);
curl_close($ch);
import os, requests
providers = requests.get(
f"https://api.kwugwo.africa/v1/checkouts/{checkout_id}/{medium_id}",
headers={"Authorization": f"Bearer {os.environ['KWUGWO_SECRET_KEY']}"},
).json()
url := fmt.Sprintf("https://api.kwugwo.africa/v1/checkouts/%s/%s", checkoutId, mediumId)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KWUGWO_SECRET_KEY"))
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
{
"id": "ussd",
"name": "enum.ugwo.medium.ussd",
"providers": {
"gtb": { "id": "gtb", "name": "Guaranty Trust Bank" },
"access": { "id": "access", "name": "Access Bank" },
"ecobank": { "id": "ecobank", "name": "Ecobank Nigeria" },
"fidelity": { "id": "fidelity", "name": "Fidelity Bank" },
"fbn": { "id": "fbn", "name": "First Bank of Nigeria" }
}
}
{
"id": "bank_transfer",
"name": "enum.ugwo.medium.bank_transfer",
"providers": []
}
{
"code": 404,
"message": "nzube.checkout.error.not_found"
}