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
beneficiaryIdstringNonBénéficiaire enregistré
idempotencyKeystringOuiClé d'idempotence
descriptionstringNonLibellé

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
methodstringNonBANK_TRANSFER, MOBILE_MONEY, etc.
destinationRefstringNonRéférence compte de destination
beneficiaryNamestring | nullNonNom du bénéficiaire
providerCodestring | nullNonCode provider d'exécution
executedAtstring | nullNonDate 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.izzi-finance.com/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
pagenumberNonPage (défaut 1)
limitnumberNonTaille page (défaut 25)
statusstringNonFiltrer par statut
merchantIdstringNonFiltrer par marchand

Réponse (data)

NomTypeRequisDescription
objectstringOuiToujours payout
idstringOuiIdentifiant payout
amountstringOuiMontant
currencystringOuiDevise
statusstringOuiPENDING, PROCESSING, SUCCEEDED, FAILED
methodstringNonBANK_TRANSFER, MOBILE_MONEY, etc.
destinationRefstringNonRéférence compte de destination
beneficiaryNamestring | nullNonNom du bénéficiaire
providerCodestring | nullNonCode provider d'exécution
executedAtstring | nullNonDate 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.izzi-finance.com/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
methodstringNonBANK_TRANSFER, MOBILE_MONEY, etc.
destinationRefstringNonRéférence compte de destination
beneficiaryNamestring | nullNonNom du bénéficiaire
providerCodestring | nullNonCode provider d'exécution
executedAtstring | nullNonDate 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.izzi-finance.com/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
isDefaultbooleanNonBé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.izzi-finance.com/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.izzi-finance.com/api/v1/payments/payouts/beneficiaries \
  -H "Authorization: Bearer izzi_mk_sandbox_…" \
  -H "Content-Type: application/json"