Skip to main content

Use our Third-Party Payments API

1. How the API works

Our payments API solves this problem by offering a robust tool, optimized to process real-time payments and adapted to multiple business scenarios, so our clients can make their payment dispersions from their own platforms or applications.

Wompi's Third-Party Payments API facilitates the dispersion of payments to bank accounts in Colombia through the creation and management of payment batches. Users can send payments individually or in batches, using compatible files or JSON requests.

  • We have a Sandbox environment so clients can simulate payments, check responses, simulate balance top-ups for origin accounts, and validate payment reports in a test environment.
  • The API allows the use of multiple origin accounts: Wompi account, Bancolombia accounts, and accounts from other authorized banks.
  • Idempotency support has been incorporated to avoid duplicate payments.
  • Event notification via webhook.
  • Additionally, we offer a Dashboard where clients can:
    • Check transaction traceability in production.
    • View the API events debugger.
    • Download reports of processed payments.

2. Types of payments available through the API

Our payment dispersion API offers flexibility to adapt to different business needs. Through the integration, you can make the following types of payments:

Immediate payments: Allows you to execute a payment order at the moment it is requested. Ideal for operations that require real-time processing, such as payments to suppliers or disbursements to end users.

info

Keep in mind the ACH processing cycles and the origin account of the dispersion

Scheduled payments: Allows you to schedule payments to be processed on a specific future date. This functionality is useful for planning payroll payments, recurring obligations, or payments to third parties on agreed dates.

Recurring payments: Allows you to set up payments that are executed periodically (for example, weekly, biweekly, or monthly). This option is ideal for automating recurring payments such as memberships or periodic services.


Each type of payment can be easily managed through the payment order creation endpoints, defining the necessary parameters such as the scheduling type, the desired execution date, and the details of the recipients.

Note

Important: Scheduled and recurring payments will be registered in the system and executed according to the configuration established at the time of creation. See later how to configure each type of payment.

3. General integration flow

3.1. Authentication

Obtain the authentication keys (API Key and Principal User ID) from the Wompi dashboard.

See Authentication Keys

3.2. Batch Creation

  • One-to-one payment: Send a POST request to the /payouts endpoint with the transaction details in JSON format. See Create your first batch
  • Payment by file: Send a POST request to the /payouts/file endpoint attaching a file in one of the supported formats (WOMPI, SAP, PAB, DISFON, BANCO_OCCIDENTE_FC, DAVIVIENDA). See Create a batch by file

3.3. Validation of the data sent:

Wompi validates the provided data and sends it for processing.

3.4. Processing of payment batches and start of the payment process

Wompi processes the transactions sent in the batches and carries out the payment process, using the same bank or ACH according to the selected account.

3.5. Queries and events for transaction status changes

Check the status of batches and transactions using the provided endpoints to get detailed information or updates for each payment sent via webhook.

See more about Queries

See more about Events

3.6. Reports:

Consolidated reports by batches and transactions available through the API or the Wompi dashboard.

See more about Reports

4. General considerations

  • Currency: All transactions are made in Colombian pesos (COP).
  • Amounts: Amounts are handled in cents and as integers, where the last two digits correspond to the cents. E.g. 100000 is equivalent to $1,000.00
  • Authentication Keys: It is essential to obtain the authentication keys (API Key and Principal User ID) from the Wompi dashboard to interact with the API. See Authentication Keys
  • Supported file formats: When creating batches via files, the API can support and translate the following formats: Wompi Template, PAB and SAP Bancolombia, DISFON Banco de Bogotá, Banco de Occidente FC, Davivienda.
  • Limits and restrictions: There is a daily transactional limit of $1,500,000,000. This limit can be increased or decreased if the client requires it. There are restrictions on the number of daily batches that can be sent per client, which is 3,800 daily batches. However, each batch has no restrictions on the number of transactions it can contain. If you need to adjust the limits, contact support.
  • Idempotency: Implemented to avoid duplicate payments using a unique key generated by the client that expires in 24 hours.
  • Sandbox: Environment available to simulate test scenarios equivalent to the production environment.
  • Processing hours: Payments are processed during the hours established by Wompi and the banking entities. It is recommended to check these hours to ensure timely processing of transactions.

Processing hours

5. Required data for a payment

When creating a payment batch, the following data must be provided for each transaction:

  • legalIdType (String): Beneficiary's identification type (CC, NIT, CE).
  • legalId (String): Beneficiary's identification number.
  • bankId (UUID): Unique bank identifier, obtained from the /banks endpoint.
  • accountType (String): Bank account type (AHORROS, CORRIENTE).
  • accountNumber (String): Bank account number. Must contain only numbers and be different from zero.
  • name (String): Beneficiary's full name.
  • email (String): Beneficiary's email address.
  • amount (Integer): Amount to transfer in cents (for example, $10,000 COP is represented as 1000000).
  • reference (String): Unique reference for the transaction.
  • accountId (String): Origin account identifier, obtained from the /accounts endpoint.
  • paymentType (String): Payment type (PAYROLL, PROVIDERS, OTHER).

