Skip to main content
POST
/
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>'

Documentation Index

Fetch the complete documentation index at: https://docs.caurisflux.com/llms.txt

Use this file to discover all available pages before exploring further.

Crée un payout (décaissement) pour envoyer de l’argent vers un compte Mobile Money ou bancaire.
Flux recommandé : Obtenez d’abord un devis avec POST /payouts/quote, puis confirmez avec POST /payouts/initiate en passant le quoteId. Le marchand sait exactement combien sera débité avant de confirmer.

Authentification

X-API-Key: pk_test_xxx:sk_test_xxx

Avec un devis (recommandé)

Quand quoteId est fourni, les montants, taux, frais et méthode sont verrouillés. Seuls les détails du bénéficiaire sont requis.

Mobile Money (avec quote)

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 '{
    "quoteId": "QT-MOBILE-001",
    "externalReference": "PAY-2024-001",
    "recipient": {
      "phone": "+221771234567",
      "firstName": "Amadou",
      "lastName": "Diallo"
    },
    "description": "Paiement fournisseur"
  }'
201 - Réponse
{
  "transactionId": "POMLWYG1W59FDCEA",
  "externalReference": "PAY-2024-001",
  "status": "pending",
  "amount": 50000,
  "currency": "XOF",
  "fees": 750,
  "netAmount": 49250,
  "method": "mobile_money",
  "recipient": {
    "name": "Amadou Diallo",
    "firstName": "Amadou",
    "lastName": "Diallo",
    "phone": "+221771234567"
  },
  "mobileWallet": {
    "provider": "wave"
  },
  "createdAt": "2024-01-15T14:00:00.000Z",
  "updatedAt": "2024-01-15T14:00:00.000Z"
}

Virement Bancaire Local (avec quote)

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 '{
    "quoteId": "QT-BANK-001",
    "externalReference": "PAY-2024-002",
    "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"
  }'
201 - Réponse
{
  "transactionId": "POMLWYG2X6AGDCEB",
  "externalReference": "PAY-2024-002",
  "status": "pending",
  "amount": 500000,
  "currency": "XOF",
  "fees": 2500,
  "netAmount": 497500,
  "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"
  },
  "createdAt": "2024-01-15T14:30:00.000Z",
  "updatedAt": "2024-01-15T14:30:00.000Z"
}

International C2C (avec quote)

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 '{
    "quoteId": "QT-A1B2C3D4E5F6",
    "externalReference": "PAY-C2C-2024-001",
    "purpose": "family_support",
    "sender": {
      "firstName": "John",
      "lastName": "Smith",
      "phone": "+447911123456",
      "email": "john@email.com",
      "address": "123 High Street, London",
      "dateOfBirth": "1985-06-15",
      "nationality": "GB",
      "sourceOfIncome": "salary",
      "relationWithRecipient": "family",
      "identity": {
        "type": "passport",
        "number": "GB123456789",
        "issuingCountry": "GB",
        "issueDate": "2018-01-01",
        "expiryDate": "2028-01-01"
      }
    },
    "recipient": {
      "firstName": "Raj",
      "lastName": "Kumar",
      "phone": "+919876543210",
      "nationality": "IN",
      "address": {
        "line1": "456 MG Road",
        "city": "Mumbai",
        "postalCode": "400001",
        "country": "IN"
      }
    },
    "bankAccount": {
      "bankName": "HDFC BANK",
      "bankCode": "HDFC0001234",
      "accountNumber": "12345678901234",
      "accountName": "Raj Kumar"
    },
    "description": "Transfert familial"
  }'
201 - Réponse
{
  "transactionId": "POMNIY89ABC1D234",
  "externalReference": "PAY-C2C-2024-001",
  "status": "pending",
  "amount": 500,
  "currency": "USD",
  "fees": 10,
  "netAmount": 490,
  "method": "bank_transfer",
  "recipient": {
    "name": "Raj Kumar",
    "firstName": "Raj",
    "lastName": "Kumar",
    "phone": "+919876543210"
  },
  "bankAccount": {
    "bankName": "HDFC BANK",
    "bankCode": "HDFC0001234",
    "accountNumber": "12345678901234",
    "accountName": "Raj Kumar"
  },
  "international": {
    "destinationCountry": "IN",
    "destinationCurrency": "INR",
    "destinationAmount": 42170,
    "fxRate": 84.34,
    "purpose": "family_support"
  },
  "createdAt": "2026-04-03T14:00:00.000Z",
  "updatedAt": "2026-04-03T14:00:00.000Z"
}

B2B SWIFT (avec quote)

