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 ach,tb: /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 Longitud Mapeo de datos
meta objeto N/A N/A N/A
id cadena Identificador único de la transacción Min 1 Max 36 transfers.data.handle
status cadena Estado de la transacción. Ver tabla "VALORES PARA LAS ACCIONES Y ESTADOS (status)" lista meta.status
data objeto N/A N/A N/A
creditId cadena Identificador único del crédito que será aplicado. Min 1 Max 255 handle
movementType lista Identificador del schema del flujo transaccional lista transfers.data.schema
amountInformation objeto N/A N/A N/A
amount decimal Valor de la transacción en base 100 (13,2) amount
currency lista Símbolo de la moneda de la transacción lista transfers.data.claims.source.symbol.handle
source objeto N/A N/A N/A
personType lista Tipo de persona que hace la transacción lista transfers.data.claims.source.custom.entityType
document objeto N/A N/A N/A
number cadena Número de identificación del ordenante del pago entero transfers.data.claims.source.custom.documentNumber
type lista Tipo de identificación del ordenante del pago lista transfers.data.claims.source.custom.documentType
fullName cadena Nombre comercial, se usa para persona jurídica Min 1 Max 160 transfers.data.claims.source.custom.name
firstName cadena Primer nombre Min 1 Max 40 transfers.data.claims.source.custom.firstName
secondName cadena Segundo nombre Min 1 Max 40 transfers.data.claims.source.custom.secondName
firstLastName cadena Primer apellido Min 1 Max 40 transfers.data.claims.source.custom.firstLastName
secondLastName cadena Segundo apellido Min 1 Max 40 transfers.data.claims.source.custom.secondLastName
spbviCode lista Nombre del SPBVI origen lista transfers.data.claims.source.custom.spbviCode
accountInformation objeto N/A N/A N/A
accountId cadena Número de cuenta del origen de la transacción Min 1 Max 34 transfers.data.claims.target.handle
accountType lista Tipo de cuenta del origen de la transacción lista transfers.data.claims.target.handle
financialInstitutionId entero Identificador de la entidad destino Min 1 Max 9 transfers.data.claims.target.custom.participantCode
target objeto N/A N/A N/A
personType lista Tipo de persona que hace la transacción lista transfers.data.claims.target.custom.entityType
document objeto N/A N/A N/A
number cadena Número de identificación del ordenante del pago entero transfers.data.claims.target.custom.documentNumber
type lista Tipo de identificación del ordenante del pago lista transfers.data.claims.target.custom.documentType
fullName cadena Nombre comercial, se usa para persona jurídica Min 1 Max 160 transfers.data.claims.target.custom.name
firstName cadena Primer nombre Min 1 Max 40 transfers.data.claims.target.custom.firstName
secondName cadena Segundo nombre Min 1 Max 40 transfers.data.claims.target.custom.secondName
firstLastName cadena Primer apellido Min 1 Max 40 transfers.data.claims.target.custom.firstLastName
secondLastName cadena Segundo apellido Min 1 Max 40 transfers.data.claims.target.custom.secondLastName
targetSpbviCode lista Nombre del SPBVI origen lista transfers.data.claims.target.custom.targetSpbviCode
alias objeto N/A N/A N/A
aliasType lista Identificador del tipo de llave lista transfers.data.claims.target.custom.aliasType
aliasValue cadena Llave Min 1 Max 92 transfers.data.claims.target.custom.aliasValue
accountInformation objeto N/A N/A N/A
accountId cadena Número de cuenta del origen de la transacción Min 1 Max 34 transfers.data.claims.target.handle
accountType lista Tipo de cuenta del origen de la transacción lista transfers.data.claims.target.handle
financialInstitutionId entero Identificador de la entidad destino Min 1 Max 9 transfers.data.claims.target.custom.participantCode
qr objeto N/A N/A N/A
qrId cadena Identificador del QR Min 35 Max 35 transfers.data.claims.target.custom.idQr

Request commit del credito

curl --location 'https://url_participante/v1/credits/{idCredit}/commit' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkZW1vLXVzdWFyaW8iLCJyb2xlIjoiYXBwLXRlc3QiLCJpYXQiOjE3MDAwMDAwMDAsImV4cCI6MTcwMDA4NjQwMH0.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