Déboursements

Envoyer des fonds vers un numéro mobile money.

Un seul appel, et l'argent part

Il n'y a pas d'étape d'approbation à déclencher : la création immobilise les fonds et confie l'opération à l'opérateur dans la même requête. Une application qui débourse en continu ne peut pas attendre une validation, et un point d'arrêt que personne ne surveille n'arrête rien.

Ce qui tient lieu de contrôle est automatique : le solde borne le montant, l'adresse d'appel borne l'origine, la cadence borne le rythme, et un versement identique au même bénéficiaire dans la minute est refusé. C'est détaillé plus bas.

POST /api/v1/payouts

curl -X POST https://maticorp.tech/api/v1/payouts \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Idempotency-Key: paie-livreur-nov-12" \
  -H "Content-Type: application/json" \
  -d '{
    "beneficiary_name": "Awa Diallo",
    "beneficiary_msisdn": "0190000000",
    "amount": 25000,
    "reason": "Commissions novembre"
  }'

Le solde disponible doit couvrir le montant et les frais. S'il ne suffit pas, la création échoue tout de suite plutôt que de laisser un déboursement impossible en attente.

Si l'opérateur refuse, les fonds immobilisés reviennent au solde disponible — automatiquement, sans action de votre part. Vous le verrez au statut et au webhook, pas en interrogeant un objet resté en attente.

POST /api/v1/payouts/{id}/approve existe encore, mais n'a plus d'usage : un déboursement créé par cet appel est déjà en cours. Il ne sert qu'à débloquer un déboursement resté en attente avant que l'envoi ne devienne direct, et répond approval_rejected sinon.

Autorisation par adresse IP

Un déboursement par API n'est pas approuvé par un humain : il est autorisé par l'adresse d'où part l'appel. Déclarez les adresses de sortie de vos serveurs dans la console, section Développeurs. Tout appel venu d'ailleurs est alors refusé — payout_rejected, le motif étant dans le message.

Tant que vous n'en déclarez aucune, l'appel est accepté de partout — c'est pourquoi il faut le faire avant la mise en production. Une clé API suffirait autrement à vider le solde disponible depuis n'importe où dans le monde.

Cette liste ne se modifie que depuis la console, jamais par l'API : une clé volée ne peut pas s'autoriser une adresse. Deux autres garde-fous s'appliquent en plus — une cadence par minute, réglable par compte, et le refus d'un versement identique au même bénéficiaire dans la minute.

Les statuts

Un rappel perdu ne bloque rien

Si l'opérateur ne nous rappelle jamais, un sondage périodique relit le statut et dénoue l'opération. Sans lui, des fonds resteraient immobilisés sans fin alors que le bénéficiaire a peut-être déjà été crédité.