Le champ sender.company est requis pour les transferts B2B.
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 '{
    "quoteId": "QT-B2B-001",
    "externalReference": "PAY-B2B-001",
    "purpose": "trade_payment",
    "sender": {
      "firstName": "Amadou",
      "lastName": "Diallo",
      "email": "amadou@cauris.com",
      "phone": "+221770001234",
      "address": "Dakar, Sénégal",
      "nationality": "SN",
      "dateOfBirth": "1980-05-20",
      "identity": {
        "type": "passport",
        "number": "A12345678",
        "issuingCountry": "SN",
        "issueDate": "2020-01-01",
        "expiryDate": "2030-01-01"
      },
      "company": {
        "name": "Cauris Technologies SARL",
        "legalForm": "LLC",
        "businessType": "Trading",
        "countryOfTrade": "SN",
        "currencies": ["USD", "EUR"]
      }
    },
    "recipient": {
      "name": "TechCorp GmbH",
      "email": "finance@techcorp.de",
      "nationality": "DE",
      "address": {
        "line1": "Friedrichstraße 100",
        "city": "Berlin",
        "postalCode": "10117",
        "country": "DE"
      }
    },
    "bankAccount": {
      "bankName": "Deutsche Bank",
      "accountNumber": "DE89370400440532013000",
      "accountName": "TechCorp GmbH",
      "swiftBic": "DEUTDEFFXXX",
      "bankBranch": "Berlin Main",
      "bankAddress": "Taunusanlage 12, 60325 Frankfurt"
    },
    "correspondentBank": {
      "bankName": "JPMorgan Chase",
      "swiftBic": "CHASUS33XXX",
      "accountNumber": "400-123-456"
    },
    "description": "Paiement fournisseur Q1 2024"
  }'
201 - Réponse
{
  "transactionId": "POMLWYG5A9DJGFHI",
  "externalReference": "PAY-B2B-001",
  "status": "pending",
  "amount": 5000,
  "currency": "USD",
  "fees": 15000,
  "netAmount": 4975,
  "method": "bank_transfer",
  "recipient": {
    "name": "TechCorp GmbH",
    "email": "finance@techcorp.de"
  },
  "bankAccount": {
    "bankName": "Deutsche Bank",
    "accountNumber": "DE89370400440532013000",
    "accountName": "TechCorp GmbH",
    "swiftBic": "DEUTDEFFXXX",
    "bankBranch": "Berlin Main",
    "bankAddress": "Taunusanlage 12, Frankfurt"
  },
  "correspondentBank": {
    "bankName": "JPMorgan Chase",
    "swiftBic": "CHASUS33XXX",
    "accountNumber": "400-123-456"
  },
  "international": {
    "destinationCountry": "DE",
    "destinationCurrency": "EUR",
    "destinationAmount": 4580,
    "fxRate": 0.916
  },
  "createdAt": "2024-01-15T16:30:00.000Z",
  "updatedAt": "2024-01-15T16:30:00.000Z"
}

Sans devis (legacy)

Vous pouvez aussi créer un payout sans devis en spécifiant tous les paramètres directement.
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"
  }'

Paramètres

Avec quote (recommandé)

ChampTypeRequisDescription
quoteIdstringOuiID du devis obtenu via POST /payouts/quote
externalReferencestringNonVotre référence unique
purposestringInternationalMotif du transfert
senderobjectInternationalInformations sur l’expéditeur
recipientobjectOuiInformations sur le bénéficiaire
bankAccountobjectVirementCoordonnées bancaires
correspondentBankobjectSWIFTBanque correspondante
descriptionstringNonCommentaire

Sans quote

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

Objet sender (international/B2B)

ChampTypeRequisDescription
firstNamestringOuiPrénom
lastNamestringOuiNom
phonestringNonNuméro de téléphone
emailstringNonEmail
addressstringOuiAdresse
dateOfBirthstringOuiDate de naissance (YYYY-MM-DD)
nationalitystringOuiCode ISO du pays
sourceOfIncomestringNonSource de revenus
relationWithRecipientstringNonRelation avec le bénéficiaire
identityobjectOuiPièce d’identité
companyobjectB2BInformations entreprise

Objet sender.identity

ChampTypeRequisDescription
typestringOuipassport, national_id, driving_license
numberstringOuiNuméro du document
issuingCountrystringOuiPays d’émission (ISO 2)
issueDatestringOuiDate d’émission (YYYY-MM-DD)
expiryDatestringOuiDate d’expiration (YYYY-MM-DD)

Objet sender.company (B2B)

ChampTypeRequisDescription
namestringOuiRaison sociale
legalFormstringNonForme juridique (LLC, SA, SARL…)
businessTypestringNonSecteur d’activité
countryOfTradestringNonPays d’activité
currenciesarrayNonDevises utilisées

Objet recipient

ChampTypeRequisDescription
phonestringMobile MoneyNuméro (format E.164)
firstNamestringInternationalPrénom
lastNamestringInternationalNom
namestringNonRaison sociale ou nom complet
emailstringNonEmail
nationalitystringInternationalCode ISO du pays
addressobjectCertains corridorsAdresse structurée

Objet bankAccount

ChampTypeRequisDescription
accountNumberstringOuiNuméro de compte ou IBAN
swiftBicstringInternationalCode SWIFT/BIC
bankNamestringSWIFTNom de la banque
bankCodestringNonCode de la banque
accountNamestringNonNom du titulaire
bankBranchstringSWIFTAgence/branche
bankAddressstringSWIFTAdresse de la banque

Objet correspondentBank (SWIFT, optionnel)

ChampTypeRequisDescription
bankNamestringNonNom de la banque correspondante
swiftBicstringNonSWIFT/BIC correspondant
accountNumberstringNonNuméro de compte correspondant

Providers Mobile Money

CodeNom
waveWave
orange_moneyOrange Money
mtn_moneyMTN Mobile Money
moov_moneyMoov Money
free_moneyFree Money

Erreurs

CodeMessageSolution
400Quote expiréDemandez un nouveau devis
400Corridor non supportéVérifiez /payouts/reference/corridors
400Purpose requisAjoutez le champ purpose
400Solde insuffisantRechargez votre compte
400Limite dépasséeVérifiez /payouts/limits
400Company requis pour B2BAjoutez sender.company