curl --request GET \
--url https://api.example.com/balance \
--header 'ApiKey: <apikey>' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>'import requests
url = "https://api.example.com/balance"
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {ApiKey: '<apikey>', MerchantId: '<merchantid>', Environment: '<environment>'}
};
fetch('https://api.example.com/balance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/balance",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/balance"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/balance")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/balance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
response = http.request(request)
puts response.read_body{
"collectionAccount": [
{
"amount": 100,
"availableBalance": 100,
"currency": "XOF",
"date": "2020-10-15T12:16:26.128Z"
}
],
"transferAccount": [
{
"availableBalance": 100,
"reservedBalance": 100,
"currency": "XOF",
"date": "2020-10-15T12:16:26.128Z",
"amount": 100
}
],
"transferIrtAccount": [
{
"availableBalance": 100,
"reservedBalance": 100,
"currency": "XOF",
"date": "2020-10-15T12:16:26.128Z",
"amount": 100
}
],
"crossBorderAccount": [
{
"availableBalance": 100,
"reservedBalance": 100,
"currency": "XOF",
"date": "2020-10-15T12:16:26.128Z",
"amount": 100
}
]
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted"
],
"message": "An error occurred on our system. Please try again later."
}Check Merchant Balance
Returns a summary of a merchant accounts balances (collection, transfer, transfer irt and cross-border accounts).
Use the accountType filter to restrict the response to specific accounts; omit it to get them all.
curl --request GET \
--url https://api.example.com/balance \
--header 'ApiKey: <apikey>' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>'import requests
url = "https://api.example.com/balance"
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {ApiKey: '<apikey>', MerchantId: '<merchantid>', Environment: '<environment>'}
};
fetch('https://api.example.com/balance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/balance",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/balance"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/balance")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/balance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
response = http.request(request)
puts response.read_body{
"collectionAccount": [
{
"amount": 100,
"availableBalance": 100,
"currency": "XOF",
"date": "2020-10-15T12:16:26.128Z"
}
],
"transferAccount": [
{
"availableBalance": 100,
"reservedBalance": 100,
"currency": "XOF",
"date": "2020-10-15T12:16:26.128Z",
"amount": 100
}
],
"transferIrtAccount": [
{
"availableBalance": 100,
"reservedBalance": 100,
"currency": "XOF",
"date": "2020-10-15T12:16:26.128Z",
"amount": 100
}
],
"crossBorderAccount": [
{
"availableBalance": 100,
"reservedBalance": 100,
"currency": "XOF",
"date": "2020-10-15T12:16:26.128Z",
"amount": 100
}
]
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted"
],
"message": "An error occurred on our system. Please try again later."
}Headers
Your api key. To create a key, please get into our dashboard. If you don't have access to it, please reach the Support team.
Your merchant ID. This information is available in our dashboard. If you don't have access to it, please reach the Support team.
Allow you to choose between the sandbox mode to perform some tests or the live mode for real world transactions.
live, sandbox Query Parameters
Get balance at Datetime in UTC timezone. Follows the Datetime ISO.
"2020-10-15T12:16:26.128Z"
Three-letter ISO currency code.
"XOF"
Restrict the response to specific accounts. Repeat the parameter or pass a
comma-separated list, e.g. ?accountType=collection&accountType=cross-border or
?accountType=collection,cross-border. Omit it to get every account the merchant holds.
collection, transfer, transfer-irt, cross-border ["cross-border"]
Response
Collection account balance(s). Absent when the merchant holds no collection account, or when accountType excludes it.
Show child attributes
Show child attributes
Transfer account balance(s). Absent when the merchant holds no transfer account, or when accountType excludes it.
Show child attributes
Show child attributes
IRT Transfer account balance(s). Absent when the merchant holds no IRT transfer account, or when accountType excludes it.
Show child attributes
Show child attributes
Cross-border float balance(s) — the funds backing cross-border payouts.
Derived from the event-sourced cross-border account: availableBalance already excludes the float
reserved by transactions still in flight, which is reported separately as reservedBalance.
A currency whose balance has fallen back to zero is still returned, so a zero balance can be told
apart from a currency that was never funded.
Absent when the merchant holds no cross-border account, or when accountType excludes it.
Show child attributes
Show child attributes
