Décaissements

Payouts et bénéficiaires.

POST/api/v1/payments/payoutsClé API · merchant.charges.manage

Créer un décaissement

Initie un payout vers un bénéficiaire enregistré.

Corps de requête

NomTypeRequisDescription
amountstringOuiMontant
currencystringOuiDevise
beneficiaryIdstringBénéficiaire enregistré
idempotencyKeystringOuiClé d'idempotence
descriptionstringLibellé

Exemple requête

json
{
  "amount": "500",
  "currency": "USD",
  "beneficiaryId": "ben_abc123",
  "idempotencyKey": "payout-week-32"
}

Réponse (data)

NomTypeRequisDescription
objectstringOuiToujours payout
idstringOuiIdentifiant payout
amountstringOuiMontant
currencystringOuiDevise
statusstringOuiPENDING, PROCESSING, SUCCEEDED, FAILED
methodstringBANK_TRANSFER, MOBILE_MONEY, etc.
destinationRefstringRéférence compte de destination
beneficiaryNamestring | nullNom du bénéficiaire
providerCodestring | nullCode provider d'exécution
executedAtstring | nullDate d'exécution ISO 8601
idempotencyKeystringOuiClé d'idempotence
createdAtstringOuiDate ISO 8601
updatedAtstringOuiDernière mise à jour ISO 8601

Exemple réponse

json
{
  "success": true,
  "data": {
    "object": "payout",
    "id": "po_abc123",
    "tenantId": "tenant-1",
    "merchantId": "mch-1",
    "reference": "PAYOUT-001",
    "amount": "10000",
    "currency": "CDF",
    "status": "PENDING",
    "idempotencyKey": "payout-001",
    "beneficiaryId": "ben-1",
    "method": "BANK_TRANSFER",
    "destinationRef": "1000123456789",
    "beneficiaryName": "Compte principal",
    "providerCode": null,
    "providerRef": null,
    "failureReason": null,
    "rejectionReason": null,
    "approvedAt": null,
    "rejectedAt": null,
    "executedAt": null,
    "createdAt": "2026-08-28T11:00:00.000Z",
    "updatedAt": "2026-08-28T11:00:00.000Z"
  },
  "error": null
}

Erreurs

  • IDEMPOTENCY_KEY_REQUIRED (400) — Header Idempotency-Key requis
  • INSUFFICIENT_WALLET_BALANCE (400) — Solde wallet insuffisant
  • PAYOUT_BELOW_MINIMUM (400) — Montant sous le minimum autorisé

Exemples

bash
curl -X POST https://api.dev.izzi-finance.com/api/v1/api/v1/payments/payouts \
  -H "Authorization: Bearer izzi_mk_sandbox_…" \
  -H "Idempotency-Key: charge-order-1234-unique" \
  -H "Content-Type: application/json" \
  -d '{
  "amount": "500",
  "currency": "USD",
  "beneficiaryId": "ben_abc123",
  "idempotencyKey": "payout-week-32"
}'
GET/api/v1/payments/payoutsPermission · merchant.payouts.read

Lister les décaissements

Liste paginée des payouts.

Paramètres de requête

NomTypeRequisDescription
pagenumberPage (défaut 1)
limitnumberTaille page (défaut 25)
statusstringFiltrer par statut
merchantIdstringFiltrer par marchand

Réponse (data)

NomTypeRequisDescription
objectstringOuiToujours payout
idstringOuiIdentifiant payout
amountstringOuiMontant
currencystringOuiDevise
statusstringOuiPENDING, PROCESSING, SUCCEEDED, FAILED
methodstringBANK_TRANSFER, MOBILE_MONEY, etc.
destinationRefstringRéférence compte de destination
beneficiaryNamestring | nullNom du bénéficiaire
providerCodestring | nullCode provider d'exécution
executedAtstring | nullDate d'exécution ISO 8601
idempotencyKeystringOuiClé d'idempotence
createdAtstringOuiDate ISO 8601
updatedAtstringOuiDernière mise à jour ISO 8601

Exemple réponse

json
{
  "success": true,
  "data": [
    {
      "object": "payout",
      "id": "po_abc123",
      "tenantId": "tenant-1",
      "merchantId": "mch-1",
      "reference": "PAYOUT-001",
      "amount": "10000",
      "currency": "CDF",
      "status": "PENDING",
      "idempotencyKey": "payout-001",
      "beneficiaryId": "ben-1",
      "method": "BANK_TRANSFER",
      "destinationRef": "1000123456789",
      "beneficiaryName": "Compte principal",
      "providerCode": null,
      "providerRef": null,
      "failureReason": null,
      "rejectionReason": null,
      "approvedAt": null,
      "rejectedAt": null,
      "executedAt": null,
      "createdAt": "2026-08-28T11:00:00.000Z",
      "updatedAt": "2026-08-28T11:00:00.000Z"
    }
  ],
  "error": null,
  "meta": {
    "page": 1,
    "pageSize": 25,
    "total": 1,
    "totalPages": 1
  }
}

