Overview
The Rumbapay Payout API allows you to make payouts to your clients' bank accounts. This document provides instructions on how to create and manage bank transfer payouts.
How exactly Bank Transfer Payout works:
Merchant makes a request to create a bank transfer payout;
Rumbapay processes the payout, interacting with the appropriate banking provider;
Rumbapay sends a webhook to the merchant once the transaction status becomes terminal.
Base URL:
https://api.rumbapay.online/v1/
Data Format: JSON
HTTP Methods: POST, GET
Initialize Payout
Method: HTTP POST
URL: https://api.rumbapay.online/v1/payout
Request Body:
Copy {
"method": "bank_transfer_mexico",
"reference": "4wezjl1smqIEQnP",
"currency": "MXN",
"amount": 6000,
"description": "order payout",
"customer":
{
"identifier": "1234567890123456789012",
"email": "juancarlos@hotmail.com",
"phone": "+5491123456789",
"first_name": "Juan",
"last_name": "García Rodríguez",
"middle_name": "Carlos",
"country": "MX",
"state_code": "B",
"city": "Buenos Aires",
"address": "Calle Emilio Mitre 3256",
"zip_code": "C1407",
"itn": "12345678901",
"birthday": "2006-01-02",
"ip": "192.168.0.1",
"gender": "male"
},
"requisites": {
"account_number": "1000296999931",
"payout_account_type_code": "0001",
"payout_beneficiary_type_code": "person",
"beneficiary_first_name": "Darth",
"beneficiary_last_name": "Veider",
"beneficiary_email": "test@gmail.com",
"beneficiary_document_type": "CURP",
"beneficiary_document_value": "HEGG560427MVZRRL04",
"bank_name": "BANCOMEXT"
},
"lang":"es",
"redirect_url": "redirect_url",
"cancel_url": "cancel_url",
"callback_url": "callback_url",
"extra":
[
{"key_1":"value"},
{"key_2":"value"}
]
}
Response (Success):
Copy {
"identifier": "BAN000132316",
"request_id": "5cf038ba-a5a8-43e8-9419-7a2a0932068f",
"reference": "4wezjl1smqIEQnP",
"description": "order payout",
"status": {
"name": "pending",
"date": "2025-05-21T20:58:14.106"
},
"created_date": "2025-05-21T20:58:12.278",
"amount": 6000,
"currency": "MXN",
"requisites": {
"account_number": "1000296999931",
"payout_account_type_code": "0001",
"payout_beneficiary_type_code": "person",
"beneficiary_first_name": "Darth",
"beneficiary_last_name": "Veider",
"beneficiary_email": "test@gmail.com",
"beneficiary_document_type": "CURP",
"beneficiary_document_value": "HEGG560427MVZRRL04",
"bank_name": "BANCOMEXT"
},
"extra": [
{
"key": "key_1",
"value": "value"
},
{
"key": "key_2",
"value": "value"
}
],
"timestamp": "2025-05-21T20:58:14.3649706Z",
"redirect_url": "",
"error_code": 0,
"error_message": "success"
}
Response - 400 Bad request
Copy {
"error_code": 30,
"error_reason": "Invalid params",
"request_id": "15195dfe-95dd-4916-95e2-b9696cff61ba",
"error_fields": [
{
"field": "account_number",
"message": "account_number is a required field"
}
],
"timestamp": "2025-04-11T16:58:57.11Z"
}
Callback
On every completed Payout we send a callback notification to the URL you passed in the request in the callback_url field.
Callback flow
The callback flow follows these steps:
Rumbapay processes the payout request
When the payout status changes to a terminal state, Rumbapay sends an HTTP POST request to your callback URL
Your server should process the callback, validate the signature, and update your system
Your server should respond with HTTP 200 OK to acknowledge receipt
Example
Copy {
"identifier": "BAN000132316",
"request_id": "5cf038ba-a5a8-43e8-9419-7a2a0932068f",
"reference": "4wezjl1smqIEQnP",
"description": "order payout",
"status": {
"name": "pending",
"date": "2025-05-21T20:58:14.106"
},
"created_date": "2025-05-21T20:58:12.278",
"amount": 6000,
"currency": "MXN",
"requisites": {
"account_number": "1000296999931",
"payout_account_type_code": "0001",
"payout_beneficiary_type_code": "person",
"beneficiary_first_name": "Darth",
"beneficiary_last_name": "Veider",
"beneficiary_email": "test@gmail.com",
"beneficiary_document_type": "CURP",
"beneficiary_document_value": "HEGG560427MVZRRL04",
"bank_name": "BANCOMEXT"
},
"extra": [
{
"key": "key_1",
"value": "value"
},
{
"key": "key_2",
"value": "value"
}
],
"timestamp": "2025-05-21T20:58:14.3649706Z",
"redirect_url": "",
"error_code": 0,
"error_message": "success"
}
Check Payout Status
Method: HTTP GET
URL: https://api.rumbapay.online/v1/transaction/{request_id}
Response (Success):
Copy {
"identifier": "BAN000132316",
"request_id": "5cf038ba-a5a8-43e8-9419-7a2a0932068f",
"reference": "4wezjl1smqIEQnP",
"description": "order payout",
"status": {
"name": "pending",
"date": "2025-05-21T20:58:14.106"
},
"created_date": "2025-05-21T20:58:12.278",
"amount": 6000,
"currency": "MXN",
"requisites": {
"account_number": "1000296999931",
"payout_account_type_code": "0001",
"payout_beneficiary_type_code": "person",
"beneficiary_first_name": "Darth",
"beneficiary_last_name": "Veider",
"beneficiary_email": "test@gmail.com",
"beneficiary_document_type": "CURP",
"beneficiary_document_value": "HEGG560427MVZRRL04",
"bank_name": "BANCOMEXT"
},
"extra": [
{
"key": "key_1",
"value": "value"
},
{
"key": "key_2",
"value": "value"
}
],
"timestamp": "2025-05-21T20:58:14.3649706Z",
"redirect_url": "",
"error_code": 0,
"error_message": "success"
}
Response (Not Found):
Transaction not found
Copy {
"error_code": 101,
"error_reason": "Transaction not found",
"request_id": "5cf038ba-a5a8-43e8-9419-7a2a0932068f",
"timestamp": "2025-04-11T16:58:57.11Z"
}