Cómo acreditar al beneficiario

Acreditar el usuario destino

Una vez se confirma el débito de parte de la Entidad Originadora y la Entidad Receptora confirma la preparación del crédito, acreditar al usuario destino es el último paso en el procesamiento de la transferencia. Para realizar esta operación, ACH En Línea llama al endpoint v1/credits/{idCredit}/commit de la Entidad Receptora.

A continuación, se detallan las acciones involucradas, junto con ejemplos prácticos y consideraciones técnicas relevantes.

sequenceDiagram
    autonumber
    participant ach as ACH En Línea
    participant tb as Entidad Receptora

    ach ->> +tb: Llama al commit credit
    Note over tb,ach: /v1/credits/{idCredit}/commit
    tb ->> tb: Realiza el crédito de fondos
    tb -->> -ach: 200 OK
    ach ->> ach: Finaliza la transacción

1. ACH En Línea llama al banco receptor para procesar la operación de commit del crédito

Para ejecutar la acreditación de recursos al beneficiario, ACH En Línea hace solicitud POST al endpoint v1/credits/{idCredit}/commit expuesto por la Entidad Receptora.

Campos de entrada commit del crédito

Campo Tipo Validación Mapeo de datos
meta objeto N/A transfers.meta
id cadena Identificador único de la transacción transfers.meta.id
status cadena Estado actual de la transacción N/A
data objeto N/A transfers.data
creditId cadena Identificador único del crédito N/A
movementType cadena Identificador del schema del flujo transaccional transfers.data.movementType
amountInformation objeto N/A transfers.data.amountInformation
amount decimal Valor de la transacción en base 100 transfers.data.amountInformation.amount
currency lista Símbolo de la moneda de la transacción transfers.data.amountInformation.currency
source objeto N/A transfers.data.source
personType lista Tipo de persona que hace la transacción transfers.data.source.personType
document objeto Tipo de documento transfers.data.source.document
number cadena Número de identificación del ordenante del pago transfers.data.source.document.number
type lista Tipo de identificación del ordenante del pago transfers.data.source.document.type
fullName cadena Nombre comercial, se usa para persona jurídica transfers.data.source.document.fullName
firstName cadena Primer nombre transfers.data.source.document.firstName
secondName cadena Segundo nombre transfers.data.source.document.secondName
firstLastName cadena Primer apellido transfers.data.source.document.firstLastName
secondLastName cadena Segundo apellido transfers.data.source.document.secondLastName
spbviCode lista Nombre del SPBVI origen transfers.data.source.document.spbviCode
accountInformation objeto N/A transfers.data.source.accountInformation
accountId cadena Número de cuenta del origen de la transacción transfers.data.source.accountInformation.accountId
accountType lista Tipo de cuenta del origen de la transacción transfers.data.source.accountInformation.accountType
financialInstitutionId entero Identificador de la entidad destino transfers.data.source.accountInformation.financialInstitutionId
target objeto N/A transfers.data.target
personType lista Tipo de persona que recibe la transacción transfers.data.target.personType
document objeto N/A transfers.data.target.document
number cadena Número de identificación del beneficiario del pago transfers.data.target.document.number
type lista Tipo de identificación del beneficiario del pago transfers.data.target.document.type
fullName cadena Nombre comercial, se usa para persona jurídica transfers.data.target.document.fullName
firstName cadena Primer nombre transfers.data.target.document.firstName
secondName cadena Segundo nombre transfers.data.target.document.secondName
firstLastName cadena Primer apellido transfers.data.target.document.firstLastName
secondLastName cadena Segundo apellido transfers.data.target.document.secondLastName
targetSpbviCode lista Nombre del SPBVI origen transfers.data.target.document.targetSpbviCode
alias objeto N/A transfers.data.target.alias
aliasType lista Identificador del tipo de llave transfers.data.target.alias.aliasType
aliasValue cadena Llave transfers.data.target.alias.aliasValue
accountInformation objeto N/A transfers.data.target.accountInformation
accountId cadena Número de cuenta del destino de la transacción transfers.data.target.accountInformation.accountId
accountType lista Tipo de cuenta del destino de la transacción transfers.data.target.accountInformation.accountType
financialInstitutionId entero Identificador de la entidad destino transfers.data.target.accountInformation.financialInstitutionId
qr Objeto N/A transfers.data.qr

Request commit del crédito

curl --location 'https://url_participante/v1/credits/{idCredit}/commit' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOi
JkZW1vLXVzdWFyaW8iLCJyb2xlIjoiYXBwLXRlc3QiLCJpYXQ iOjE3MDAwMDAwMDAsImV4cCI6MTcwMDA4NjQwMH0.abc123xyz987fakeSignatureOnlyForDemoPurposes' \
--data '{...}'

Data:

{
    "meta": {
        "id": "string",
        "status": "string"
    },
    "data": {
        "creditId": "string",
        "movementType": ["lista"],
        "amountInformation": {
            "amount": "decimal",
            "currency": ["lista"]
        },
        "source": {
            "personType": ["lista"],
            "document": {
                "number": "string",
                "type": ["lista"],
                "fullName": "string",
                "firstName": "string",
                "secondName": "string",
                "firstLastName": "string",
                "secondLastName": "string"
            },
            "spbviCode": ["lista"],
            "accountInformation": {
                "accountId": "string",
                "accountType": ["lista"],
                "financialInstitutionId": "entero"
            }
        },
        "target": {
            "personType": ["lista"],
            "document": {
                "number": "string",
                "type": ["lista"],
                "fullName": "string",
                "firstName": "string",
                "secondName": "string",
                "firstLastName": "string",
                "secondLastName": "string"
            },
            "targetSpbviCode": ["lista"],
            "alias": {
                "aliasType": ["lista"],
                "aliasValue": "string"
            },
            "accountInformation": {
                "accountId": "string",
                "accountType": ["lista"],
                "financialInstitutionId": "entero"
            },
            "qr": {
                "qrId": "string"
            }
        }
    }
}

2. Acreditación de fondos al beneficiario

La Entidad Receptora procesa la acreditación de fondos al beneficiario.

3. Confirmación del crédito

Una vez la Entidad Participante Receptora efectúa el proceso del crédito al usuario receptor. Envía la respuesta al llamado del commit del crédito.

HTTP/1.1 200 OK 
Content-Length: 0

4. Finalización de la transacción

Una vez ACH Colombia recibe la confirmación del crédito (response del commit) por parte de la Entidad Receptora. El sistema ACH En Línea deja en firme el estado final de la transferencia.

Orderarticle 4
Cómo aceptar la transferencia Anterior