Payout / Alternative payment methods / Bolivia
Bank Transfer#
POST https://payments.apipro.io/v2/payout
The ApiPro Payout API allows you to send funds to your customers' bank accounts in Bolivia. This document provides instructions on how to create and manage these bank transfer payouts.
| Parameter | Value |
|---|---|
| Country | Bolivia (BO) |
| Payment method | Bank Transfer |
| Transaction type | Payout |
| Currency | BOB (Boliviano) |
API method value |
bank_transfer_bolivia |
| Availability | Bank: 24/7 · ApiPro support: 24/7 |
Fast and secure payouts directly to local bank accounts in Bolivia, available 24/7. The method can potentially reach approximately 68% of the country's adult population with access to a financial account.
How Bank Transfer Payouts Work#
-
Request: The customer enters their bank account details on your website and submits a payout request. Your application makes a
POSTrequest to the ApiPro payout endpoint to create the transaction. -
Processing: ApiPro validates the request, reserves the amount on your payout balance and sends the payout to the corresponding banking provider in Bolivia. The funds are transferred directly to the specified bank account.
-
Notification: Once the transaction reaches a terminal state (e.g.,
success,declinedorerror), ApiPro sends a callback (webhook) to your specifiedcallback_url. You can also poll the Check status endpoint at any time.
Request fields#
The standard payout fields (method, reference, currency, amount, description, customer, callback_url, extra) are annotated in the request example above. currency must be BOB and customer.country must be BO.
Bolivia payouts additionally require the bank_transfer_bolivia object with the beneficiary's bank details:
| Field | Required | Description | Validation |
|---|---|---|---|
bank_code |
Yes | Code of the beneficiary's bank | Must be one of the codes from the Supported Banks list below |
account_number |
Yes | Beneficiary's bank account number | Digits only (0-9). Length depends on the selected bank: 10 digits for Banco Mercantil Santa Cruz (1) and Banco Nacional de Bolivia (2), 14 digits for Banco Unión (6), up to 15 digits for all other banks. Example: 0012345678 |
account_type |
Yes | Type of the beneficiary's bank account | SAVINGS or CHECKING |
account_number_alias |
No | Free-text alias of the account, for your own reference | Up to 255 characters |
beneficiary_first_name |
Yes | Beneficiary's first name | Letters, spaces, ' and -; 3–120 characters |
beneficiary_last_name |
Yes | Beneficiary's last name | Letters, spaces, ' and -; 3–120 characters |
beneficiary_email |
No | Beneficiary's e-mail address | Valid e-mail |
beneficiary_phone |
No | Beneficiary's phone number | International format with the 591 country code, digits only, e.g. 59170123456 |
beneficiary_document_type |
No | Type of the beneficiary's identity document | CI (Cédula de Identidad) or NIT (Número de Identificación Tributaria) |
beneficiary_document_value |
No | Number of the beneficiary's identity document | Digits/letters as printed on the document, e.g. 12345678 |
ℹ️ Info If
account_numberdoes not match the length rule of the selected bank, orbank_codeis not in the supported list, the request is rejected witherror_code30(Invalid params) or the payout is declined by the provider — checkerror_reasonin the response/callback.
Supported Banks (bank_transfer_bolivia.bank_code)#
Pass the ApiPro bank_code from this list. It is mapped to the provider-specific bank code automatically.
bank_code |
Bank Name |
|---|---|
1 |
Banco Mercantil Santa Cruz S.A. |
2 |
Banco Nacional de Bolivia S.A. |
3 |
Banco de Crédito de Bolivia S.A. |
5 |
Banco Bisa S.A. |
6 |
Banco Unión S.A. |
7 |
Banco Económico S.A. |
8 |
Banco Solidario S.A. |
9 |
Banco Ganadero S.A. |
22 |
Cooperativa de Ahorro y Crédito Abierta “Jesús Nazareno” R.L. |
45 |
Banco para el Fomento a Iniciativas Económicas S.A. |
47 |
Banco PYME Ecofuturo S.A. |
49 |
Banco Fortaleza S.A. |
52 |
Banco de la Nación Argentina |
53 |
Tigo Money (billetera móvil) |
200 |
Banco Central de Bolivia — Compra de Bonos |
201 |
Banco Central de Bolivia — MLD |
202 |
Banco PYME Los Andes ProCredit S.A. |
203 |
Banco PYME de la Comunidad S.A. |
204 |
Banco de Desarrollo Productivo S.A.M. |
205 |
El Progreso Entidad Financiera de Vivienda |
206 |
La Primera Entidad Financiera de Vivienda |
207 |
La Promotora Entidad Financiera de Vivienda |
300 |
Cooperativa de Ahorro y Crédito Abierta “Asunción” R.L. |
301 |
Cooperativa de Ahorro y Crédito Abierta “CACEF” R.L. |
302 |
Cooperativa de Ahorro y Crédito Abierta “Catedral de Tarija” R.L. |
303 |
Cooperativa de Ahorro y Crédito Abierta “Catedral” R.L. |
304 |
Cooperativa de Ahorro y Crédito Abierta “Comarapa” R.L. |
305 |
Cooperativa de Ahorro y Crédito Abierta “Educadores Gran Chaco” R.L. |
306 |
Cooperativa de Ahorro y Crédito Abierta “El Chorolque” R.L. |
307 |
Cooperativa de Ahorro y Crédito Abierta “Fátima” R.L. |
308 |
Cooperativa de Ahorro y Crédito Abierta “Inca Huasi” R.L. |
309 |
Cooperativa de Ahorro y Crédito Abierta “La Merced” R.L. |
310 |
Cooperativa de Ahorro y Crédito Abierta “La Sagrada Familia” R.L. |
311 |
Cooperativa de Ahorro y Crédito Abierta “Loyola” R.L. |
312 |
Cooperativa de Ahorro y Crédito Abierta “Madre y Maestra” R.L. |
313 |
Cooperativa de Ahorro y Crédito Abierta “Magisterio Rural de Chuquisaca” R.L. |
314 |
Cooperativa de Ahorro y Crédito Abierta “Magisterio Rural” R.L. |
315 |
Cooperativa de Ahorro y Crédito Abierta “Monseñor Félix Gainza” R.L. |
316 |
Cooperativa de Ahorro y Crédito Abierta “Progreso” R.L. |
317 |
Cooperativa de Ahorro y Crédito Abierta “Pío” X R.L. |
318 |
Cooperativa de Ahorro y Crédito Abierta “Quillacollo” R.L. |
319 |
Cooperativa de Ahorro y Crédito Abierta “San Antonio” R.L. |
320 |
Cooperativa de Ahorro y Crédito Abierta “San Carlos Borromeo” R.L. |
321 |
Cooperativa de Ahorro y Crédito Abierta “San Joaquín” R.L. |
322 |
Cooperativa de Ahorro y Crédito Abierta “San José de Bermejo” R.L. |
323 |
Cooperativa de Ahorro y Crédito Abierta “San José de Punata” R.L. |
324 |
Cooperativa de Ahorro y Crédito Abierta “San Martín de Porres” R.L. |
325 |
Cooperativa de Ahorro y Crédito Abierta “San Mateo” R.L. |
326 |
Cooperativa de Ahorro y Crédito Abierta “San Pedro” R.L. |
327 |
Cooperativa de Ahorro y Crédito Abierta “San Roque” R.L. |
328 |
Cooperativa de Ahorro y Crédito Societaria “San Martín” R.L. |
400 |
Institución Financiera de Desarrollo CIDRE IFD |
401 |
Institución Financiera de Desarrollo CRECER IFD |
402 |
Institución Financiera de Desarrollo DIACONÍA FRIF - IFD |
403 |
Institución Financiera de Desarrollo FONDECO IFD |
404 |
Institución Financiera de Desarrollo FUBODE IFD |
405 |
Institución Financiera de Desarrollo Fundación PRO MUJER IFD |
406 |
Institución Financiera de Desarrollo IDEPRO IFD |
407 |
Institución Financiera de Desarrollo IMPRO IFD |
900 |
Administradora de Tarjetas de Crédito S.A. (ATC) |
901 |
E-fectivo ESPM S.A. |
902 |
Linkser S.A. |
903 |
Panamerican SAFI S.A. |
904 |
YOLO Pago (billetera móvil) |
990 |
Yape (billetera móvil) |
ℹ️ Info Availability of a particular bank may depend on the routing configured for your project. If the selected bank is not supported by the routing provider, the transaction is declined.
Transaction Statuses#
The create-payout response normally returns status: "pending"; the final status is delivered in the callback and is available through the Check status endpoint.
| Status | Meaning | Recommended action |
|---|---|---|
pending |
Payout accepted and is being processed by the bank | Wait for the callback or poll the Check status endpoint |
success |
Funds have been credited to the beneficiary's account (final) | Mark the payout as completed |
declined |
Payout rejected by the provider or the bank (final) | Check error_reason, verify the account details and create a new payout with a new reference |
error |
Processing error on the provider side (final) | Check error_reason; retry with a new reference or contact support |
Status flow: pending → success | declined | error. A final status never changes.
Common Errors#
error_code |
error_reason |
Cause |
|---|---|---|
30 |
Invalid params | A field has an invalid format (e.g. account number length, unknown bank_code, account_type other than SAVINGS/CHECKING) |
31 |
Required fields are missing: … | A required field or the whole bank_transfer_bolivia object is absent |
31 |
Invalid currency | currency is not BOB or BOB payouts are not enabled for your project |
1054 |
Invalid method / Invalid type | bank_transfer_bolivia payouts are not enabled for your project |
108 |
Duplicated reference | A payout with the same reference already exists |
1 |
Insufficient funds on account | Your payout balance is lower than amount |
1132 |
Limit exceeded | amount is outside the limits configured for your project |
1 |
Payment transaction timeout after 30 seconds | The provider did not respond in time — do not treat as a failure; use the Check status endpoint or wait for the callback |
200 |
Communication error / Transaction processing error | Temporary provider error — check the final status via callback or Check status |
See the Responses tab for the full list of error responses with examples.
Headers#
| Header | Value |
|---|---|
Content-Type |
application/json |
Authorization |
{{authorization}} |
Digest |
{{digest}} |
Host |
{{host}} |
Date |
{{date}} |
See Authentication & Signature for how to build the signed headers.
Request body#
Annotations in the example are the field requirements: required, optional or conditional. Comments are stripped automatically by the Postman collection before signing; remove them in your own requests.
{
"method": "bank_transfer_bolivia", // required, snake_case / lower case only: "bank_transfer_bolivia" (not "BANK_TRANSFER_BOLIVIA" or "BankTransferBolivia")
"reference": "BoliviaBTPayoutTest(1)", // required, unique
"currency": "BOB", // required, only BOB is supported
"amount": 15, // required
"description": "order payout", // optional
"customer": // required
{
"identifier": "1234567890123456789012", // required, any unique value from the merchant's system may be used.
"email": "user@example.com", // optional
"phone": "59170123456", // optional
"first_name": "Juan", // optional
"last_name": "Perez", // optional
"middle_name": "", // optional
"country": "BO", // required, Bolivia (ISO 3166-1 country code for Bolivia)
"state_code": "L", // optional, La Paz (ISO 3166-2:BO department code)
"city": "La Paz", // optional
"address": "Av. Mariscal Santa Cruz 1234", // optional
"zip_code": "0000", // optional
"itn": "1234567890", // optional, CI (Cédula de Identidad) / NIT (Número de Identificación Tributaria, Bolivian tax identification number)
"birthday": "2006-01-02", // optional
"ip": "192.168.0.1", // optional
"gender": "male" // optional
},
"bank_transfer_bolivia": { // required
"bank_code": "6", // required, ApiPro bank code from the Supported Banks list (6 = Banco Unión S.A.)
"account_number": "10000296999931", // required, digits only; length depends on the bank (see Request fields)
"account_number_alias": "Main account", // optional
"account_type": "SAVINGS", // required, SAVINGS or CHECKING
"beneficiary_first_name": "Juan", // required
"beneficiary_last_name": "Perez", // required
"beneficiary_email": "user@example.com", // optional
"beneficiary_phone": "59170123456", // optional
"beneficiary_document_type": "CI", // optional, CI (Cédula de Identidad) or NIT
"beneficiary_document_value": "12345678" // optional
},
"callback_url": "callback_url", // conditional
"extra": { // optional, any field which may be needed for transaction routing and integration
"meta": {
"key": "value"
}
}
}
Fields#
| Field | Type | Requirement / note |
|---|---|---|
method |
string | required, snake_case / lower case only: "bank_transfer_bolivia" (not "BANK_TRANSFER_BOLIVIA" or "BankTransferBolivia") |
reference |
string | required, unique |
currency |
string | required, only BOB is supported |
amount |
integer | required |
description |
string | optional |
customer |
object | required |
customer.identifier |
string | required, any unique value from the merchant's system may be used. |
customer.email |
string | optional |
customer.phone |
string | optional |
customer.first_name |
string | optional |
customer.last_name |
string | optional |
customer.middle_name |
string | optional |
customer.country |
string | required, Bolivia (ISO 3166-1 country code for Bolivia) |
customer.state_code |
string | optional, La Paz (ISO 3166-2:BO department code) |
customer.city |
string | optional |
customer.address |
string | optional |
customer.zip_code |
string | optional |
customer.itn |
string | optional, CI (Cédula de Identidad) / NIT (Número de Identificación Tributaria, Bolivian tax identification number) |
customer.birthday |
string | optional |
customer.ip |
string | optional |
customer.gender |
string | optional |
bank_transfer_bolivia |
object | required |
bank_transfer_bolivia.bank_code |
string | required, ApiPro bank code from the Supported Banks list (6 = Banco Unión S.A.) |
bank_transfer_bolivia.account_number |
string | required, digits only; length depends on the bank (see Request fields) |
bank_transfer_bolivia.account_number_alias |
string | optional |
bank_transfer_bolivia.account_type |
string | required, SAVINGS or CHECKING |
bank_transfer_bolivia.beneficiary_first_name |
string | required |
bank_transfer_bolivia.beneficiary_last_name |
string | required |
bank_transfer_bolivia.beneficiary_email |
string | optional |
bank_transfer_bolivia.beneficiary_phone |
string | optional |
bank_transfer_bolivia.beneficiary_document_type |
string | optional, CI (Cédula de Identidad) or NIT |
bank_transfer_bolivia.beneficiary_document_value |
string | optional |
callback_url |
string | conditional |
extra |
object | optional, any field which may be needed for transaction routing and integration |
extra.meta |
object | |
extra.meta.key |
string |
Responses#
Response Examples
Card can only be used with specific methods. Check documentation
{
"error_code": 30,
"error_reason": "Invalid params",
"description": "Card can only be used with specific methods. Check documentation",
"request_id": "YOUR_REFERENCE",
"status": "error",
"timestamp": "2025-10-26T14:05:00.00Z"
}
Customer is blocked
{
"error_code": 451,
"error_reason": "General risk decline",
"description": "Customer is blocked",
"request_id": "YOUR_REFERENCE",
"status": "error",
"timestamp": "2025-10-26T14:06:00.00Z"
}
Customer is blocked for all merchant projects
{
"error_code": 451,
"error_reason": "General risk decline",
"description": "Customer is blocked for all merchant projects",
"request_id": "YOUR_REFERENCE",
"status": "error",
"timestamp": "2025-10-26T14:08:02.00Z"
}
Customer is blocked for the specified project
{
"error_code": 451,
"error_reason": "General risk decline",
"description": "Customer is blocked for the specified project",
"request_id": "YOUR_REFERENCE",
"status": "error",
"timestamp": "2025-10-26T14:08:04.00Z"
}
Customer is blocked system-wide
{
"error_code": 451,
"error_reason": "General risk decline",
"description": "Customer is blocked system-wide",
"request_id": "YOUR_REFERENCE",
"status": "error",
"timestamp": "2025-10-26T14:08:06.00Z"
}
Customer is globally locked
{
"error_code": 451,
"error_reason": "General risk decline",
"description": "Customer is globally locked",
"request_id": "YOUR_REFERENCE",
"status": "error",
"timestamp": "2025-10-26T14:08:08.00Z"
}
Resource not found
{
"error_code": 35,
"error_reason": "Resource not found",
"description": "The requested resource is undefined",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:15:00.00Z"
}
Routing failed
{
"error_code": 121,
"error_reason": "Routing failed",
"timestamp": "2025-10-02T14:17:00.00Z"
}
Unknown routing error
{
"error_code": 1,
"error_reason": "Unknown routing error",
"timestamp": "2025-10-02T14:17:00.00Z"
}
Routing service error: Value cannot be null. (Parameter 'data')
{
"error_code": 1,
"error_reason": "Routing service error: Value cannot be null. (Parameter 'data')",
"timestamp": "2025-10-02T14:17:00.00Z"
}
Routing request timeout
{
"error_code": 2,
"error_reason": "Routing request timeout",
"timestamp": "2025-10-02T14:17:00.00Z"
}
Required fields are missing: method, reference, amount, currency
{
"error_code": 31,
"error_reason": "Required fields are missing: method, reference, amount, currency",
"timestamp": "2025-10-02T14:16:00.00Z"
}
Routing service error: Endpoint type cannot be null or empty
{
"error_code": 1,
"error_reason": "Routing service error: Endpoint type cannot be null or empty",
"timestamp": "2025-10-02T14:17:00.00Z"
}
Routing service error
{
"error_code": 1,
"error_reason": "Routing service error",
"timestamp": "2025-10-02T14:17:00.00Z"
}
Payment transaction timeout after seconds
{
"error_code": 1,
"error_reason": "Payment transaction timeout after 30 seconds",
"timestamp": "2025-10-02T14:17:00.00Z"
}
Internal error: Mid {MidId} no longer exists in configuration
{
"error_code": 1,
"error_reason": "Internal error: Mid {MidId} no longer exists in configuration",
"timestamp": "2025-10-02T14:17:00.00Z"
}
Internal error: Value cannot be null. (Parameter 'tcs')
{
"error_code": 1,
"error_reason": "Internal error: Value cannot be null. (Parameter 'tcs')",
"timestamp": "2025-10-02T14:17:00.00Z"
}
Payment transaction was cancelled
{
"error_code": 1,
"error_reason": "Payment transaction was cancelled",
"timestamp": "2025-10-02T14:17:00.00Z"
}
Error while trying to process filling data
{
"error_code": 200,
"error_reason": "Error while trying to process filling data",
"request_id": null,
"reference": "value_from_data_reference",
"timestamp": "2025-10-02T14:18:00.00Z"
}
Invalid method challenge configuration. Please reconfigure method challenge type settings
{
"error_code": 121,
"error_reason": "Invalid method challenge configuration. Please reconfigure method challenge type settings",
"timestamp": "2025-10-02T14:19:00.00Z"
}
There is more than one challenge setting for a method. Please reconfigure method challenge type settings
{
"error_code": 121,
"error_reason": "There is more than one challenge setting for a method. Please reconfigure method challenge type settings",
"timestamp": "2025-10-02T14:20:00.00Z"
}
MID not found in cache while getting currency rate
{
"error_code": 35,
"error_reason": "Resource not found",
"description": "MID not found in cache while getting currency rate",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:21:00.00Z"
}
Transaction processing error: error while getting currency rate
{
"error_code": 200,
"error_reason": "Transaction processing error",
"description": "Unexpected error while getting currency rate",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:22:00.00Z"
}
Transaction processing error: error with payment configurations during calculation
{
"error_code": 200,
"error_reason": "Transaction processing error",
"description": "Error with payment configurations during calculation",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:23:00.00Z"
}
Exceeded amount limits for project
{
"error_code": 1132,
"error_reason": "Limit exceeded",
"description": "Amount is outside the allowed project limits",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:24:00.00Z"
}
Exceeded amount limits for MID
{
"error_code": 1132,
"error_reason": "Limit exceeded",
"description": "Amount is outside the allowed MID limits",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:24:00.00Z"
}
Transaction processing error: error while getting withdrawal rates
{
"error_code": 200,
"error_reason": "Transaction processing error",
"description": "Unexpected error while getting withdrawal rates",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:24:00.00Z"
}
Invalid params: transactions constraints were violated
{
"error_code": 30,
"error_reason": "Invalid params",
"description": "Transaction contraints were violated",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:26:00.00Z"
}
Failed to create transaction for unfamiliar reason
{
"error_code": 200,
"error_reason": "Transaction processing error",
"description": "Failed to create transaction",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:27:00.00Z"
}
Account payout has negative balance after update
{
"error_code": 1,
"error_reason": "Insufficient funds on account",
"description": "Account payout has negative balance after update",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:28:00.00Z"
}
Error with wallet
{
"error_code": 200,
"error_reason": "Transaction processing error",
"description": "Error with wallet",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:29:00.00Z"
}
Mid is disabled
{
"error_code": 32,
"error_reason": "Invalid MID",
"description": "Mid is disabled",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:30:00.00Z"
}
Blocked routing for transaction: Invalid currency
{
"error_code": 31,
"error_reason": "Invalid currency",
"description": "Blocked routing for transaction: Invalid currency",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:31:00.00Z"
}
Blocked routing for transaction: Invalid method
{
"error_code": 1054,
"error_reason": "Invalid method",
"description": "Blocked routing for transaction: Invalid method",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:32:00.00Z"
}
Blocked routing for transaction: Invalid payment type
{
"error_code": 1054,
"error_reason": "Invalid type",
"description": "Blocked routing for transaction: Invalid payment type",
"request_id": "value_from_data_reference",
"status": "error",
"timestamp": "2025-10-02T14:33:00.00Z"
}
Requisites - Invalid JSON format
{
"error_code": 31,
"error_reason": "Required fields are missing: requisites - invalid JSON format",
"timestamp": "2025-10-02T14:34:00.00Z"
}
Mid configuration error
{
"error_code": 200,
"error_reason": "Mid configuration error",
"request_id": null,
"reference": "value_from_data_reference",
"timestamp": "2025-10-02T14:35:00.00Z"
}
Mid request timeout
{
"error_code": 200,
"error_reason": "Mid request timeout",
"request_id": null,
"reference": "value_from_data_reference",
"timestamp": "2025-10-02T14:36:00.00Z"
}
Communication error
{
"error_code": 200,
"error_reason": "Communication error",
"request_id": null,
"reference": "value_from_data_reference",
"timestamp": "2025-10-02T14:36:00.00Z"
}
Invalid adapter response format
{
"error_code": 200,
"error_reason": "Invalid adapter response format",
"request_id": null,
"reference": "value_from_data_reference",
"timestamp": "2025-10-02T14:37:00.00Z"
}
Failed to register card transaction
{
"error_code": 200,
"error_reason": "Failed to register card transaction",
"request_id": null,
"reference": "value_from_data_reference",
"timestamp": "2025-10-02T14:48:00.00Z"
}
Failed to register cascade transaction
{
"error_code": 200,
"error_reason": "Failed to register cascade transaction",
"request_id": null,
"reference": "value_from_data_reference",
"timestamp": "2025-10-02T14:48:00.00Z"
}
Mid with ID '[MidId]' not found
{
"error_code": 200,
"error_reason": "Mid with ID '[MidId]' not found",
"request_id": null,
"reference": "value_from_data_reference",
"timestamp": "2025-10-02T14:49:00.00Z"
}
Mid [MidName] ([MidId]) is not active
{
"error_code": 200,
"error_reason": "Mid [MidName] ([MidId]) is not active",
"request_id": null,
"reference": "value_from_data_reference",
"timestamp": "2025-10-02T14:49:00.00Z"
}
Mid [MidId] no longer exists in configuration
{
"error_code": 200,
"error_reason": "Mid [MidId] no longer exists in configuration",
"request_id": null,
"reference": "value_from_data_reference",
"timestamp": "2025-10-02T14:49:00.00Z"
}
Some unexpected error occured
{
"error_code": 200,
"error_reason": "<Some unexpected error message>",
"request_id": null,
"reference": "value_from_data_reference",
"timestamp": "2025-10-02T14:49:00.00Z"
}
Request cannot be null
{
"code": 0,
"reason": "",
"error_code": 1,
"error_reason": "Request cannot be null",
"request_id": "",
"reference": "",
"status": "error",
"timestamp": "2025-09-29T11:52:39.25Z",
"description": ""
}
Flow cache limit exceeded
{
"code": 0,
"reason": "",
"error_code": 1,
"error_reason": "Flow cache limit exceeded",
"request_id": "",
"reference": "",
"status": "error",
"timestamp": "2025-09-29T11:52:39.25Z",
"description": ""
}
Flow configuration not found for project: {projectId}
{
"code": 0,
"reason": "",
"error_code": 1,
"error_reason": "Flow configuration not found for project: {projectId}",
"request_id": "",
"reference": "",
"status": "error",
"timestamp": "2025-09-29T11:52:39.25Z",
"description": ""
}
Invalid flow configuration
{
"code": 0,
"reason": "",
"error_code": 1,
"error_reason": "Invalid flow configuration",
"request_id": "",
"reference": "",
"status": "error",
"timestamp": "2025-09-29T11:52:39.25Z",
"description": ""
}
Flow execution failed: some unexpected error
{
"code": 0,
"reason": "",
"error_code": 1,
"error_reason": "Flow execution failed:",
"request_id": "",
"reference": "",
"status": "error",
"timestamp": "2025-09-29T11:52:39.25Z",
"description": ""
}
Node not found: {NodeIdentifier}
{
"code": 0,
"reason": "",
"error_code": 1,
"error_reason": "Node not found: {NodeIdentifier}",
"request_id": "",
"reference": "",
"status": "error",
"timestamp": "2025-09-29T11:52:39.25Z",
"description": ""
}
Flow execution limit exceeded
{
"code": 0,
"reason": "",
"error_code": 1,
"error_reason": "Flow execution limit exceeded",
"request_id": "",
"reference": "",
"status": "error",
"timestamp": "2025-09-29T11:52:39.25Z",
"description": ""
}
Flow ended without result
{
"code": 0,
"reason": "",
"error_code": 1,
"error_reason": "Flow ended without result",
"request_id": "",
"reference": "",
"status": "error",
"timestamp": "2025-09-29T11:52:39.25Z",
"description": ""
}
'bank_transfer_bolivia' missing field
{
"error_code": 31,
"error_reason": "Required fields are missing: bank_transfer_bolivia",
"timestamp": "2026-09-15T14:25:00.00Z"
}
Duplicated reference
{
"error_code": 108,
"error_reason": "Duplicated reference",
"request_id": "3829f5bd-6dcb-41f9-a4ba-3ff8b65a3cfc",
"reference": "",
"timestamp": "2025-11-10T08:47:22.81Z"
}
Succesful transaction
{
"error_code": 0,
"error_reason": "",
"identifier": "PO00000000CML8A",
"request_id": "65578e53-ee92-47f4-9202-c4c5c9572449",
"reference": "BoliviaBTPayoutTest(1)",
"status": "pending",
"type": "payout",
"method": "bank_transfer_bolivia",
"mode": "initial",
"currency": "BOB",
"amount": "15.00",
"timestamp": "2026-09-15T14:13:19.0806904Z"
}
Invalid Authorization header format
{
"error_code": 31,
"error_reason": "Invalid Authorization header format",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Invalid Signature format
{
"error_code": 31,
"error_reason": "Invalid signature format",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Unsupported algorithm
{
"error_code": 31,
"error_reason": "Unsupported algorithm",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Invalid API key
{
"error_code": 31,
"error_reason": "Invalid API key",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Invalid date format
{
"error_code": 31,
"error_reason": "Invalid date format",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Date is outdated or invalid
{
"error_code": 31,
"error_reason": "Date is outdated or invalid",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Missing Digest header
{
"error_code": 31,
"error_reason": "Invalid digest",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Invalid digest
{
"error_code": 31,
"error_reason": "Missing Digest header",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Invalid signature
{
"error_code": 31,
"error_reason": "Invalid signature",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Invalid headers specification
{
"error_code": 31,
"error_reason": "Invalid headers specification",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Request timestamp has already been used
{
"error_code": 31,
"error_reason": "Request timestamp has already been used",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Missing required authentication headers
{
"error_code": 31,
"error_reason": "Missing required authentication headers",
"timestamp": "2025-10-26T14:04:00.00Z"
}
Missing Authorization header
{
"error_code": 31,
"error_reason": "Missing Authorization header",
"timestamp": "2025-10-26T16:01:00.00Z"
}
Missing Date header
{
"error_code": 31,
"error_reason": "Missing Date header",
"timestamp": "2025-10-26T16:06:00.00Z"
}
Processing error:
{
"error_code": 210,
"error_reason": "Processing error:",
"description": "Processing error:",
"request_id": "your_transaction_reference",
"status": "error",
"timestamp": "2025-10-26T12:03:00.000Z"
}
Callback Notifications
The system sends an HTTP callback to the callback_url of your request when a transaction reaches a final state. Always verify the callback signature; see Callback Verification.
Callback Payload
Callback request
{
"identifier": "PO00000000CML8A",
"creation_date": "2026-09-15T14:25:05.123456",
"request_id": "65578e53-ee92-47f4-9202-c4c5c9572449",
"reference": "BoliviaBTPayoutTest(1)",
"method": "bank_transfer_bolivia",
"type": "payout",
"mode": "initial",
"status": "success",
"status_date": "2026-09-15T14:25:07.654321",
"bank_transfer": {
"account_number": "10000296999931",
"account_number_alias": "Main account",
"account_type": "SAVINGS",
"bank_code": "6",
"beneficiary_first_name": "Juan",
"beneficiary_last_name": "Perez",
"beneficiary_email": "user@example.com",
"beneficiary_phone": "59170123456",
"beneficiary_document_type": "CI",
"beneficiary_document_value": "12345678"
},
"customer": {
"identifier": "1234567890123456789012",
"email": "user@example.com",
"phone": "59170123456",
"first_name": "Juan",
"last_name": "Perez",
"country": "BO",
"state_code": "L",
"city": "La Paz",
"address": "Av. Mariscal Santa Cruz 1234",
"zip_code": "0000",
"itn": "1234567890",
"birthday": "2006-01-02",
"ip": "192.168.0.1"
},
"amount": "15.00",
"currency": "BOB",
"billing_amount": "15.00",
"billing_currency": "BOB",
"fee_amount": "3.75",
"fee_currency": "BOB",
"error_code": 0,
"error_reason": "",
"timestamp": "2026-09-15T14:25:09.789012"
}