Cómo enviar cuenta a cuenta

Guia sobre transferencias cuenta a cuenta

El flujo base de ACH En Línea permite procesar transferencias reguladas y no reguladas a través de esquemas dinámicos referenciados en el campo MovementType. El sistema al detectar el valor para el flujo no regulado habilita las capacidades requeridas para el procesamiento de la transaccional no regulada (sin aplicar los topes de Bre-B y sin liquidación en el MOL).

El flujo es definido por el campo movementType dentro del Transfers, que para el caso de transferencias reguladas debe ser alguno de estos valores: P2P-TRANSFER, P2B-TRANSFER, B2B-TRANSFER y B2P-TRANSFER.

Dominio: https://bank.apihub.crt.achcolombia.com.co
POST /ach/bk/v1/money-movement/transfers

Campos de entrada creación de transferencia B2P

Campos de entrada (Headers)

Campo Tipo Validación Descripción Obligatoriedad
x-hash String Min 64 – Máx 64 Cadena de comprobación de integridad de la trama. Se obtiene al serializar el objeto data y aplicar SHA256. Si

Campos de entrada (Body)

Campo Tipo Validación Longitud Obligatoriedad
meta objeto N/A N/A SI
requestId cadena UUID que identifica el mensaje. Min 36 - Max 36 SI
version cadena version del protocolo de mensajeria. valor fijo "1.0.0" Min 1 Max 15 SI
timestamp fecha Marca de tiempo de envio del mensaje. Ver tabla "REGLAS PARA LOS VALORES DE TIPO FECHA" N/A SI
data objeto N/A N/A SI
id cadena Identificador unico de la transaccion. Min 1 Max 36 NO. Si la Entidad Participante Origen no informa este campo, el sistema genera un ID automaticamente
movementType lista Identificador del schema del flujo transaccional. Ver Tablas de referencia: "Valores para el campo movementType". Lista SI
amountInformation objeto N/A N/A SI
amount decimal Valor de la transaccion. 13 enteros, 2 decimales, siempre mayor que cero. El monto maximo por transaccion corresponde a 250 MM. (13,2) SI
currency lista Valor por defecto "COP" Lista SI
source objeto N/A N/A SI
personType lista Tipo de persona que originda la transaccion. Ver Tablas de referencia: "Valores para el campo personType". Lista SI
document objeto N/A N/A SI
number entero Numero de identificacion del ordenante del pago. Solo numeros, si el campo type es NIT. El valor no debe superar los 9 digitos y sin caracteres especiales. Entero SI
type lista Tipo de identificacion del ordenante del pago. Ver Tablas de referencia: "Tipos de documento". Lista SI
fullName cadena Nombre comercial, se usa para persona juridica. Min 1 Max 160 COND. Obligatorio si personType es LEGAL
firstName cadena Primer nombre Min 1 Max 40 COND. Obligatorio si personType es NATURAL
secondName cadena Segundo nombre Min 1 Max 40 NO
firstLastName cadena Primer apellido Min 1 Max 40 COND. Obligatorio si personType es NATURAL
secondLastName cadena Segundo apellido Min 1 Max 40 NO
accountId cadena Numero de cuenta del origen de la transaccion. El numero de cuenta no debera superar los 34 caracteres de longitud y en caso de que aplique, contemplar los 0 (ceros) a la izquierda. Min 1 Max 34 SI
accountType lista Tipo de cuenta del origen de la transaccion. Ver Tablas de referencia: "Tipos de cuenta". Lista SI
financialInstitutionId entero Identificador de la entidad origen. Numero NIT sin digito de verificacion y sin caracteres especiales. Min 1 Max 9 SI
target objeto N/A N/A SI
personType lista Tipo de persona beneficiaria de la transaccion. Ver Tablas de referencia: "Valores para el campo personType". Lista SI
document objeto N/A N/A SI
number entero Numero de identificacion del beneficiario del pago. Solo numeros, si el campo type es NIT. El valor no debe superar los 9 digitos y sin caracteres especiales. Entero SI
type lista Tipo de identificacion del beneficiario del pago. Ver Tablas de referencia: "Tipos de documento". Lista SI
fullName cadena Nombre comercial, se usa para persona juridica. Min 1 Max 160 COND. Obligatorio si personType es LEGAL
firstName cadena Primer nombre Min 1 Max 40 COND. Obligatorio si personType es NATURAL
secondName cadena Segundo nombre Min 1 Max 40 NO
firstLastName cadena Primer apellido Min 1 Max 40 COND. Obligatorio si personType es NATURAL
secondLastName cadena Segundo apellido Min 1 Max 40 NO
accountInformation objeto N/A N/A SI
accountId cadena Numero de cuenta del origen de la transaccion. El numero de cuenta no debera superar los 34 caracteres de longitud y en caso de que aplique, contemplar los 0 (ceros) a la izquierda. Min 1 Max 34 SI
accountType lista Tipo de cuenta del beneficiario de la transaccion. Ver Tablas de referencia: "Tipos de cuenta". Lista SI
financialInstitutionId entero Identificador de la entidad destino. Numero NIT sin digito de verificacion y sin caracteres especiales. Min 1 Max 9 SI
purposeInformation objeto N/A N/A COND. Obligatorio si el movementType es *-TRANSFER
transactionPurpose lista Motivo de la transaccion. Ver Tablas de referencia: "Valores para el campo transactionPurpose". Min 1 - Max 25 COND. Obligatorio si el movementType es *-TRANSFER
useCaseInformation objeto N/A N/A COND. Obligatorio si el movementType es *-TRANSFER
channel lista Canal origen de la transaccion. Ver Tablas de referencia: "Valores para el campo channel". Lista COND. Obligatorio si el movementType es *-TRANSFER
deviceFingerprint objeto N/A N/A NO
deviceHash cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
ipAddress cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
ipLocation cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
ipCountryCode cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
deviceIpRegion cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
deviceIsp cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
deviceModel cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
latitude cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
longitude cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
deviceScreenHeight cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
deviceScreenWidth cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
deviceLanguage cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
deviceCookiesEnabled cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
deviceUserAgent cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
deviceBrowser cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
deviceBrowserVersion cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO
deviceOs cadena Entregado por el SDK de prevención fraude o por la entidad. Min 1 - Max 255 NO

