Docs
ENFR
Tableau de bord
Référence de l’API

Reversements

Un reversement transfère de l’argent de votre solde Monerail vers votre propre compte bancaire ou mobile money, tel qu’enregistré pour cette devise par un Propriétaire dans le tableau de bord (Paramètres › Reversements).

L’objet reversement

Attributs
idstring

Identifiant unique (UUID).

livemodeboolean

true en production, false en mode test.

objectstring

Toujours settlement.

statusstring

succeeded et failed sont définitifs.

pendingprocessingsucceededfailed
amountinteger

Montant envoyé sur votre compte de reversement, en unités mineures.

currencystring

Code devise ISO 4217.

feeinteger

Frais Monerail.

recipientobject

Votre compte de reversement pour cette devise, tel qu’enregistré dans le tableau de bord (même forme que pour les paiements : mobile_money ou bank).

descriptionstring | null

Toujours null pour les reversements.

client_referencestring | null

Votre propre référence, telle qu’envoyée à la création.

metadataobject

Paires clé-valeur jointes à la création.

failure_codestring | null

Raison de l’échec, si status vaut failed ou expired.

failure_messagestring | null

Détail transmis par le partenaire de paiement, s’il existe.

created_atstring

Date de création, ISO 8601 (UTC).

updated_atstring

Dernière modification, ISO 8601 (UTC).

L’objet reversement
{
  "id": "575f3a4b-ccd5-4949-9c4d-158127ccccd1",
  "object": "settlement",
  "livemode": false,
  "status": "pending",
  "amount": 2500000,
  "currency": "XAF",
  "fee": 0,
  "recipient": {
    "type": "bank",
    "name": "Acme SARL",
    "bank_code": "10005",
    "account": "••••0193",
    "country": "CM"
  },
  "description": null,
  "client_reference": null,
  "metadata": {},
  "failure_code": null,
  "failure_message": null,
  "created_at": "2026-10-30T13:47:06.394Z",
  "updated_at": "2026-10-30T13:47:06.394Z"
}

Créer un reversement

POST/v1/settlements

La destination est toujours votre compte de reversement enregistré : elle ne peut pas être changée par l’API.

Rôles de la clé : Propriétaire ou Finance

Corps
amountintegerRequis

Montant en unités mineures de currency (francs entiers pour XAF, XOF et GNF ; centimes pour CDF, par multiples de 100). Entier seulement.

currencystringRequis

Code ISO 4217.

XAFXOFGNFCDFNGNKESGHSUGXTZSRWF
Retour

Renvoie le nouvel objet reversement avec 201, ou 202 quand le résultat n’est pas encore définitif.

Erreurs à prévoir
HTTPCodeDescription
400settlement_destination_missingAucun compte de reversement enregistré pour cette devise.
400settlement_destination_invalidLe compte de reversement enregistré n’est pas valide pour le partenaire de paiement.
402balance_insufficientVotre solde (ou solde cartes) ne couvre pas le montant et les frais.
403permission_deniedLe créateur de la clé n’a pas le rôle requis pour cette opération.
429rate_limitedUne limite de débit est atteinte. Attendez Retry-After secondes. Voir Limites de débit.
curl https://api.monerail.com/v1/settlements \
  -H "Authorization: Bearer $MONERAIL_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a1f3c9e2-5b7d-4c21-9f80-3e6b2d1c7a45" \
  -d '{
    "amount": 2500000,
    "currency": "XAF"
  }'
Réponse201
{
  "id": "575f3a4b-ccd5-4949-9c4d-158127ccccd1",
  "object": "settlement",
  "livemode": false,
  "status": "pending",
  "amount": 2500000,
  "currency": "XAF",
  "fee": 0,
  "recipient": {
    "type": "bank",
    "name": "Acme SARL",
    "bank_code": "10005",
    "account": "••••0193",
    "country": "CM"
  },
  "description": null,
  "client_reference": null,
  "metadata": {},
  "failure_code": null,
  "failure_message": null,
  "created_at": "2026-10-30T13:47:06.394Z",
  "updated_at": "2026-10-30T13:47:06.394Z"
}

Consulter un reversement

GET/v1/settlements/{id}

Rôles de la clé : Tous les rôles

Paramètres de chemin
idstringRequis

Identifiant du reversement.

Retour

Renvoie l’objet reversement.

curl https://api.monerail.com/v1/settlements/575f3a4b-ccd5-4949-9c4d-158127ccccd1 \
  -H "Authorization: Bearer $MONERAIL_KEY"
Réponse200
{
  "id": "575f3a4b-ccd5-4949-9c4d-158127ccccd1",
  "object": "settlement",
  "livemode": false,
  "status": "succeeded",
  "amount": 2500000,
  "currency": "XAF",
  "fee": 0,
  "recipient": {
    "type": "bank",
    "name": "Acme SARL",
    "bank_code": "10005",
    "account": "••••0193",
    "country": "CM"
  },
  "description": null,
  "client_reference": null,
  "metadata": {},
  "failure_code": null,
  "failure_message": null,
  "created_at": "2026-10-30T13:47:06.394Z",
  "updated_at": "2026-10-30T13:47:06.394Z"
}

Lister les reversements

GET/v1/settlements

Du plus récent au plus ancien.

Rôles de la clé : Tous les rôles

Paramètres de requête
limitintegerFacultatifPar défaut 20

Nombre d’objets à renvoyer, de 1 à 100.

starting_afterstringFacultatif

Curseur : l’identifiant du dernier objet de la page précédente.

Retour

Renvoie un objet liste : data contient jusqu’à limit objets settlement, et has_more indique s’il en reste.

curl "https://api.monerail.com/v1/settlements?limit=10" \
  -H "Authorization: Bearer $MONERAIL_KEY"
Réponse200
{
  "object": "list",
  "url": "/v1/settlements",
  "data": [
    {
      "id": "575f3a4b-ccd5-4949-9c4d-158127ccccd1",
      "object": "settlement",
      "livemode": false,
      "status": "pending",
      "amount": 2500000,
      "currency": "XAF",
      "fee": 0,
      "recipient": {
        "type": "bank",
        "name": "Acme SARL",
        "bank_code": "10005",
        "account": "••••0193",
        "country": "CM"
      },
      "description": null,
      "client_reference": null,
      "metadata": {},
      "failure_code": null,
      "failure_message": null,
      "created_at": "2026-10-30T13:47:06.394Z",
      "updated_at": "2026-10-30T13:47:06.394Z"
    }
  ],
  "has_more": false
}