Skip to main content
POST
https://sandbox-api.caurisflux.com/api/v1
/
payouts
/
initiate
Créer un payout
curl --request POST \
  --url https://sandbox-api.caurisflux.com/api/v1/payouts/initiate \
  --header 'X-API-Key: <api-key>'
Crée un payout (décaissement) pour envoyer de l’argent vers un compte Mobile Money ou bancaire.

Authentification

X-API-Key: pk_test_xxx:sk_test_xxx

Types de payout

Payout Mobile Money

Envoie de l’argent vers un compte Mobile Money (Wave, Orange Money, etc.).
curl -X POST https://sandbox-api.caurisflux.com/api/v1/payouts/initiate \
  -H "X-API-Key: pk_test_xxx:sk_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "externalReference": "PAY-2024-001",
    "amount": 50000,
    "country": "SN",
    "currency": "XOF",
    "method": "MOBILE_MONEY",
    "recipient": {
      "phone": "+221771234567",
      "firstName": "Amadou",
      "lastName": "Diallo"
    },
    "mobileWallet": {
      "provider": "wave"
    },
    "description": "Paiement fournisseur",
    "metadata": {
      "supplierId": "SUP-123",
      "invoiceId": "INV-456"
    }
  }'

Payout Virement Bancaire (Local)

Envoie de l’argent vers un compte bancaire dans le même pays.
curl -X POST https://sandbox-api.caurisflux.com/api/v1/payouts/initiate \
  -H "X-API-Key: pk_test_xxx:sk_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "externalReference": "PAY-2024-002",
    "amount": 500000,
    "country": "SN",
    "currency": "XOF",
    "method": "BANK_TRANSFER",
    "recipient": {
      "name": "SARL Mon Entreprise",
      "email": "finance@monentreprise.sn"
    },
    "bankAccount": {
      "bankName": "BICIS",
      "bankCode": "SN048",
      "accountNumber": "SN08SN000101015000001234567",
      "accountName": "SARL Mon Entreprise",
      "swiftBic": "BICISNDAXXX"
    },
    "description": "Virement mensuel"
  }'

Payout Virement Bancaire (International)

Envoie de l’argent vers un compte bancaire à l’étranger avec conversion de devise.
Avant de créer un payout international, vérifiez le corridor avec GET /payouts/reference/corridors et récupérez les motifs avec GET /payouts/reference/purposes.
curl -X POST https://sandbox-api.caurisflux.com/api/v1/payouts/initiate \
  -H "X-API-Key: pk_test_xxx:sk_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "externalReference": "PAY-INT-2024-001",
    "amount": 1000000,
    "country": "SN",
    "currency": "XOF",
    "method": "BANK_TRANSFER",
    "recipient": {
      "firstName": "Jean",
      "lastName": "Dupont",
      "email": "jean.dupont@email.fr"
    },
    "bankAccount": {
      "accountNumber": "FR7630006000011234567890189",
      "swiftBic": "BNPAFRPPXXX"
    },
    "international": {
      "destinationCountry": "FR",
      "destinationCurrency": "EUR",
      "purpose": "SALARY",
      "recipientAddress": {
        "line1": "123 Avenue des Champs-Élysées",
        "city": "Paris",
        "postalCode": "75008",
        "country": "FR"
      }
    },
    "description": "Salaire consultant Mars 2024"
  }'

Paramètres

Champs communs

ChampTypeRequisDescription
amountnumberOuiMontant du payout
methodstringOuiMOBILE_MONEY ou BANK_TRANSFER
externalReferencestringNonVotre référence unique (idempotence)
countrystringNonCode ISO du pays (défaut: SN)
currencystringNonDevise (défaut: XOF)
descriptionstringNonCommentaire
callbackUrlstringNonURL de callback
metadataobjectNonDonnées personnalisées

Champs recipient

ChampTypeRequisDescription
phonestringMobile MoneyNuméro du bénéficiaire (format E.164)
firstNamestringInternationalPrénom du bénéficiaire
lastNamestringInternationalNom du bénéficiaire
namestringNonRaison sociale ou nom complet
emailstringInternationalEmail du bénéficiaire

Champs mobileWallet (pour Mobile Money)

ChampTypeRequisDescription
providerstringOuiCode du provider (wave, orange_money, etc.)

Champs bankAccount (pour Virement Bancaire)

ChampTypeRequisDescription
accountNumberstringOuiNuméro de compte ou IBAN
swiftBicstringInternationalCode SWIFT/BIC (8-11 caractères)
bankNamestringNonNom de la banque
bankCodestringNonCode de la banque
accountNamestringNonNom du titulaire

Champs international (pour payouts FX)

ChampTypeRequisDescription
destinationCountrystringOuiCode ISO du pays de destination
destinationCurrencystringOuiDevise de destination
purposestringOuiMotif du paiement
recipientAddressobjectCertains corridorsAdresse du bénéficiaire

Réponse - Payout Mobile Money

{
  "transactionId": "POMLWYG1W59FDCEA",
  "externalReference": "PAY-2024-001",
  "status": "pending",
  "amount": 50000,
  "currency": "XOF",
  "method": "mobile_money",
  "recipient": {
    "name": "Amadou Diallo",
    "firstName": "Amadou",
    "lastName": "Diallo",
    "phone": "+221771234567"
  },
  "mobileWallet": {
    "provider": "wave"
  },
  "description": "Paiement fournisseur",
  "metadata": {
    "supplierId": "SUP-123",
    "invoiceId": "INV-456"
  },
  "createdAt": "2024-01-15T14:00:00.000Z",
  "updatedAt": "2024-01-15T14:00:00.000Z"
}

Réponse - Payout International

{
  "transactionId": "POMLWYG3Y7BHEDFC",
  "externalReference": "PAY-INT-2024-001",
  "status": "pending",
  "amount": 1000000,
  "currency": "XOF",
  "method": "bank_transfer",
  "recipient": {
    "name": "Jean Dupont",
    "firstName": "Jean",
    "lastName": "Dupont",
    "email": "jean.dupont@email.fr"
  },
  "bankAccount": {
    "accountNumber": "FR7630006000011234567890189",
    "swiftBic": "BNPAFRPPXXX"
  },
  "international": {
    "destinationCountry": "FR",
    "destinationCurrency": "EUR",
    "destinationAmount": 1524.39,
    "fxRate": 655.957,
    "purpose": "SALARY"
  },
  "description": "Salaire consultant Mars 2024",
  "createdAt": "2024-01-15T15:00:00.000Z",
  "updatedAt": "2024-01-15T15:00:00.000Z"
}

Providers Mobile Money

CodeNom
waveWave
orange_moneyOrange Money
mtn_moneyMTN Mobile Money
moov_moneyMoov Money
free_moneyFree Money

Erreurs

CodeMessageSolution
400Corridor non supportéVérifiez /payouts/reference/corridors
400Purpose requisAjoutez international.purpose
400Solde insuffisantRechargez votre compte
400Limite dépasséeVérifiez /payouts/limits