Référence de l’API
Relevés
Les totaux de votre activité, ventilés en brut, frais et net, sans jamais mélanger les devises.
Relevé des encaissements réussis
GET/v1/reports/summary
Additionne les encaissements réussis de la période, par devise : nombre, brut, frais, net. La période porte sur la date de création des encaissements : from est inclus, to exclu, tous deux en UTC.
Paramètres
fromdate-heure, dans le requête- Début de période (UTC, ISO 8601, inclus). Absent : sans borne basse.
todate-heure, dans le requête- Fin de période (UTC, ISO 8601, exclue). Absent : sans borne haute.
Réponse
Code 200, avec les champs suivants.
dataliste de objetrequis- Une ligne par devise, CDF et USD séparés.
data[].currencychaînerequis- Devise de la ligne.
data[].countentierrequis- Nombre d'encaissements réussis.
data[].gross_minorentierrequis- Somme des montants bruts encaissés.
data[].fee_minorentierrequis- Somme des frais prélevés.
data[].net_minorentierrequis- Brut moins frais : le net dû au marchand.
Erreurs
401Authentification manquante ou invalide.422Paramètre invalide (validation_error).
Forme commune et conduite à tenir : les erreurs.
GET /v1/reports/summary
KEY="ak_sandbox"
SECRET="sk_sandbox_demo"
P="/v1/reports/summary"
TS=$(date +%s)
SIG=$(printf '%s' "$TS.GET.$P.." \
| openssl dgst -sha256 -hmac "$SECRET" | sed 's/^.*= //')
curl "https://sandbox.inopas.net$P?from=2026-09-01T00:00:00Z&to=2026-10-01T00:00:00Z" \
-H "X-Inopas-Key: $KEY" \
-H "X-Inopas-Timestamp: $TS" \
-H "X-Inopas-Signature: sha256=$SIG"import { createHmac } from "node:crypto";
const KEY = "ak_sandbox";
const SECRET = "sk_sandbox_demo";
const path = "/v1/reports/summary"; // signé sans la query string
const ts = String(Math.floor(Date.now() / 1000));
const sig = createHmac("sha256", SECRET)
.update(`${ts}.GET.${path}..`)
.digest("hex");
const res = await fetch(`https://sandbox.inopas.net${path}?from=2026-09-01T00:00:00Z&to=2026-10-01T00:00:00Z`, {
headers: {
"X-Inopas-Key": KEY,
"X-Inopas-Timestamp": ts,
"X-Inopas-Signature": `sha256=${sig}`,
},
});
console.log(res.status, await res.json());import hashlib, hmac, json, time, urllib.error, urllib.request
KEY = "ak_sandbox"
SECRET = b"sk_sandbox_demo"
path = "/v1/reports/summary" # signé sans la query string
body = b""
idem = ""
ts = str(int(time.time()))
sig = hmac.new(SECRET, f"{ts}.GET.{path}.{idem}.".encode() + body, hashlib.sha256).hexdigest()
entetes = {"X-Inopas-Key": KEY, "X-Inopas-Timestamp": ts, "X-Inopas-Signature": "sha256=" + sig}
req = urllib.request.Request("https://sandbox.inopas.net" + path + "?from=2026-09-01T00:00:00Z&to=2026-10-01T00:00:00Z", headers=entetes)
try:
with urllib.request.urlopen(req) as resp:
print(resp.status, json.load(resp))
except urllib.error.HTTPError as e:
print(e.code, json.load(e))Réponse 200
HTTP/2 200
{
"data": [
{
"currency": "CDF",
"count": 4,
"gross_minor": 10000000,
"fee_minor": 100000,
"net_minor": 9900000
}
]
}