Endpoint
POST https://pay.sandbox.yabetoopay.com/v1/disbursements # Sandbox
POST https://pay.api.yabetoopay.com/v1/disbursements # Production
Authentication
Use your secret key in the Authorization header:
Authorization: Bearer YOUR_SECRET_KEY
Secret key security: The secret key must be kept confidential and
must never be exposed in the frontend or client code. It must only be used on
the server side.
Request Body
Parameter Type Required Description amountnumberYes The amount to transfer currencystringYes Currency code (e.g., XAF, XOF) first_namestringYes Customer’s first name last_namestringYes Customer’s last name payment_method_dataobjectYes Payment method details
payment_method_data structure
{
"type" : "momo" ,
"momo" : {
"msisdn" : "242066594471" ,
"country" : "CG" ,
"operator_name" : "mtn"
}
}
Field Description typePayment method type (momo for Mobile Money) momo.msisdnCustomer’s phone number momo.countryCountry code (e.g., CG, CM) momo.operator_nameOperator name (mtn, airtel)
Example Request
cURL
JavaScript
Python
PHP
Java
curl -X POST https://pay.sandbox.yabetoopay.com/v1/disbursements \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-d '{
"amount": 10000,
"currency": "XAF",
"first_name": "Jean",
"last_name": "Dupont",
"payment_method_data": {
"type": "momo",
"momo": {
"msisdn": "242066594471",
"country": "CG",
"operator_name": "mtn"
}
}
}'
Response
200 OK
When the disbursement was successfully created, the API will return a 200 OK response.
The status of the disbursement is processing because the payment is still being processed and has not been executed yet.
{
"amount" : 10000 ,
"currency" : "xaf" ,
"status" : "processing" ,
"firstName" : "Jean" ,
"lastName" : "Dupont" ,
"operatorName" : "mtn" ,
"country" : "cg" ,
"phone" : "242066594471" ,
"object" : "disbursement" ,
"type" : 1 ,
"shouldExecutedAt" : "2025-03-18T09:24:57.555Z" ,
"id" : "wt_RMqehxy8NNi1ocJFG2SSAZMj81m6spo72vnZ" ,
"createdAt" : "2025-03-17T10:24:57.559+01:00" ,
"updatedAt" : "2025-03-17T10:24:57.559+01:00"
}
Disbursement Status
Status Description processingBeing processed succeededDisbursement completed successfully failedDisbursement failed canceledDisbursement was canceled
400 Bad Request
{
"errors" : [
{
"rule" : "required" ,
"field" : "currency" ,
"message" : "required validation failed"
}
]
}
401 Unauthorized
{
"message" : "Unauthorized"
}
Disbursements are processed asynchronously. Use webhooks
to track their status in real-time.