Exemples

bash
curl -X GET https://api.dev.izzi-finance.com/api/v1/api/v1/payments/payouts \
  -H "Authorization: Bearer izzi_mk_sandbox_…" \
  -H "Content-Type: application/json"
POST/api/v1/payments/payouts/:id/executePermission · merchant.payouts.approve, merchant.charges.manage

Exécuter un décaissement

Lance l'exécution d'un payout approuvé.

Paramètres de chemin

NomTypeRequisDescription
idstringOuipayoutId

Réponse (data)

NomTypeRequisDescription
objectstringOuiToujours payout
idstringOuiIdentifiant payout
amountstringOuiMontant
currencystringOuiDevise
statusstringOuiPENDING, PROCESSING, SUCCEEDED, FAILED
methodstringBANK_TRANSFER, MOBILE_MONEY, etc.
destinationRefstringRéférence compte de destination
beneficiaryNamestring | nullNom du bénéficiaire
providerCodestring | nullCode provider d'exécution
executedAtstring | nullDate d'exécution ISO 8601
idempotencyKeystringOuiClé d'idempotence
createdAtstringOuiDate ISO 8601
updatedAtstringOuiDernière mise à jour ISO 8601

Exemple réponse

json
{
  "success": true,
  "data": {
    "object": "payout",
    "id": "po_abc123",
    "tenantId": "tenant-1",
    "merchantId": "mch-1",
    "reference": "PAYOUT-001",
    "amount": "10000",
    "currency": "CDF",
    "status": "PENDING",
    "idempotencyKey": "payout-001",
    "beneficiaryId": "ben-1",
    "method": "BANK_TRANSFER",
    "destinationRef": "1000123456789",
    "beneficiaryName": "Compte principal",
    "providerCode": null,
    "providerRef": null,
    "failureReason": null,
    "rejectionReason": null,
    "approvedAt": null,
    "rejectedAt": null,
    "executedAt": null,
    "createdAt": "2026-08-28T11:00:00.000Z",
    "updatedAt": "2026-08-28T11:00:00.000Z"
  },
  "error": null
}

Exemples

bash
curl -X POST https://api.dev.izzi-finance.com/api/v1/api/v1/payments/payouts/:id/execute \
  -H "Authorization: Bearer izzi_mk_sandbox_…" \
  -H "Content-Type: application/json"
POST/api/v1/payments/payouts/beneficiariesClé API

Créer un bénéficiaire

Enregistre un compte de sortie pour les payouts.

Corps de requête

NomTypeRequisDescription
labelstringOuiNom affiché
typestringOuiBANK_TRANSFER ou MOBILE_MONEY
accountRefstringOuiNuméro de compte ou MSISDN
isDefaultbooleanBénéficiaire par défaut

Exemple requête

json
{
  "label": "Compte principal",
  "type": "BANK_TRANSFER",
  "accountRef": "1000123456789",
  "isDefault": true
}

Réponse (data)

NomTypeRequisDescription
idstringOuibeneficiaryId

Exemple réponse

json
{
  "success": true,
  "data": {
    "id": "ben_abc123",
    "label": "Compte principal",
    "status": "ACTIVE"
  }
}

Exemples

bash
curl -X POST https://api.dev.izzi-finance.com/api/v1/api/v1/payments/payouts/beneficiaries \
  -H "Authorization: Bearer izzi_mk_sandbox_…" \
  -H "Content-Type: application/json" \
  -d '{
  "label": "Compte principal",
  "type": "BANK_TRANSFER",
  "accountRef": "1000123456789",
  "isDefault": true
}'
GET/api/v1/payments/payouts/beneficiariesClé API

Lister les bénéficiaires

Liste des comptes de sortie.

Réponse (data)

NomTypeRequisDescription
idstringOuiIdentifiant

Exemple réponse

json
{
  "success": true,
  "data": [
    {
      "id": "ben_abc123",
      "label": "Compte principal"
    }
  ]
}

Exemples

bash
curl -X GET https://api.dev.izzi-finance.com/api/v1/api/v1/payments/payouts/beneficiaries \
  -H "Authorization: Bearer izzi_mk_sandbox_…" \
  -H "Content-Type: application/json"