Valsoria Pay Console →
Documentation

Démarrer

IntroductionDémarrageAuthentification

API

PaiementsPage de paiementDécaissementsRelevé de compteWebhooksRéférenceErreurs

Outils

Numéros de testSDK JavaScriptVersions

Relevé de compte

Ce qui répond à « d'où vient mon solde ? ». Ouverture, mouvements dans l'ordre avec un solde qui court, clôture — la forme d'un relevé bancaire, faite pour être versée dans une comptabilité.

GET /v1-statements?from=2026-09-01&to=2026-09-30
Authorization: Bearer vp_sk_test_…
{
  "object": "statement",
  "from": "2026-09-01",
  "to": "2026-09-30",
  "currency": "XOF",
  "opening_balance": 100000,
  "closing_balance": 138000,
  "total_in": 50000,
  "total_out": 12000,
  "data": [
    { "object": "statement_line", "date": "2026-09-02T14:21:03Z",
      "description": "Encaissement confirmé",
      "reference": "txn_6INMt2lIL1Pv_y6RgqZvag",
      "in": 50000, "out": 0, "balance": 150000 },
    { "object": "statement_line", "date": "2026-09-04T09:12:44Z",
      "description": "Remboursement", "reference": null,
      "in": 0, "out": 12000, "balance": 138000 }
  ],
  "total_count": 2, "limit": 100, "offset": 0, "has_more": false
}

L'invariant sur lequel vous pouvez bâtir

opening_balance + total_in − total_out = closing_balance

Et un relevé arrêté aujourd'hui clôture exactement sur votre solde disponible. C'est ce qui permet de rapprocher : si les deux divergent, c'est nous qui avons un problème, pas votre code.

Les quatre bornes portent sur la PÉRIODE, pas sur la page

opening_balance, closing_balance, total_in et total_out ne bougent pas quand vous paginez. N'additionnez pas data pour les recalculer : vous obtiendriez un total faux dès la deuxième page. total_count compte les mouvements de la période entière, has_more vous dit s'il en reste.

Deux colonnes, jamais un montant signé

in et out plutôt qu'un seul champ négatif ou positif. Un signe se perd à la relecture — dans un export, dans un tableur, dans une conversion. Deux colonnes ne se confondent pas.

Ce que ce relevé n'est pas

Ce n'est pas « le relevé d'un règlement ». Un règlement est un retrait d'un montant que vous choisissez sur votre disponible, pas une clôture de période. Prétendre qu'il « couvre » telles transactions serait une fiction. Il figure donc ici comme une sortie, à sa date, comme tout le reste.

Les refus

CodeQuandCe qu'il faut faire
invalid_periodfrom/to absent, mal formé, ou début après la finDeux dates AAAA-MM-JJ, dans l'ordre. Un intervalle inversé est refusé plutôt que rendu vide : un relevé vide se lirait « ce compte n'a pas bougé »
insufficient_scopeLa clé n'a pas la portée collectCette route lit ; elle n'exige pas une clé qui fait sortir de l'argent

Une période sans mouvement n'est pas une erreur : les bornes valent zéro et data est vide. « Rien n'a bougé » est une réponse.

Version d'API 2026-08-25 · changements · spécification OpenAPI