Request creación de transferencia B2P

curl --location 'https://bank.apihub.crt.achcolombia.com.co/ach/bk/v1/money-movement/transfers' \
--header 'x-hash: 08a8102ca3ccbae5f4e206018483c69e7022f20f9f134ca28047e2348cdb0b93' \
--data '{
    "meta": {
        "requestId": "ec3deea7-4698-466c-accb-204ea1a7ca1a",
        "version": "1.0.0",
        "timestamp": "{{fechaLocal}}"
    },
    "data": {
        "id":"20260820ACHENLINEA835569530998125",
        "movementType": "B2P-TRANSFER",
        "amountInformation": {
            "amount": 2500,
            "currency": "COP"
        },
        "source": {
            "personType": "LEGAL",
            "document": {
                "number": "23171077",
                "type": "NIT"
            },
            "fullName": "PRUEBAS",
            "accountInformation": {
                "accountId": "20753221513",
                "accountType": "CAHO",
                "financialInstitutionId": 900504005
            }
        },
        "target": {
            "personType": "NATURAL",
            "document": {
                "number": "13171077",
                "type": "CC"
            },
            "firstName": "Hernan",
            "firsLastName": "Sanguino",
            "secondLastName": "Vega",
            "accountInformation": {
                "accountId": "20753228543",
                "accountType": "CAHO",
                "financialInstitutionId": 900504003
            }
        },
        "purposeInformation": {
            "transactionPurpose": "COMPRAS"
        },
        "useCaseInformation": {
            "channel": "OFC",
            "deviceFingerprint": {
                "deviceHash": "abc123hashdevice",
                "ipAddress": "192.168.1.10",
                "ipLocation": "Bogotá",
                "ipCountryCode": "CO",
                "deviceIpRegion": "Cundinamarca",
                "deviceIsp": "Claro",
                "deviceModel": "iPhone 13",
                "latitude": "4.60971",
                "longitude": "-74.08175",
                "deviceScreenHeight": "2532",
                "deviceScreenWidth": "1170",
                "deviceLanguage": "es-CO",
                "deviceCookiesEnabled": "true",
                "deviceUserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X)",
                "deviceBrowser": "Safari",
                "deviceBrowserVersion": "15.0",
                "deviceOs": "iOS"
            }
        }
    }
}'

Campos de salida creación de transferencia

Campo Tipo Validación Longitud
meta objeto N/A N/A
requestId cadena UUID que identifica el mensaje Min 36 - Max 36
version cadena Versión del protocolo de mensajería.
Valor fijo "1.0.0"
Min 1 Max 15
timestamp fecha Marca de tiempo de envío del mensaje N/A
data Objeto Contiene información N/A
id cadena Identificador único de la transacción Min 1 Max 36
movementType cadena Identificador del schema del flujo transaccional.
Ver Tablas de referencia: "Valores para el campo movementType".
lista
status cadena Estado de la transacción.
Ver Tablas de referencia: "Estados de las transacciones".
lista
creationDateTime fecha Momento de la respuesta al participante N/A

Response creación de transferencia

{
    "meta": {
        "requestId": "1604a52e-9f5f-41f2-b6ae-4a5ce4bf7dec",
        "version": "1.0.0",
        "timestamp": "2026-08-20T17:03:02.911"
    },
    "data": {
        "id": "20260820ACHENLINEA618077635543655",
        "movementType": "B2P-TRANSFER",
        "status": "pending",
        "creationDateTime": "2026-08-20T17:03:02.511"
    }
}

Aceptación en el flujo no regulado

La aceptación de una transferencia no depende de una acción explícita por parte del usuario final. Sin embargo, sí requiere de una validación formal por parte de la entidad financiera que actúa como banco receptor.

Este paso de aceptación es obligatorio antes de continuar con el procesamiento y consiste en que la entidad receptora verifique que la cuenta destino:

  • Existe y está activa.
  • Está habilitada para recibir pagos.
  • Cumple con los requisitos establecidos por la regulación, como los límites de monto o tipo de moneda.

Una vez realizada esta validación, el banco destinatario confirma la aceptación utilizando el mecanismo estándar ya existente en ACH En Línea para flujos asincrónicos.

Modelo de liquidación

Para el flujo no regulado, ACH En Línea implementa su propio mecanismo de liquidación y compensación a través de Prefondeo y reintegro de recursos soportados a través del movimiento de dinero en las cuentas CUD de las Entidades Participantes y ACH Colombia.

Orderarticle 2