Especificación Técnica del Servicio — Cuentas de Comercios de RedEnlace
1. Introducción
Este documento describe los lineamientos y especificaciones técnicas para la integración de las APIs REST dispuestas por RedEnlace. Contempla los siguientes servicios:
- Autenticación mediante OAuth 2.0 (Client Credentials) para la obtención del Access Token.
- Estado de una cuenta comercio.
- Lista de cuentas comercio pertenecientes a un comercio.
- Alta de nuevas cuentas de comercios.
- Movimientos por comercio.
- Créditos por cuenta.
- Débitos por cuenta.
- Saldos por cuenta.
Credenciales
client_id y el access_token de producción son proporcionados exclusivamente por ATC para cada integrador habilitado.2. Header
Todos los servicios de la API requieren el envío de los siguientes encabezados HTTP en cada petición. El Access Token debe obtenerse previamente mediante el servicio de autenticación OAuth 2.0 (ver sección 3).
| Header | Descripción | Oblig. | Ejemplo |
|---|---|---|---|
Authorization | Token de autorización. Se envía como Bearer seguido del access_token obtenido en la autenticación. | Sí | Basic ODBiM2M1NWQtNWNiNi00OWRlLTkxYTAtMDcwZDM1M2IwM== |
client_id | Identificador único del cliente integrador. Proporcionado por ATC. | Sí | 1442981c-....-....-b...-ea12258c9... |
Content-Type | Formato del cuerpo de la petición. Para todos los servicios: JSON. | Sí | application/json |
Autenticación previa obligatoria Para obtener elaccess_tokenque se usa en el headerAuthorization, primero debe invocarse el servicio de autenticación OAuth (sección 3). El token Basic requerido en ese paso es provisto por ATC.
3. Autenticación – Obtención de Access Token
| Atributo | Valor |
|---|---|
| Método HTTP | POST |
| ENDPOINT | /oauth-client-credentials/access-token |
| Content-Type | application/x-www-form-urlencoded |
| Query Param | grant_type=client_credentials |
Header de autenticación
| Header | Descripción | Obligatorio |
|---|---|---|
Authorization | Codificado en Base64 (client_id:client_secret). | Sí |
Content-Type | application/x-www-form-urlencoded | Sí |
Request — Autenticación (obtener Access Token)
Response — Access Token
{
"access_token": "1442981c-....-....-b...-ea12258c9...",
"token_type": "access_token",
"expires_in": 3600
}{
"access_token": "1442981c-....-....-b...-ea12258c9...",
"token_type": "access_token",
"expires_in": 3600
}Respuesta exitosa — Access Token
| Campo | Tipo | Descripción |
|---|---|---|
access_token | String | Token de portador para usar en los headers de los servicios QR. |
token_type | String | Tipo de token. Siempre Bearer. |
expires_in | Integer | Tiempo de validez en segundos. |
scope | String | Alcance del token otorgado. |
4. Estado cuenta comercio
Servicio para obtener el detalle de la cuenta comercio requerida.
| Atributo | Valor |
|---|---|
| Método HTTP | GET |
| ENDPOINT | /cuentas-comercios/v1/cuentas/{nit}/{numeroCuenta} |
Header: access_token | {access_token obtenido en autenticación} |
Header: client_id | {client_id provisto por ATC} |
Header: Content-Type | application/json |
Datos de entrada
nit que es el NIT del comercio y el numeroCuenta que es la cuenta de comercio proporcionado por ATC.Request — Estado cuenta
Respuesta exitosa (HTTP 200)
{
"data": {
"nit": "1023149021",
"nombreComercio": "MANACO",
"idEstablecimiento": 111369,
"nombreEstablecimiento": "27201 BATA TARIJA I",
"cuenta": {
"numeroCuenta": "7011113693",
"alias": "CAJA 1 - COMERCIALES",
"estado": "BLOQUEADA"
}
},
"code": "00",
"errorCode": null,
"errorMessage": ""
}{
"data": {
"nit": "1023149021",
"nombreComercio": "MANACO",
"idEstablecimiento": 111369,
"nombreEstablecimiento": "27201 BATA TARIJA I",
"cuenta": {
"numeroCuenta": "7011113693",
"alias": "CAJA 1 - COMERCIALES",
"estado": "BLOQUEADA"
}
},
"code": "00",
"errorCode": null,
"errorMessage": ""
}Datos de salida
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
code | Código estado de respuesta. "00" exitoso / "05" no exitoso o error | string |
data | El detalle de la cuenta solicitada | object |
errorCode | En caso de error, código del error generado | string |
errorMessage | Mensaje en caso de existir algún error | string |
Estructura del dato data
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
nit | El NIT del comercio | string |
nombreComercio | Nombre registrado del comercio | string |
idEstablecimiento | ID del establecimiento al que pertenece la cuenta bancaria | long |
nombreEstablecimiento | Nombre registrado del establecimiento | string |
cuenta | Datos de la cuenta solicitada | object |
Estructura del dato cuenta
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
numeroCuenta | Número de cuenta | string |
alias | Descripción / rubro registrado para la cuenta | string |
estado | Descripción del estado de la cuenta | string |
5. Lista de cuentas pertenecientes a un NIT
Servicio para obtener la lista de cuentas comercio generadas para el comercio con el NIT enviado.
| Atributo | Valor |
|---|---|
| Método HTTP | GET |
| ENDPOINT | /cuentas-comercios/v1/cuentas/{nit} |
Header: access_token | {access_token obtenido en autenticación} |
Header: client_id | {client_id provisto por ATC} |
Header: Content-Type | application/json |
Datos de entrada
nit que es el NIT del comercio.Request — Lista de cuentas
Respuesta exitosa (HTTP 200)
{
"data": {
"nit": "1023149021",
"nombreComercio": "MANACO",
"establecimientos": [
{
"idEstablecimiento": 111369,
"nombreEstablecimiento": "27201 BATA TARIJA I",
"cuentas": [
{
"numeroCuenta": "7011113691",
"alias": "Inicial T - Servicios aereos",
"estado": "ACTIVA"
},
{
"numeroCuenta": "7011113692",
"alias": "Inicial T - Servicios aereos",
"estado": "ACTIVA"
},
{
"numeroCuenta": "7011113693",
"alias": "CAJA 1 - COMERCIALES",
"estado": "BLOQUEADA"
},
{
"numeroCuenta": "7011113694",
"alias": "CAJA 2 - COMERCIALES",
"estado": "ACTIVA"
}
]
}
]
},
"code": "00",
"errorCode": null,
"errorMessage": ""
}{
"data": {
"nit": "1023149021",
"nombreComercio": "MANACO",
"establecimientos": [
{
"idEstablecimiento": 111369,
"nombreEstablecimiento": "27201 BATA TARIJA I",
"cuentas": [
{
"numeroCuenta": "7011113691",
"alias": "Inicial T - Servicios aereos",
"estado": "ACTIVA"
},
{
"numeroCuenta": "7011113692",
"alias": "Inicial T - Servicios aereos",
"estado": "ACTIVA"
},
{
"numeroCuenta": "7011113693",
"alias": "CAJA 1 - COMERCIALES",
"estado": "BLOQUEADA"
},
{
"numeroCuenta": "7011113694",
"alias": "CAJA 2 - COMERCIALES",
"estado": "ACTIVA"
}
]
}
]
},
"code": "00",
"errorCode": null,
"errorMessage": ""
}Datos de salida
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
code | Código estado de respuesta. "00" exitoso / "05" no exitoso o error | string |
data | La lista de establecimientos y sus respectivas cuentas | object |
errorCode | En caso de error, código del error generado | string |
errorMessage | Mensaje en caso de existir algún error | string |
Estructura del dato data
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
nit | El NIT del comercio | string |
nombreComercio | Nombre registrado del comercio | string |
establecimientos | Lista de los establecimientos pertenecientes a la cuenta | Lista (object) |
Estructura del dato establecimiento
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
idEstablecimiento | ID del establecimiento | string |
nombreEstablecimiento | Nombre del establecimiento | string |
cuentas | Lista de cuentas pertenecientes al establecimiento | Lista (object) |
Estructura del dato cuenta
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
numeroCuenta | Número de cuenta | string |
alias | Descripción / rubro registrado para la cuenta | string |
estado | Descripción del estado de la cuenta | string |
6. Alta de nuevas cuentas
Servicio para la creación de nuevas cuentas comercio para un comercio respectivo.
| Atributo | Valor |
|---|---|
| Método HTTP | POST |
| ENDPOINT (TEST) | /cuentas-comercios/v1/cuentas |
Header: access_token | {access_token obtenido en autenticación} |
Header: client_id | {client_id provisto por ATC} |
Header: Content-Type | application/json |
Request — Alta Cuentas
Body de la petición
{
"nit": "1023149021",
"establecimiento": {
"idEstablecimiento": 111369,
"cuenta": [
{
"alias": "CAJA 5",
"rubro": "COMERCIALES",
"moneda": "068"
},
{
"alias": "CAJA 6",
"rubro": "COMERCIALES",
"moneda": "068"
}
]
}
}{
"nit": "1023149021",
"establecimiento": {
"idEstablecimiento": 111369,
"cuenta": [
{
"alias": "CAJA 5",
"rubro": "COMERCIALES",
"moneda": "068"
},
{
"alias": "CAJA 6",
"rubro": "COMERCIALES",
"moneda": "068"
}
]
}
}Datos de entrada
| Nombre parámetro | Descripción | Tipo | Tamaño | Ejemplo | Requerido/Opcional |
|---|---|---|---|---|---|
nit | NIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC) | string | 8 a 20 caracteres | "1234567890" | Requerido |
establecimiento | Datos del establecimiento y las cuentas | object | N/A | — | Requerido |
Detalle de establecimiento
| Nombre parámetro | Descripción | Tipo | Tamaño | Ejemplo | Requerido/Opcional |
|---|---|---|---|---|---|
idEstablecimiento | ID del establecimiento al que pertenecerá(n) la(s) cuenta(s) | long | N/A | 123456 | Requerido |
cuenta | Lista de datos requeridos para las nuevas cuentas | object | N/A | — | Requerido |
Detalle de cuenta
| Nombre parámetro | Descripción | Tipo | Tamaño | Ejemplo | Requerido/Opcional |
|---|---|---|---|---|---|
alias | Descripción para el uso de la cuenta | string | 45 | "Cuenta de cajas" | Requerido |
rubro | Descripción para el uso de la cuenta | string | 45 | "Servicios turísticos" | Requerido |
moneda | Código de la moneda de la cuenta. Actualmente solo se acepta 068: Bolivia | string | 3 | 1 | Requerido |
Respuesta exitosa (HTTP 200)
{
"data": {
"nit": "1023149021",
"nombreComercio": "MANACO",
"idEstablecimiento": 111369,
"nombreEstablecimiento": "27201 BATA TARIJA I",
"cuentas": [
{
"numeroCuenta": "7011113695",
"alias": "CAJA 5 - COMERCIALES"
},
{
"numeroCuenta": "7011113696",
"alias": "CAJA 6 - COMERCIALES"
}
]
},
"code": "00",
"errorCode": null,
"errorMessage": ""
}{
"data": {
"nit": "1023149021",
"nombreComercio": "MANACO",
"idEstablecimiento": 111369,
"nombreEstablecimiento": "27201 BATA TARIJA I",
"cuentas": [
{
"numeroCuenta": "7011113695",
"alias": "CAJA 5 - COMERCIALES"
},
{
"numeroCuenta": "7011113696",
"alias": "CAJA 6 - COMERCIALES"
}
]
},
"code": "00",
"errorCode": null,
"errorMessage": ""
}Datos de salida
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
code | Código estado de respuesta. "00" exitoso / "05" no exitoso o error | string |
data | Información de las nuevas cuentas | object |
errorCode | En caso de error, código del error generado | string |
errorMessage | Mensaje en caso de existir algún error | string |
Estructura del dato data
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
nit | El NIT del comercio | string |
nombreComercio | Nombre registrado del comercio | string |
idEstablecimiento | ID del establecimiento | long |
nombreEstablecimiento | Nombre del establecimiento | string |
cuentas | Lista de cuentas pertenecientes al establecimiento | List(object) |
Estructura del dato cuenta
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
numeroCuenta | Número de cuenta | string |
alias | Descripción / rubro registrado para la cuenta (por defecto la cuenta se crea en estado ACTIVO) | string |
7. Cambio de estado de cuentas existentes
Servicio para el cambio de estado de cuentas comercio existentes.
Una vez obtenido el Access Token, se puede invocar este servicio.
| Atributo | Valor |
|---|---|
| Método HTTP | PATCH |
| ENDPOINT (TEST) | /cuentas-comercios/v1/cuentas/estados |
Header: access_token | {access_token obtenido en autenticación} |
Header: client_id | {client_id provisto por ATC} |
Header: Content-Type | application/json |
Request - Cambio de estado de cuentas
Body de la petición
{
"nit": "1023149021",
"cuentas": [
{
"numeroCuenta": "7011113693",
"descripcionMotivo": "Sospecha de fraude",
"estado": "BLOQUEADA"
}
]
}{
"nit": "1023149021",
"cuentas": [
{
"numeroCuenta": "7011113693",
"descripcionMotivo": "Sospecha de fraude",
"estado": "BLOQUEADA"
}
]
}Datos de entrada
| Nombre parámetro | Descripción | Tipo | Tamaño | Ejemplo | Requerido/Opcional |
|---|---|---|---|---|---|
nit | NIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC) | string | 8 a 20 caracteres | "1234567890" | Requerido |
cuentas | Lista de datos de las cuentas | object | N/A | — | Requerido |
Detalle de cuenta
| Nombre parámetro | Descripción | Tipo | Tamaño | Ejemplo | Requerido/Opcional |
|---|---|---|---|---|---|
numeroCuenta | Número de cuenta que se desea editar | string | Máx. 20 | "7061234561" | Requerido |
descripcionMotivo | Resumen de la causa del cambio | string | 50 | "sospecha de fraude" | Requerido |
estado | Estado a cambiar. Estados permitidos: 1: ACTIVA, 2: BLOQUEADA, 3: SUSPENDIDA, 4: CERRADA. Restricción: para cambiar a CERRADA los saldos deben ser 0; no se puede cambiar una cuenta de CERRADA a ningún otro estado | string | 12 | "ACTIVA" | Requerido |
Respuesta exitosa (HTTP 200)
{
"data": [
{
"numeroCuenta": "7011113693",
"estado": "BLOQUEADA"
}
],
"code": "00",
"errorCode": null,
"errorMessage": ""
}{
"data": [
{
"numeroCuenta": "7011113693",
"estado": "BLOQUEADA"
}
],
"code": "00",
"errorCode": null,
"errorMessage": ""
}Datos de salida
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
code | Código estado de respuesta. "00" exitoso / "05" no exitoso o error | string |
data | Resultado del nuevo estado de la cuenta | object |
errorCode | En caso de error, código del error generado | string |
errorMessage | Mensaje en caso de existir algún error | string |
Estructura del dato data
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
numeroCuenta | Número de cuenta | string |
estado | Descripción del estado | string |
8. Conciliación de transacciones
Servicio para obtener la lista de movimientos realizados por todas las cuentas pertenecientes al comercio.
| Atributo | Valor |
|---|---|
| Método HTTP | POST |
| ENDPOINT (TEST) | /cuentas-comercios/v1/cuentas/transacciones |
Header: access_token | {access_token obtenido en autenticación} |
Header: client_id | {client_id provisto por ATC} |
Header: Content-Type | application/json |
Request — Conciliación de transacciones
Datos de entrada
| Nombre parámetro | Descripción | Tipo | Tamaño | Ejemplo | Requerido/Opcional |
|---|---|---|---|---|---|
nit | NIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC) | string | 8 a 20 caracteres | "1234567890" | Requerido |
fechaInicio | Fecha inicial para la consulta | Date | Formato "yyyy-mm-dd", rango de hasta 31 días | 2025-02-12 | Requerido |
fechaFin | Fecha final para la consulta | Date | Formato "yyyy-mm-dd" | 2025-03-12 | Requerido |
Body de ejemplo
{
"nit": "6731850",
"fechaInicio": "2026-05-01",
"fechaFin": "2026-05-28"
}{
"nit": "6731850",
"fechaInicio": "2026-05-01",
"fechaFin": "2026-05-28"
}Respuesta exitosa (HTTP 200)
{
"data": {
"movimientos": [
{
"transactionId": "213424",
"tipoOperacion": "PAYOUT ACH",
"estado": "COMPLETADO",
"mensaje": "Autorizacion transferencia saliente",
"fechaHoraTransaccion": "2026-05-07T16:42:08",
"importe": 1.00,
"importeComision": 0,
"importeTotal": 1.00,
"moneda": "BOB",
"cuentaOrigen": "7014227171",
"ciClienteOrigen": "422717",
"nombreClienteOrigen": "JOSE LUIS TAPIA MAMANI",
"codigoBancoOrigen": "140",
"nombreBancoOrigen": "ATC-RED ENLACE",
"cuentaDestino": "1311404044",
"ciClienteDestino": "54524525212",
"nombreClienteDestino": "PEPE PEPE",
"codigoBancoDestino": "018",
"nombreBancoDestino": "BANCO GANADERO",
"numeroReferencia": "3554657",
"numOrdenAch": "12454654634534",
"numOrdenDestinatario": "12454654634534"
},
{
"transactionId": "",
"tipoOperacion": "PAYIN ACH",
"estado": "COMPLETADO",
"mensaje": "Abono a cuenta a traves del portal comercial",
"fechaHoraTransaccion": "2026-05-07T09:20:41",
"importe": 10.00,
"importeComision": 0,
"importeTotal": 10.00,
"moneda": "BOB",
"cuentaOrigen": "ATC-RED ENLACE",
"ciClienteOrigen": "",
"nombreClienteOrigen": "ATC-RED ENLACE",
"codigoBancoOrigen": "140",
"nombreBancoOrigen": "ATC-RED ENLACE",
"cuentaDestino": "7014227171",
"ciClienteDestino": "422717",
"nombreClienteDestino": "JOSE LUIS TAPIA MAMANI",
"codigoBancoDestino": "140",
"nombreBancoDestino": "ATC - RED ENLACE",
"numeroReferencia": "",
"numOrdenAch": "199401",
"numOrdenDestinatario": "3543543543"
}
],
"saldos": [
{
"numeroCuenta": "7014227171",
"estado": "ACTIVA",
"moneda": "BOB",
"saldoContable": 56.86,
"saldoDisponible": 56.86,
"saldoRetenido": 0.00,
"fechaUltimoCredito": "2026-05-28T15:47:00",
"fechaUltimoDebito": "2026-05-27T16:26:32"
}
]
},
"code": "00",
"errorMessage": ""
}{
"data": {
"movimientos": [
{
"transactionId": "213424",
"tipoOperacion": "PAYOUT ACH",
"estado": "COMPLETADO",
"mensaje": "Autorizacion transferencia saliente",
"fechaHoraTransaccion": "2026-05-07T16:42:08",
"importe": 1.00,
"importeComision": 0,
"importeTotal": 1.00,
"moneda": "BOB",
"cuentaOrigen": "7014227171",
"ciClienteOrigen": "422717",
"nombreClienteOrigen": "JOSE LUIS TAPIA MAMANI",
"codigoBancoOrigen": "140",
"nombreBancoOrigen": "ATC-RED ENLACE",
"cuentaDestino": "1311404044",
"ciClienteDestino": "54524525212",
"nombreClienteDestino": "PEPE PEPE",
"codigoBancoDestino": "018",
"nombreBancoDestino": "BANCO GANADERO",
"numeroReferencia": "3554657",
"numOrdenAch": "12454654634534",
"numOrdenDestinatario": "12454654634534"
},
{
"transactionId": "",
"tipoOperacion": "PAYIN ACH",
"estado": "COMPLETADO",
"mensaje": "Abono a cuenta a traves del portal comercial",
"fechaHoraTransaccion": "2026-05-07T09:20:41",
"importe": 10.00,
"importeComision": 0,
"importeTotal": 10.00,
"moneda": "BOB",
"cuentaOrigen": "ATC-RED ENLACE",
"ciClienteOrigen": "",
"nombreClienteOrigen": "ATC-RED ENLACE",
"codigoBancoOrigen": "140",
"nombreBancoOrigen": "ATC-RED ENLACE",
"cuentaDestino": "7014227171",
"ciClienteDestino": "422717",
"nombreClienteDestino": "JOSE LUIS TAPIA MAMANI",
"codigoBancoDestino": "140",
"nombreBancoDestino": "ATC - RED ENLACE",
"numeroReferencia": "",
"numOrdenAch": "199401",
"numOrdenDestinatario": "3543543543"
}
],
"saldos": [
{
"numeroCuenta": "7014227171",
"estado": "ACTIVA",
"moneda": "BOB",
"saldoContable": 56.86,
"saldoDisponible": 56.86,
"saldoRetenido": 0.00,
"fechaUltimoCredito": "2026-05-28T15:47:00",
"fechaUltimoDebito": "2026-05-27T16:26:32"
}
]
},
"code": "00",
"errorMessage": ""
}Datos de salida
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
code | Código estado de respuesta. "00" exitoso / "05" no exitoso o error | string |
data | Lista de movimientos y saldos | object |
errorCode | En caso de error, código del error generado | string |
errorMessage | Mensaje en caso de existir algún error | string |
Estructura de los elementos de data
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
movimientos | Lista de movimientos | Lista<object> |
saldos | Lista de saldos | Lista<object> |
Estructura de los elementos de movimientos
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
transactionId | Solo para PAYOUT: es el ID enviado en la petición de autorización (propio de la solicitud) | string |
tipoOperacion | Si se trata de un PAYIN/PAYOUT (método QR/ACH) | string |
estado | Estado de la transacción (ver sección 12) | string |
mensaje | Mensaje/descripción de la transacción | string |
fechaHoraTransaccion | Fecha y hora registrada de la transacción | DateTime |
importe | Importe solicitado (PAYIN/PAYOUT) | Decimal |
importeComision | Importe de comisión, si corresponde | Decimal |
importeTotal | Importe total (importe + importeComision) (debitado) | Decimal |
moneda | Descripción de la moneda de la transacción | string |
cuentaOrigen | Número de cuenta origen de la transacción | string |
ciClienteOrigen | Número identificador del dueño de la cuenta origen | string |
nombreClienteOrigen | Nombre del dueño registrado de la cuenta origen | string |
codigoBancoOrigen | Código de la entidad a la que pertenece la cuenta origen | string |
nombreBancoOrigen | Nombre de la entidad a la que pertenece la cuenta origen | string |
cuentaDestino | Número de cuenta destino de la transacción | string |
ciClienteDestino | Número identificador del dueño de la cuenta destino | string |
nombreClienteDestino | Nombre del dueño registrado de la cuenta destino | string |
codigoBancoDestino | Código de la entidad a la que pertenece la cuenta destino | string |
nombreBancoDestino | Nombre de la entidad a la que pertenece la cuenta destino | string |
numeroReferencia | Número de referencia (numOrdenOriginante) | string |
numOrdenAch | Número de orden de ACH | string |
numOrdenDestinatario | Número de orden de destinatario | string |
Estructura de los elementos de saldos
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
numeroCuenta | Número de cuenta | string |
estado | Estado de la cuenta | string |
moneda | Moneda de la cuenta | string |
saldoContable | Saldo que se cuenta en la cuenta | Decimal |
saldoDisponible | Saldo disponible | Decimal |
saldoRetenido | Saldo retenido | Decimal |
fechaUltimoCredito | Fecha del último crédito realizado | DateTime |
fechaUltimoDebito | Fecha del último débito realizado | DateTime |
9. Créditos por cuenta
Servicio para obtener la lista de movimientos de crédito realizados por las cuentas pertenecientes al comercio.
| Atributo | Valor |
|---|---|
| Método HTTP | POST |
| ENDPOINT (TEST) | /cuentas-comercios/v1/cuentas/creditos |
Header: access_token | {access_token obtenido en autenticación} |
Header: client_id | {client_id provisto por ATC} |
Header: Content-Type | application/json |
Request — Créditos por cuenta
Body de la petición
{
"nit": "1020263021",
"numeroCuenta": [
"7011234561"
],
"fechaInicio": "2026-05-01",
"fechaFin": "2026-05-31",
"tipo": "C"
}{
"nit": "1020263021",
"numeroCuenta": [
"7011234561"
],
"fechaInicio": "2026-05-01",
"fechaFin": "2026-05-31",
"tipo": "C"
}Datos de entrada
| Nombre parámetro | Descripción | Tipo | Tamaño | Ejemplo | Requerido/Opcional |
|---|---|---|---|---|---|
nit | NIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC) | string | 7 a 20 caracteres | "1234567890" | Requerido |
numeroCuenta | Lista de número de cuenta | Array[string] | 8 a 20 caracteres cada elemento, solo números, hasta 1 elemento máximo | ["7012919971"] | Requerido |
fechaInicio | Fecha inicial para la consulta | Date | Formato "yyyy-mm-dd", rango de hasta 31 días | 2025-03-12 | Requerido |
fechaFin | Fecha final para la consulta | Date | Formato "yyyy-mm-dd" | 2025-03-12 | Requerido |
tipo | Siempre se debe enviar "C" | string | 1 | C | Requerido |
Respuesta exitosa (HTTP 200)
{
"data": [
{
"tipoOperacion": "PAYIN QR",
"estado": "COMPLETADO",
"mensaje": "IDEMPOTENCY_CREDIT",
"fechaHoraTransaccion": "2026-05-05T10:51:03",
"importe": 868.09,
"moneda": "BOB",
"cuentaOrigen": "ATC-RED ENLACE",
"ciClienteOrigen": "",
"nombreClienteOrigen": "ATC-RED ENLACE",
"codigoBancoOrigen": "140",
"nombreBancoOrigen": "ATC-RED ENLACE",
"cuentaDestino": "7011234561",
"ciClienteDestino": "123456",
"nombreClienteDestino": "El dorado",
"codigoBancoDestino": "140",
"nombreBancoDestino": "ATC-RED ENLACE",
"numeroReferencia": "N/A",
"numOrdenAch": "20260505105049",
"numOrdenDestinatario": null
}
],
"code": "00",
"errorCode": null,
"errorMessage": ""
}{
"data": [
{
"tipoOperacion": "PAYIN QR",
"estado": "COMPLETADO",
"mensaje": "IDEMPOTENCY_CREDIT",
"fechaHoraTransaccion": "2026-05-05T10:51:03",
"importe": 868.09,
"moneda": "BOB",
"cuentaOrigen": "ATC-RED ENLACE",
"ciClienteOrigen": "",
"nombreClienteOrigen": "ATC-RED ENLACE",
"codigoBancoOrigen": "140",
"nombreBancoOrigen": "ATC-RED ENLACE",
"cuentaDestino": "7011234561",
"ciClienteDestino": "123456",
"nombreClienteDestino": "El dorado",
"codigoBancoDestino": "140",
"nombreBancoDestino": "ATC-RED ENLACE",
"numeroReferencia": "N/A",
"numOrdenAch": "20260505105049",
"numOrdenDestinatario": null
}
],
"code": "00",
"errorCode": null,
"errorMessage": ""
}Datos de salida
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
code | Código estado de respuesta. "00" exitoso / "05" no exitoso o error | string |
data | Lista de movimientos | object |
errorCode | En caso de error, código del error generado | string |
errorMessage | Mensaje en caso de existir algún error | string |
Estructura de los elementos de data
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
tipoOperacion | Si se trata de un PAYIN QR o ACH | string |
estado | Estado de la transacción (misma enviada en webHook del PAYIN/PAYOUT) | string |
mensaje | Mensaje/descripción de la transacción | string |
fechaHoraTransaccion | Fecha y hora registrada de la transacción | DateTime |
importe | Importe solicitado (PAYIN/PAYOUT) | Decimal |
moneda | Descripción de la moneda de la transacción | string |
cuentaOrigen | Número de cuenta origen de la transacción | string |
ciClienteOrigen | Número identificador del dueño de la cuenta origen | string |
nombreClienteOrigen | Nombre del dueño de la cuenta origen | string |
codigoBancoOrigen | Código de la entidad a la que pertenece la cuenta origen | string |
nombreBancoOrigen | Nombre de la entidad a la que pertenece la cuenta origen | string |
cuentaDestino | Número de cuenta destino de la transacción | string |
ciClienteDestino | Número identificador del dueño de la cuenta destino | string |
nombreClienteDestino | Nombre del dueño registrado de la cuenta destino | string |
codigoBancoDestino | Código de la entidad a la que pertenece la cuenta destino | string |
nombreBancoDestino | Nombre de la entidad a la que pertenece la cuenta destino | string |
numeroReferencia | Solo para PAYOUT: número de referencia que responde en la petición de autorización | string |
numOrdenAch | Número de orden de ACH en transacciones con entidades externas | string |
numOrdenDestinatario | Número de orden de destinatario en transacciones con entidades externas | string |
10. Débitos por cuenta
Servicio para obtener la lista de movimientos de débito realizados por las cuentas pertenecientes al comercio.
| Atributo | Valor |
|---|---|
| Método HTTP | POST |
| ENDPOINT (TEST) | /cuentas-comercios/v1/cuentas/debitos |
Header: access_token | {access_token obtenido en autenticación} |
Header: client_id | {client_id provisto por ATC} |
Header: Content-Type | application/json |
Request — Generar QR
Body de la petición
{
"nit": "1020263021",
"numeroCuenta": [
"7011234561"
],
"fechaInicio": "2026-05-01",
"fechaFin": "2026-05-31",
"tipo": "D"
}{
"nit": "1020263021",
"numeroCuenta": [
"7011234561"
],
"fechaInicio": "2026-05-01",
"fechaFin": "2026-05-31",
"tipo": "D"
}Datos de entrada
| Nombre parámetro | Descripción | Tipo | Tamaño | Ejemplo | Requerido/Opcional |
|---|---|---|---|---|---|
nit | NIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC) | string | 7 a 20 caracteres | "1234567890" | Requerido |
numeroCuenta | Lista de número de cuenta | Array[string] | 8 a 20 caracteres cada elemento, solo números, hasta 1 elemento máximo | ["7012919971"] | Requerido |
fechaInicio | Fecha inicial para la consulta | Date | Formato "yyyy-mm-dd", rango de hasta 31 días | 2025-03-12 | Requerido |
fechaFin | Fecha final para la consulta | Date | Formato "yyyy-mm-dd" | 2025-03-12 | Requerido |
tipo | Siempre se debe enviar "D" | string | 1 | D | Requerido |
Respuesta exitosa (HTTP 200)
{
"data": [
{
"transactionId": "5545675768798098",
"tipoOperacion": "PAYOUT ACH",
"estado": "COMPLETADO",
"mensaje": "AUTH_CAPTURE_RELEASE_RACE authorization client=20",
"fechaHoraTransaccion": "2026-05-05T10:53:19",
"importe": 299.70,
"importeComision": 0,
"importeTotal": 299.70,
"moneda": "BOB",
"cuentaOrigen": "7011234561",
"ciClienteOrigen": "123456",
"nombreClienteOrigen": "El dorado",
"codigoBancoOrigen": "140",
"nombreBancoOrigen": "ATC-RED ENLACE",
"cuentaDestino": "98765432109",
"ciClienteDestino": "87654321",
"nombreClienteDestino": "Maria Lopez tres",
"codigoBancoDestino": "007",
"nombreBancoDestino": "BANCO DE CREDITO",
"numeroReferencia": "20260505105158",
"numOrdenAch": "12432434123",
"numOrdenDestinatario": "10560505105158"
}
],
"code": "00",
"errorCode": null,
"errorMessage": ""
}{
"data": [
{
"transactionId": "5545675768798098",
"tipoOperacion": "PAYOUT ACH",
"estado": "COMPLETADO",
"mensaje": "AUTH_CAPTURE_RELEASE_RACE authorization client=20",
"fechaHoraTransaccion": "2026-05-05T10:53:19",
"importe": 299.70,
"importeComision": 0,
"importeTotal": 299.70,
"moneda": "BOB",
"cuentaOrigen": "7011234561",
"ciClienteOrigen": "123456",
"nombreClienteOrigen": "El dorado",
"codigoBancoOrigen": "140",
"nombreBancoOrigen": "ATC-RED ENLACE",
"cuentaDestino": "98765432109",
"ciClienteDestino": "87654321",
"nombreClienteDestino": "Maria Lopez tres",
"codigoBancoDestino": "007",
"nombreBancoDestino": "BANCO DE CREDITO",
"numeroReferencia": "20260505105158",
"numOrdenAch": "12432434123",
"numOrdenDestinatario": "10560505105158"
}
],
"code": "00",
"errorCode": null,
"errorMessage": ""
}Datos de salida
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
code | Código estado de respuesta. "00" exitoso / "05" no exitoso o error | string |
data | Lista de movimientos | object |
errorCode | En caso de error, código del error generado | string |
errorMessage | Mensaje en caso de existir algún error | string |
Estructura de los elementos de data
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
transactionId | Solo para PAYOUT: ID enviado en la petición de autorización | string |
tipoOperacion | Si se trata de un PAYIN/PAYOUT | string |
estado | Estado de la transacción (misma enviada en webHook del PAYIN/PAYOUT) | string |
mensaje | Mensaje/descripción de la transacción | string |
fechaHoraTransaccion | Fecha y hora registrada de la transacción | DateTime |
importe | Importe solicitado (PAYIN/PAYOUT) | Decimal |
importeComision | Importe de comisión, si corresponde | Decimal |
importeTotal | Importe total (importe + importeComision) (abonado/debitado) | Decimal |
moneda | Descripción de la moneda de la transacción | string |
cuentaOrigen | Número de cuenta origen de la transacción | string |
ciClienteOrigen | Número identificador del dueño de la cuenta origen | string |
nombreClienteOrigen | Nombre del dueño de la cuenta origen | string |
codigoBancoOrigen | Código de la entidad a la que pertenece la cuenta origen | string |
nombreBancoOrigen | Nombre de la entidad a la que pertenece la cuenta origen | string |
cuentaDestino | Número de cuenta destino de la transacción | string |
ciClienteDestino | Número identificador del dueño de la cuenta destino | string |
nombreClienteDestino | Nombre del dueño registrado de la cuenta destino | string |
codigoBancoDestino | Código de la entidad a la que pertenece la cuenta destino | string |
nombreBancoDestino | Nombre de la entidad a la que pertenece la cuenta destino | string |
numeroReferencia | Solo para PAYOUT: número de referencia que responde en la petición de autorización | string |
numOrdenAch | Número de orden de ACH en transacciones con entidades externas | string |
numOrdenDestinatario | Número de orden de destinatario en transacciones con entidades externas | string |
11. Saldos
Servicio para obtener los saldos disponibles por cuenta.
| Atributo | Valor |
|---|---|
| Método HTTP | POST |
| ENDPOINT (TEST) | /cuentas-comercios/v1/cuentas/saldos |
Header: access_token | {access_token obtenido en autenticación} |
Header: client_id | {client_id provisto por ATC} |
Header: Content-Type | application/json |
Request — Generar QR
Body de la petición
{
"nit": "1020263021",
"numeroCuentas": [
"7014227171",
"7014227172"
]
}{
"nit": "1020263021",
"numeroCuentas": [
"7014227171",
"7014227172"
]
}Datos de entrada
| Nombre parámetro | Descripción | Tipo | Tamaño | Ejemplo | Requerido/Opcional |
|---|---|---|---|---|---|
numeroCuentas | Cuenta o lista de números de cuenta pertenecientes a un comercio | Array[string] | Hasta 10 elementos | ["7014227171", "7014227172"] | Requerido |
nit | NIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC) | string | 7 a 20 caracteres | "1234567890" | Requerido |
Respuesta exitosa (HTTP 200)
{
"data": [
{
"estado": "ACTIVA",
"numeroCuenta": "7014227171",
"tipoMoneda": "BOB",
"saldoDisponible": 59.50,
"saldoContable": 59.50,
"saldoRetenido": 0,
"fechaUltimoCredito": "2026-05-12T10:55:46",
"fechaUltimoDebito": "2026-05-13T12:25:22"
},
{
"estado": "ACTIVA",
"numeroCuenta": "7014227172",
"tipoMoneda": "BOB",
"saldoDisponible": 12.50,
"saldoContable": 12.50,
"saldoRetenido": 0,
"fechaUltimoCredito": "2026-05-12T10:55:46",
"fechaUltimoDebito": null
}
],
"code": "00",
"errorCode": "",
"errorMessage": ""
}{
"data": [
{
"estado": "ACTIVA",
"numeroCuenta": "7014227171",
"tipoMoneda": "BOB",
"saldoDisponible": 59.50,
"saldoContable": 59.50,
"saldoRetenido": 0,
"fechaUltimoCredito": "2026-05-12T10:55:46",
"fechaUltimoDebito": "2026-05-13T12:25:22"
},
{
"estado": "ACTIVA",
"numeroCuenta": "7014227172",
"tipoMoneda": "BOB",
"saldoDisponible": 12.50,
"saldoContable": 12.50,
"saldoRetenido": 0,
"fechaUltimoCredito": "2026-05-12T10:55:46",
"fechaUltimoDebito": null
}
],
"code": "00",
"errorCode": "",
"errorMessage": ""
}Datos de salida
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
code | Código estado de respuesta. "00" exitoso / "05" no exitoso o error | string |
data | La lista de transacciones encontradas | object |
errorCode | En caso de error, código del error generado | string |
errorMessage | Mensaje en caso de existir algún error | string |
Estructura del dato data
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
cuentas | Lista de saldos por número de cuenta | object |
Estructura del dato object de cada elemento del array
| Nombre parámetro | Descripción | Tipo |
|---|---|---|
estado | El estado actual de la cuenta | string |
numeroCuenta | El número de cuenta | string |
tipoMoneda | El tipo de moneda de la transacción | string |
saldoDisponible | El monto del saldo disponible en la cuenta | decimal |
saldoContable | El monto de saldo total registrado en la cuenta | decimal |
saldoRetenido | El monto retenido o temporalmente reservado | decimal |
fechaUltimoCredito | Fecha y hora del último crédito | DateTime |
fechaUltimoDebito | Fecha y hora del último débito | DateTime |
12. Tabla de estados de transacciones
Estados de las tablas para transacciones de PAYIN/PAYOUT.
PAYOUT ASÍNCRONO (Método ACH)
| Nro | Estado | Descripción |
|---|---|---|
| 1 | PENDIENTE | Solicitud creada |
| 2 | PROCESO | Procesando |
| 3 | ENVIADO | Enviado al banco |
| 4 | PENDIENTE_CONFIRMACION | Esperando confirmación |
| 5 | COMPLETADO | Confirmado |
| 6 | RECHAZADO | Rechazado |
| 7 | REVERTIDO | Devuelto |
| 8 | CANCELADO | Sin respuesta |
PAYOUT SÍNCRONO (Método QR)
| Nro | Estado | Descripción |
|---|---|---|
| 1 | PENDIENTE | Solicitud creada |
| 2 | PROCESO | Procesando |
| 3 | COMPLETADO | Confirmado |
| 4 | RECHAZADO | Rechazado |
| 5 | REVERTIDO | Devuelto |
| 6 | CANCELADO | Sin respuesta |
PAYOUT ASÍNCRONO (Método ACH) — variante
| Nro | Estado | Descripción |
|---|---|---|
| 1 | PENDIENTE | Solicitud creada |
| 2 | PROCESO | Procesando |
| 3 | PENDIENTE_CONFIRMACION | Esperando confirmación |
| 4 | COMPLETADO | Confirmado |
| 5 | RECHAZADO | Rechazado |
| 6 | CANCELADO | Sin respuesta |
PAYOUT SÍNCRONO (Método QR) — variante
| Nro | Estado | Descripción |
|---|---|---|
| 1 | PENDIENTE | Solicitud creada |
| 2 | PROCESO | Procesando |
| 3 | COMPLETADO | Confirmado |
| 4 | RECHAZADO | Rechazado |
| 5 | CANCELADO | Sin respuesta |
13. Resumen de APIs
| Método | Endpoint | Descripción |
|---|---|---|
GET | /cuentas-comercios/v1/cuentas/{nit}/{numeroCuenta} | Detalle de la cuenta solicitada |
GET | /cuentas-comercios/v1/cuentas/{nit} | Lista de cuentas pertenecientes al comercio |
POST | /cuentas-comercios/v1/cuentas | API para crear una o hasta 1000 cuentas |
PATCH | /cuentas-comercios/v1/cuentas/estados | Cambia el estado de la cuenta |
POST | /cuentas-comercios/v1/cuentas/transacciones | Lista de movimientos y saldos de las cuentas pertenecientes a un comercio |
POST | /cuentas-comercios/v1/cuentas/creditos | Lista de movimientos de créditos por cuenta, rango de fechas y tipo |
POST | /cuentas-comercios/v1/cuentas/debitos | Lista de movimientos de débitos por cuenta, rango de fechas y tipo |
POST | /cuentas-comercios/v1/cuentas/saldos | Lista de saldos a la fecha de la solicitud de las cuentas solicitadas |
14. Ambientes
| Sandbox | Producción | |
|---|---|---|
| URL Base | https://atcgwapitest.redenlace.com.bo/sandbox/ | https://api.redenlace.com.bo/ |
| Token Basic | Solicitar el user y pass mediante correo electrónico | Solicitar el user y pass mediante correo electrónico |
Seguridad de credenciales
No almacene credenciales de ningún ambiente (especialmente producción) en repositorios de código fuente. Use variables de entorno o un gestor de secretos. Las credenciales de producción son distintas a las de desarrollo y son entregadas por ATC de forma segura tras aprobar la certificación.
En esta página