6. Types of bank accounts

The types of bank accounts supported by the API are:

  • AHORROS: Savings account.
  • CORRIENTE: Checking account.

7. Bank Codes in Colombia

To get the updated list of banks and their unique identifiers (bankId), you must query the /banks endpoint provided by Wompi.

BankCode
BANCO DE BOGOTA1001
BANCO POPULAR1002
ITAU before Corpbanca1006
BANCOLOMBIA1007
CITIBANK1009
BANCO GNB SUDAMERIS1012
BBVA COLOMBIA1013
ITAU1014
SCOTIABANK COLPATRIA S.A1019
BANCO DE OCCIDENTE1023
BANCOLDEX S.A.1031
BANCO CAJA SOCIAL BCSC SA1032
BANCO AGRARIO1040
BANCO MUNDO MUJER1047
BANCO DAVIVIENDA SA1051
BANCO AV VILLAS1052
BANCO W S.A1053
BANCAMIA S.A1059
BANCO PICHINCHA1060
BANCOOMEVA1061
BANCO FALABELLA S.A.1062
BANCO FINANDINA S.A.1063
BANCO SANTANDER DE NEGOCIOS CO1065
BANCO COOPERATIVO COOPCENTRAL1066
MIBANCO S.A.1067
BANCO SERFINANZA S.A1069
LULO BANK S.A.1070
BANCO J.P. MORGAN COLOMBIA S.A1071
FINANCIERA JURISCOOP S.A. COMP1121
COOPERATIVA FINANCIERA DE ANTI1283
JFK COOPERATIVA FINANCIERA1286
COOTRAFA COOPERATIVA FINANCIER1289
CONFIAR COOPERATIVA FINANCIERA1292
BANCO UNION S.A1303
COLTEFINANCIERA S.A1370
NEQUI1507
DAVIPLATA1551
BANCO CREDIFINANCIERA SA.1558
PIBANK1560
IRIS1637
MOVII1801
DING TECNIPAGOS SA1802
POWWI1803
Ualá1804
BANCO BTG PACTUAL1805
BOLD CF1808
NU1809
RAPPIPAY1811
COINK1812
GLOBAL661814
BANCO CONTACTAR S.A.1819

8. Bank validations

The account number must be numeric and between 6 and 20 characters.

  • The bank code must be valid and on the list of supported banks.
  • Payments to blocked or inactive accounts will be rejected.
  • The beneficiary must match the account holder in some banks.
  • Balance and daily limit validations before processing the payment.

9. Batch and Transaction Statuses

Batch statuses

Batch statusIs it a final status?Description
PENDING_APPROVALTo approveNoInitial status of the batch, which will be reviewed and approved/rejected by the approver role. Applies to payments created only from the Wompi dashboard.
PENDINGIn processNoPayment batch approved by the approver role, which is in the process of execution.
NOT_APPROVEDNot approvedNoPayment batch that has been rejected by the approver role.
REJECTEDRejectedYesPayment batch rejected due to policy non-compliance, banking errors, file errors, or account restrictions.
PARTIAL_PAYMENTPartial payNoOccurs when a payment batch contains transactions in different statuses, some already finalized and others still in process.
TOTAL_PAYMENTProcessedYesAll transactions in the batch have been managed and have a final status, either approved or rejected.

Transaction statuses:

Transaction statusIs it a final status?Description
PENDINGIn processNoThe transaction is in progress or pending to be applied to the beneficiary's account.
APPROVEDPaidYesThe transaction was successfully applied to the beneficiary's account.
CANCELLEDCancelledYesThe transaction was not processed and must be reloaded. Generated when the approver rejects the payment.
FAILEDRejectedYesThe transaction was not credited to the beneficiary due to incorrect information or restrictions on the destination account.

10. Most common rejection reasons

CodeDescriptionStatus
D02Bank does not existFAILED
D04Invalid transaction typeFAILED
D06Payment office not numericFAILED
D07Account number does not existFAILED
D09Reference code not numericFAILED
D10Account not authorized for creditFAILED
D11Account and Nit do not matchFAILED
D12Provider Nit not registered for paymentsFAILED
D14Wrong value in non-monetary transactionFAILED
D15Check or cash payment not allowedFAILED
D18Nit not numericFAILED
D19Insufficient fundsFAILED
D21Beneficiary name missingFAILED
D24Value 0 in destinationFAILED
D25Nit in zerosFAILED
D29Payer Nit not registered for card servicesFAILED
D30Invalid transaction for payment typeFAILED
D31Cancelled pension account statusFAILED
D32Bank code not numericFAILED
D33Bank code in zerosFAILED
D34Account number not numericFAILED
D35Invalid application dateFAILED
D37Invalid officeFAILED
D39Invalid identification typeFAILED
D40Office not authorized for transactionFAILED
D41Payment without authorized IDFAILED
D44Pensioner not registered for the entityFAILED
D45Pension account not registered for paying entityFAILED
D49Bank code not allowedFAILED