Statut du payout
curl --request GET \
--url https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId} \
--header 'X-API-Key: <api-key>'import requests
url = "https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyPayouts (Décaissements)
Statut du payout
Vérifier le statut détaillé d un payout
GET
/
payouts
/
status
/
{payoutId}
Statut du payout
curl --request GET \
--url https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId} \
--header 'X-API-Key: <api-key>'import requests
url = "https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.caurisflux.com/api/v1/payouts/status/{payoutId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyRetourne le statut complet d’un payout avec toutes les informations : expéditeur, bénéficiaire, coordonnées bancaires, conversion de devise et suivi provider.
Authentification
X-API-Key: pk_test_xxx:sk_test_xxx
Paramètres de chemin
| Paramètre | Type | Description |
|---|---|---|
payoutId | string | ID du payout retourné lors de la création |
Requête
curl https://sandbox-api.caurisflux.com/api/v1/payouts/status/POMNIX67KZA3A098 \
-H "X-API-Key: pk_test_xxx:sk_test_xxx"
Réponse - International (processing)
{
"transactionId": "POMNIX67KZA3A098",
"externalReference": "PAY-C2C-2024-001",
"status": "processing",
"amount": 500,
"currency": "USD",
"fees": 10,
"netAmount": 490,
"method": "bank_transfer",
"sender": {
"firstName": "John",
"lastName": "Smith",
"nationality": "GB"
},
"recipient": {
"name": "Raj Kumar",
"firstName": "Raj",
"lastName": "Kumar",
"phone": "+919876543210",
"nationality": "IN"
},
"bankAccount": {
"bankName": "HDFC BANK",
"bankCode": "HDFC0001234",
"accountNumber": "12345678901234",
"accountName": "Raj Kumar"
},
"international": {
"destinationCountry": "IN",
"destinationCurrency": "INR",
"destinationAmount": 42170,
"fxRate": 84.34,
"purpose": "family_support"
},
"debit": {
"amount": 311610,
"currency": "XOF",
"conversionRate": 611
},
"providerReference": "FRTR1000241188",
"createdAt": "2026-04-03T13:08:32.121Z",
"updatedAt": "2026-04-03T13:09:34.914Z",
"processedAt": "2026-04-03T13:08:33.000Z"
}
Réponse - Mobile Money (completed)
{
"transactionId": "POMLWYG1W59FDCEA",
"externalReference": "PAY-2024-001",
"status": "completed",
"amount": 50000,
"currency": "XOF",
"fees": 750,
"netAmount": 49250,
"method": "mobile_money",
"recipient": {
"name": "Amadou Diallo",
"phone": "+221771234567"
},
"providerReference": "WAVE-PAY-123456",
"completedAt": "2024-01-15T14:02:00.000Z",
"createdAt": "2024-01-15T14:00:00.000Z",
"updatedAt": "2024-01-15T14:02:00.000Z"
}
Réponse - Payout échoué
{
"transactionId": "POMLWYG1W59FDCEA",
"externalReference": "PAY-2024-003",
"status": "failed",
"amount": 100000,
"currency": "XOF",
"fees": 500,
"netAmount": 99500,
"method": "mobile_money",
"recipient": {
"name": "Test User",
"phone": "+221770000000"
},
"errorCode": "invalid_recipient",
"errorMessage": "Le numéro de téléphone n'est pas associé à un compte Wave actif",
"createdAt": "2024-01-15T14:00:00.000Z",
"updatedAt": "2024-01-15T14:05:00.000Z"
}
Champs de réponse
| Champ | Type | Description |
|---|---|---|
transactionId | string | ID unique du payout |
externalReference | string | Votre référence |
status | string | Statut actuel |
amount | number | Montant |
currency | string | Devise |
fees | number | Frais appliqués |
netAmount | number | Montant net |
method | string | mobile_money ou bank_transfer |
sender | object | Informations expéditeur (international) |
recipient | object | Informations bénéficiaire |
bankAccount | object | Coordonnées bancaires (virement) |
international | object | Détails FX (international) |
debit | object | Montant débité en devise merchant |
providerReference | string | Référence du provider |
errorCode | string | Code d’erreur (si échoué) |
errorMessage | string | Message d’erreur (si échoué) |
createdAt | string | Date de création |
processedAt | string | Date de traitement |
completedAt | string | Date de complétion |
Statuts possibles
| Statut | Description |
|---|---|
pending | En attente de traitement |
processing | En cours de traitement |
completed | Payout réussi |
failed | Payout échoué |
cancelled | Payout annulé |
Codes d’erreur
| Code | Description |
|---|---|
invalid_recipient | Bénéficiaire invalide |
insufficient_balance | Solde insuffisant (votre compte) |
provider_error | Erreur du provider |
limit_exceeded | Limite de payout dépassée |
account_blocked | Compte bénéficiaire bloqué |
⌘I