Bank Transfers

This is how bank transfers work in Mono

A bank transfer in Mono is like sending a package from one place to another, but with money. Is a financial transaction in which funds are moved from one bank account to another.

Bank transfers are commonly used to pay invoices, transfer money between accounts, make payroll payments or send money to others. They can be made between accounts at the same bank or at different banks.

With Mono, you can create bank transfers through API, upload an Excel file through the Mono Dashboard, or by manually filling a form.

Currently, we only support bank transfer within the Colombian banking network.

Routing

Mono supports two types of bank transfers, each with different behaviors, pros, and cons. To provide a high-level understanding, the following diagram illustrates how money moves depending on the bank transfer routing:

Bank transfer possible rails

Turbo-transferencias®

📘

Note

This feature is ready to use in Sandbox environment and coming soon in Production environment.

A Turbo-transferencia® is a real-time bank transfer from your Mono account to any individual’s account opened in the following banks:

  • Bancolombia
  • Nequi
  • Davivienda
  • Daviplata
  • Banco AV Villas
  • Banco de Bogotá
  • Bancolombia ahorro a la mano
  • Movii
  • Dale!

You can initiate a turbo bank transfer using the Create bank transfer endpoint by adding turbo in the routing field.

Once you initiate a turbo, you should expect a webhook response, notifying you if the bank transfer was successfully credited to the payee's account.

This routing of bank transfer operates on the new ACH Colombia rails, and its acceptance is expected to increase over time. There may be cases where a turbo bank transfer fails to send successfully because the payee's account does not yet support this type of transaction. (See below for fallback attempts)

ACH

ACH Colombia and ACH CENIT are clearing houses that manage the interoperability of Colombian banks, enabling communication and settlement between them. When you create a bank transfer by selecting ACH in the routing field, the money will be deducted from your account and sent to the payee through ACH Colombia or ACH CENIT cycles, which are not instantaneous. Whether the bank transfer goes through ACH Colombia or ACH CENIT depends on the destination account's bank. Most transactions will go through ACH Colombia, except for some banks listed below that use ACH CENIT.

ACH Colombia transaction speed

ACH transactions in Colombia are not conducted in real-time. They can take a few hours or up to 1 business day to be credited to the destination account, and even longer to receive confirmation.

With our friends at Shinkansen, we have created the following table to help you understand the ACH cycles, when the money is expected to be received in the destination account, and when we will send you a transaction confirmation or rejection:

Transaction timeMoney accreditedImplicit response
From 00:00 and before 08:2810:20 to 11:00Next business day between 15:10 to 15:45
From 08:28 and before 10:5812:45 to 13:00Next business day between 15:10 to 15:45
From 10:58 and before 12:4315:15 to 16:00Next business day between 15:10 to 15:45
From 12:43 and before 15:3817:10 to 18:00Next business day between 15:10 to 15:45
From 15:38 to the next dayNext business day between 10:20 to 11:00Subsequent business day between 15:10 to 15:45

ACH CENIT transaction speed

Transaction timeMoney accreditedImplicit response
From 00:00 and before 09:5810:30 to 11:00Next business day between 15:10 to 15:45
From 09:58 and before 12:2813:00 to 13:30Next business day between 15:10 to 15:45
From 12:28 and before 14:2815:00 to 15:45Next business day between 15:10 to 15:45
From 14:28 and before 15:4317:00 to 18:00Next business day between 15:10 to 15:45
From 15:43 to the next dayNext business day between 10:30 to 11:00Subsequent business day between 15:10 to 15:45

These are the banks that operate through ACH CENIT:

  • BANCO FALABELLA
  • BANCO FINANDINA
  • BANCO GNB SUDAMERIS
  • BANCO MUNDO MUJER
  • BANCO PROCREDIT
  • BANCO SANTANDER DE NEGOCIOS
  • BBVA
  • CFA FINANCIERA ANTIOQUIA
  • COOFINEP
  • BANCOOMEVA
  • COTRAFA ENTIDAD FINANCIERA
  • FINANCIERA JURISCOOP
  • J.P. MORGAN COLOMBIA
  • MIBANCO

Fallback attempts

Considering that Turbo bank transfers are not fully adopted by all accounts in Colombia, you might encounter cases where the transaction is rejected. To address this issue, we have implemented fallback attempts that automatically retry the transaction using alternative routes.

To use these fallbacks attempts in the API requests, you can use the field fallback_routing and set with the corresponding value.

Turbo to ACH

If a Turbo bank transfer is rejected, we will automatically attempt to make an ACH bank transfer. This means that if a Turbo bank transfer fails, allow Mono to automatically redirect the transaction using ACH rails.

Turbo (not fallback)

Also, you can set up to do nothing in case that the Turbo bank transfer fails.

Bank transfer states

Bank transfers can have the following states:

  • created: Indicates that the transfer has been created in our system, but it has not yet been sent to the bank for processing.

  • in_progress: Indicates that the transfer is currently being processed by the bank. This includes steps such as verifying the account information, transferring the funds between accounts, and updating the account balances. This state occurs when the bank is working on executing the transfer, but it has not yet been completed.

  • approved: Indicates that the transfer has been approved by the bank and has been successfully executed. This means that the funds have been transferred from the source account to the destination account, and the account balances have been updated accordingly.

  • declined: Indicates that the transfer has been rejected by the bank and will not be executed. This may occur due to a variety of reasons, such as insufficient funds in the source account, invalid account information, or regulatory restrictions. These reasons are stored on the field declination_reason. To simulate declined transfers, please go to the sandbox section

  • cancelled: Indicates that the transfer has been canceled by a user. This occurs if the client decides to cancel the transfer before it has been sent to the bank.

  • duplicated: Indicates that the transfer has already been received in our system, and the repeated record will not be considered. This could be because the transfer was sent multiple times with the same "entity_id" field.

Bank transfers batch

A batch is a group of bank transfers that are processed together at the same time.

Bank transfers batches are useful in a number of situations, such as when making payroll payments to multiple employees, when transferring funds between multiple accounts, or when making regular payments to the same recipient. Bank transfers batches can save time and effort by allowing multiple transfers to be made at once, rather than having to initiate each transfer separately.

In Mono, every sending of transfers will create a batch, also in cases when you create transfers individually.

Bank transfers Batch can have the following states:

  • created: Indicates that the Bank transfers Batch has been received and not being authorized or processed yet.

    Every bank transfer will be in state created.

  • pending_otp: Indicates that the Bank transfers Batch needs to be authorized by an Administrator user.

  • verified_otp: Indicates that the Bank transfers Batch was authorized and it's in preparation to be processed.

  • canceled: Indicates that the Bank transfers Batch was canceled by an Administrator user during preparation. Cancel a batch cancels its transfers.

    Considerations:

    • Every bank transfer will be in state canceled.
    • It will send a webhook event called batch_canceled.
  • processing_transactions: Indicates that the Bank transfers Batch is in the process to apply for its transfers.
    Considerations:

    • Every bank transfer will be in state in_progress.
    • It will send a webhook event called batch_sent.
  • partially_approved: Indicates that some of the batch transfers were approved by the destination banks.

    Some of the transfers will mark as approved or declined.

  • declined: Indicates that all batch transfers were declined.

    Transfers will also mark as declined

  • approved: Indicates that all batch transfers were approved by the destination banks.

    Transfers will also mark as approved.

  • duplicated: Indicates that all batch transfers were marked as duplicated because they were received before in our system.

    Considerations:

    • Every bank transfer will be in state duplicated.
    • It will send a webhook event called batch_duplicated.
    • If there are transfers that are duplicated and others that are not, it will try to process the non-do duplicate transfers.