Encaissements

Liens de paiement et prélèvements mobile money.

Deux façons d'encaisser

Le lien de paiement ne demande aucune intégration : vous le créez, vous l'envoyez, le client paie sur une page hébergée par nous. Le prélèvement direct déclenche l'invite sur le téléphone du client depuis votre propre interface.

POST /api/v1/payment_links

curl -X POST https://maticorp.tech/api/v1/payment_links \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Idempotency-Key: lien-boutique-204" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Commande 204",
    "type": "fixed",
    "amount": 15000,
    "reference": "CMD-204",
    "usage_type": "multi"
  }'

type vaut fixed (montant imposé) ou open (le payeur saisit le montant, borné par min_amount et max_amount). usage_type vaut multi ou single — un lien à usage unique se ferme après le premier paiement abouti. Seul title est obligatoire.

POST /api/v1/payments

Déclenche l'invite sur le téléphone du payeur.

curl -X POST https://maticorp.tech/api/v1/payments \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Idempotency-Key: commande-204" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 15000,
    "msisdn": "0190000000",
    "payer_name": "Koné Ibrahim",
    "description": "Commande 204"
  }'
201 Created

{
  "object": "payment",
  "id": "pay_uh5swb0e7z1yn98za5k0",
  "amount": 15000,
  "fee": 270,
  "net_amount": 14730,
  "status": "en_attente_client",
  "msisdn": "2290190000000",
  "created_at": "2026-11-06 20:14:03"
}

Le statut est en_attente_client, pas « payé ». Le client n'a pas encore validé. Attendez payment.succeeded, ou relisez le paiement.

Le numéro peut être donné au format national (0190000000) ou international (2290190000000) — nous le ramenons au pays de votre compte.

GET /api/v1/payments/{id}

Relit un paiement. C'est cette lecture qui fait foi, jamais le corps d'un webhook.

GET /api/v1/payments

Liste vos paiements, du plus récent au plus ancien. Paramètres : limit (25 par défaut) et status.

Les statuts