Skip to content

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#

  1. Request: The customer enters their bank account details on your website and submits a payout request. Your application makes a POST request to the ApiPro payout endpoint to create the transaction.

  2. 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.

  3. Notification: Once the transaction reaches a terminal state (e.g., success, declined or error), ApiPro sends a callback (webhook) to your specified callback_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_number does not match the length rule of the selected bank, or bank_code is not in the supported list, the request is rejected with error_code 30 (Invalid params) or the payout is declined by the provider — check error_reason in 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"
}