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

El Token Basic (Authorization), el 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).

HeaderDescripciónOblig.Ejemplo
AuthorizationToken de autorización. Se envía como Bearer seguido del access_token obtenido en la autenticación.SíBasic ODBiM2M1NWQtNWNiNi00OWRlLTkxYTAtMDcwZDM1M2IwM==
client_idIdentificador único del cliente integrador. Proporcionado por ATC.Sí1442981c-....-....-b...-ea12258c9...
Content-TypeFormato del cuerpo de la petición. Para todos los servicios: JSON.Síapplication/json
information icon
Autenticación previa obligatoria Para obtener el access_token que se usa en el header Authorization, 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

Antes de invocar cualquier servicio, el integrador debe obtener un Access Token válido mediante el flujo OAuth 2.0 Client Credentials.
AtributoValor
Método HTTPPOST
ENDPOINT/oauth-client-credentials/access-token
Content-Typeapplication/x-www-form-urlencoded
Query Paramgrant_type=client_credentials

Header de autenticación

HeaderDescripciónObligatorio
AuthorizationCodificado en Base64 (client_id:client_secret).Sí
Content-Typeapplication/x-www-form-urlencodedSí

Request — Autenticación (obtener Access Token)

http
600;">POST /oauth-client-credentials/access-token?grant_type=client_credentials Headers: Authorization: Basic ODBiM2M1NWQtNWNiNi00OWRlLTkxYTAtMDcwZDM1M2IwM== Content-Type: application/x-www-form-urlencoded

Response — Access Token

json
{ "access_token": "1442981c-....-....-b...-ea12258c9...", "token_type": "access_token", "expires_in": 3600 }

Respuesta exitosa — Access Token

CampoTipoDescripción
access_tokenStringToken de portador para usar en los headers de los servicios QR.
token_typeStringTipo de token. Siempre Bearer.
expires_inIntegerTiempo de validez en segundos.
scopeStringAlcance del token otorgado.

4. Estado cuenta comercio

Servicio para obtener el detalle de la cuenta comercio requerida.

AtributoValor
Método HTTPGET
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-Typeapplication/json

Datos de entrada

Se envía como parámetros el nit que es el NIT del comercio y el numeroCuenta que es la cuenta de comercio proporcionado por ATC.

Request — Estado cuenta

http
600;">GET /cuentas-comercios/v1/cuentas/{nit}/{numeroCuenta} Headers: access_token: 1442981c-....-....-b...-ea12258c9... client_id: 1e063b89-....-....-....-ed73d60cbc67 Content-Type: application/json

Respuesta exitosa (HTTP 200)

json
{ "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ámetroDescripciónTipo
codeCódigo estado de respuesta. "00" exitoso / "05" no exitoso o errorstring
dataEl detalle de la cuenta solicitadaobject
errorCodeEn caso de error, código del error generadostring
errorMessageMensaje en caso de existir algún errorstring

Estructura del dato data

Nombre parámetroDescripciónTipo
nitEl NIT del comerciostring
nombreComercioNombre registrado del comerciostring
idEstablecimientoID del establecimiento al que pertenece la cuenta bancarialong
nombreEstablecimientoNombre registrado del establecimientostring
cuentaDatos de la cuenta solicitadaobject

Estructura del dato cuenta

Nombre parámetroDescripciónTipo
numeroCuentaNúmero de cuentastring
aliasDescripción / rubro registrado para la cuentastring
estadoDescripción del estado de la cuentastring

5. Lista de cuentas pertenecientes a un NIT

Servicio para obtener la lista de cuentas comercio generadas para el comercio con el NIT enviado.

AtributoValor
Método HTTPGET
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-Typeapplication/json

Datos de entrada

Se envía como parámetros el nit que es el NIT del comercio.

Request — Lista de cuentas

http
600;">GET /cuentas-comercios/v1/cuentas/{nit} Headers: access_token: 1442981c-....-....-b...-ea12258c9... client_id: 1e063b89-....-....-....-ed73d60cbc67 Content-Type: application/json

Respuesta exitosa (HTTP 200)

json
{ "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ámetroDescripciónTipo
codeCódigo estado de respuesta. "00" exitoso / "05" no exitoso o errorstring
dataLa lista de establecimientos y sus respectivas cuentasobject
errorCodeEn caso de error, código del error generadostring
errorMessageMensaje en caso de existir algún errorstring

Estructura del dato data

Nombre parámetroDescripciónTipo
nitEl NIT del comerciostring
nombreComercioNombre registrado del comerciostring
establecimientosLista de los establecimientos pertenecientes a la cuentaLista (object)

Estructura del dato establecimiento

Nombre parámetroDescripciónTipo
idEstablecimientoID del establecimientostring
nombreEstablecimientoNombre del establecimientostring
cuentasLista de cuentas pertenecientes al establecimientoLista (object)

Estructura del dato cuenta

Nombre parámetroDescripciónTipo
numeroCuentaNúmero de cuentastring
aliasDescripción / rubro registrado para la cuentastring
estadoDescripción del estado de la cuentastring

6. Alta de nuevas cuentas

Servicio para la creación de nuevas cuentas comercio para un comercio respectivo.

AtributoValor
Método HTTPPOST
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-Typeapplication/json

Request — Alta Cuentas

http
600;">POST /cuentas-comercios/v1/cuentas Headers: access_token: 1442981c-....-....-b...-ea12258c9... client_id: 1e063b89-....-....-....-ed73d60cbc67 Content-Type: application/json

Body de la petición

json
{ "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ámetroDescripciónTipoTamañoEjemploRequerido/Opcional
nitNIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC)string8 a 20 caracteres"1234567890"Requerido
establecimientoDatos del establecimiento y las cuentasobjectN/A—Requerido

Detalle de establecimiento

Nombre parámetroDescripciónTipoTamañoEjemploRequerido/Opcional
idEstablecimientoID del establecimiento al que pertenecerá(n) la(s) cuenta(s)longN/A123456Requerido
cuentaLista de datos requeridos para las nuevas cuentasobjectN/A—Requerido

Detalle de cuenta

Nombre parámetroDescripciónTipoTamañoEjemploRequerido/Opcional
aliasDescripción para el uso de la cuentastring45"Cuenta de cajas"Requerido
rubroDescripción para el uso de la cuentastring45"Servicios turísticos"Requerido
monedaCódigo de la moneda de la cuenta. Actualmente solo se acepta 068: Boliviastring31Requerido

Respuesta exitosa (HTTP 200)

json
{ "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ámetroDescripciónTipo
codeCódigo estado de respuesta. "00" exitoso / "05" no exitoso o errorstring
dataInformación de las nuevas cuentasobject
errorCodeEn caso de error, código del error generadostring
errorMessageMensaje en caso de existir algún errorstring

Estructura del dato data

Nombre parámetroDescripciónTipo
nitEl NIT del comerciostring
nombreComercioNombre registrado del comerciostring
idEstablecimientoID del establecimientolong
nombreEstablecimientoNombre del establecimientostring
cuentasLista de cuentas pertenecientes al establecimientoList(object)

Estructura del dato cuenta

Nombre parámetroDescripciónTipo
numeroCuentaNúmero de cuentastring
aliasDescripció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.

AtributoValor
Método HTTPPATCH
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-Typeapplication/json

Request - Cambio de estado de cuentas

http
600;">PATCH /cuentas-comercios/v1/cuentas/estados Headers: access_token: 1442981c-....-....-b...-ea12258c9... client_id: 1e063b89-....-....-....-ed73d60cbc67 Content-Type: application/json

Body de la petición

json
{ "nit": "1023149021", "cuentas": [ { "numeroCuenta": "7011113693", "descripcionMotivo": "Sospecha de fraude", "estado": "BLOQUEADA" } ] }

Datos de entrada

Nombre parámetroDescripciónTipoTamañoEjemploRequerido/Opcional
nitNIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC)string8 a 20 caracteres"1234567890"Requerido
cuentasLista de datos de las cuentasobjectN/A—Requerido

Detalle de cuenta

Nombre parámetroDescripciónTipoTamañoEjemploRequerido/Opcional
numeroCuentaNúmero de cuenta que se desea editarstringMáx. 20"7061234561"Requerido
descripcionMotivoResumen de la causa del cambiostring50"sospecha de fraude"Requerido
estadoEstado 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 estadostring12"ACTIVA"Requerido

Respuesta exitosa (HTTP 200)

json
{ "data": [ { "numeroCuenta": "7011113693", "estado": "BLOQUEADA" } ], "code": "00", "errorCode": null, "errorMessage": "" }

Datos de salida

Nombre parámetroDescripciónTipo
codeCódigo estado de respuesta. "00" exitoso / "05" no exitoso o errorstring
dataResultado del nuevo estado de la cuentaobject
errorCodeEn caso de error, código del error generadostring
errorMessageMensaje en caso de existir algún errorstring

Estructura del dato data

Nombre parámetroDescripciónTipo
numeroCuentaNúmero de cuentastring
estadoDescripción del estadostring

8. Conciliación de transacciones

Servicio para obtener la lista de movimientos realizados por todas las cuentas pertenecientes al comercio.

AtributoValor
Método HTTPPOST
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-Typeapplication/json

Request — Conciliación de transacciones

http
600;">POST /cuentas-comercios/v1/cuentas/transacciones Headers: access_token: 1442981c-....-....-b...-ea12258c9... client_id: 1e063b89-....-....-....-ed73d60cbc67 Content-Type: application/json

Datos de entrada

Nombre parámetroDescripciónTipoTamañoEjemploRequerido/Opcional
nitNIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC)string8 a 20 caracteres"1234567890"Requerido
fechaInicioFecha inicial para la consultaDateFormato "yyyy-mm-dd", rango de hasta 31 días2025-02-12Requerido
fechaFinFecha final para la consultaDateFormato "yyyy-mm-dd"2025-03-12Requerido

Body de ejemplo

json
{ "nit": "6731850", "fechaInicio": "2026-05-01", "fechaFin": "2026-05-28" }

Respuesta exitosa (HTTP 200)

json
{ "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ámetroDescripciónTipo
codeCódigo estado de respuesta. "00" exitoso / "05" no exitoso o errorstring
dataLista de movimientos y saldosobject
errorCodeEn caso de error, código del error generadostring
errorMessageMensaje en caso de existir algún errorstring

Estructura de los elementos de data

Nombre parámetroDescripciónTipo
movimientosLista de movimientosLista<object>
saldosLista de saldosLista<object>

Estructura de los elementos de movimientos

Nombre parámetroDescripciónTipo
transactionIdSolo para PAYOUT: es el ID enviado en la petición de autorización (propio de la solicitud)string
tipoOperacionSi se trata de un PAYIN/PAYOUT (método QR/ACH)string
estadoEstado de la transacción (ver sección 12)string
mensajeMensaje/descripción de la transacciónstring
fechaHoraTransaccionFecha y hora registrada de la transacciónDateTime
importeImporte solicitado (PAYIN/PAYOUT)Decimal
importeComisionImporte de comisión, si correspondeDecimal
importeTotalImporte total (importe + importeComision) (debitado)Decimal
monedaDescripción de la moneda de la transacciónstring
cuentaOrigenNúmero de cuenta origen de la transacciónstring
ciClienteOrigenNúmero identificador del dueño de la cuenta origenstring
nombreClienteOrigenNombre del dueño registrado de la cuenta origenstring
codigoBancoOrigenCódigo de la entidad a la que pertenece la cuenta origenstring
nombreBancoOrigenNombre de la entidad a la que pertenece la cuenta origenstring
cuentaDestinoNúmero de cuenta destino de la transacciónstring
ciClienteDestinoNúmero identificador del dueño de la cuenta destinostring
nombreClienteDestinoNombre del dueño registrado de la cuenta destinostring
codigoBancoDestinoCódigo de la entidad a la que pertenece la cuenta destinostring
nombreBancoDestinoNombre de la entidad a la que pertenece la cuenta destinostring
numeroReferenciaNúmero de referencia (numOrdenOriginante)string
numOrdenAchNúmero de orden de ACHstring
numOrdenDestinatarioNúmero de orden de destinatariostring

Estructura de los elementos de saldos

Nombre parámetroDescripciónTipo
numeroCuentaNúmero de cuentastring
estadoEstado de la cuentastring
monedaMoneda de la cuentastring
saldoContableSaldo que se cuenta en la cuentaDecimal
saldoDisponibleSaldo disponibleDecimal
saldoRetenidoSaldo retenidoDecimal
fechaUltimoCreditoFecha del último crédito realizadoDateTime
fechaUltimoDebitoFecha del último débito realizadoDateTime

9. Créditos por cuenta

Servicio para obtener la lista de movimientos de crédito realizados por las cuentas pertenecientes al comercio.

AtributoValor
Método HTTPPOST
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-Typeapplication/json

Request — Créditos por cuenta

http
600;">POST /cuentas-comercios/v1/cuentas/creditos Headers: access_token: 1442981c-....-....-b...-ea12258c9... client_id: 1e063b89-....-....-....-ed73d60cbc67 Content-Type: application/json

Body de la petición

json
{ "nit": "1020263021", "numeroCuenta": [ "7011234561" ], "fechaInicio": "2026-05-01", "fechaFin": "2026-05-31", "tipo": "C" }

Datos de entrada

Nombre parámetroDescripciónTipoTamañoEjemploRequerido/Opcional
nitNIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC)string7 a 20 caracteres"1234567890"Requerido
numeroCuentaLista de número de cuentaArray[string]8 a 20 caracteres cada elemento, solo números, hasta 1 elemento máximo["7012919971"]Requerido
fechaInicioFecha inicial para la consultaDateFormato "yyyy-mm-dd", rango de hasta 31 días2025-03-12Requerido
fechaFinFecha final para la consultaDateFormato "yyyy-mm-dd"2025-03-12Requerido
tipoSiempre se debe enviar "C"string1CRequerido

Respuesta exitosa (HTTP 200)

json
{ "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ámetroDescripciónTipo
codeCódigo estado de respuesta. "00" exitoso / "05" no exitoso o errorstring
dataLista de movimientosobject
errorCodeEn caso de error, código del error generadostring
errorMessageMensaje en caso de existir algún errorstring

Estructura de los elementos de data

Nombre parámetroDescripciónTipo
tipoOperacionSi se trata de un PAYIN QR o ACHstring
estadoEstado de la transacción (misma enviada en webHook del PAYIN/PAYOUT)string
mensajeMensaje/descripción de la transacciónstring
fechaHoraTransaccionFecha y hora registrada de la transacciónDateTime
importeImporte solicitado (PAYIN/PAYOUT)Decimal
monedaDescripción de la moneda de la transacciónstring
cuentaOrigenNúmero de cuenta origen de la transacciónstring
ciClienteOrigenNúmero identificador del dueño de la cuenta origenstring
nombreClienteOrigenNombre del dueño de la cuenta origenstring
codigoBancoOrigenCódigo de la entidad a la que pertenece la cuenta origenstring
nombreBancoOrigenNombre de la entidad a la que pertenece la cuenta origenstring
cuentaDestinoNúmero de cuenta destino de la transacciónstring
ciClienteDestinoNúmero identificador del dueño de la cuenta destinostring
nombreClienteDestinoNombre del dueño registrado de la cuenta destinostring
codigoBancoDestinoCódigo de la entidad a la que pertenece la cuenta destinostring
nombreBancoDestinoNombre de la entidad a la que pertenece la cuenta destinostring
numeroReferenciaSolo para PAYOUT: número de referencia que responde en la petición de autorizaciónstring
numOrdenAchNúmero de orden de ACH en transacciones con entidades externasstring
numOrdenDestinatarioNúmero de orden de destinatario en transacciones con entidades externasstring

10. Débitos por cuenta

Servicio para obtener la lista de movimientos de débito realizados por las cuentas pertenecientes al comercio.

AtributoValor
Método HTTPPOST
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-Typeapplication/json

Request — Generar QR

http
600;">POST /cuentas-comercios/v1/cuentas/debitos Headers: access_token: 1442981c-....-....-b...-ea12258c9... client_id: 1e063b89-....-....-....-ed73d60cbc67 Content-Type: application/json

Body de la petición

json
{ "nit": "1020263021", "numeroCuenta": [ "7011234561" ], "fechaInicio": "2026-05-01", "fechaFin": "2026-05-31", "tipo": "D" }

Datos de entrada

Nombre parámetroDescripciónTipoTamañoEjemploRequerido/Opcional
nitNIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC)string7 a 20 caracteres"1234567890"Requerido
numeroCuentaLista de número de cuentaArray[string]8 a 20 caracteres cada elemento, solo números, hasta 1 elemento máximo["7012919971"]Requerido
fechaInicioFecha inicial para la consultaDateFormato "yyyy-mm-dd", rango de hasta 31 días2025-03-12Requerido
fechaFinFecha final para la consultaDateFormato "yyyy-mm-dd"2025-03-12Requerido
tipoSiempre se debe enviar "D"string1DRequerido

Respuesta exitosa (HTTP 200)

json
{ "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ámetroDescripciónTipo
codeCódigo estado de respuesta. "00" exitoso / "05" no exitoso o errorstring
dataLista de movimientosobject
errorCodeEn caso de error, código del error generadostring
errorMessageMensaje en caso de existir algún errorstring

Estructura de los elementos de data

Nombre parámetroDescripciónTipo
transactionIdSolo para PAYOUT: ID enviado en la petición de autorizaciónstring
tipoOperacionSi se trata de un PAYIN/PAYOUTstring
estadoEstado de la transacción (misma enviada en webHook del PAYIN/PAYOUT)string
mensajeMensaje/descripción de la transacciónstring
fechaHoraTransaccionFecha y hora registrada de la transacciónDateTime
importeImporte solicitado (PAYIN/PAYOUT)Decimal
importeComisionImporte de comisión, si correspondeDecimal
importeTotalImporte total (importe + importeComision) (abonado/debitado)Decimal
monedaDescripción de la moneda de la transacciónstring
cuentaOrigenNúmero de cuenta origen de la transacciónstring
ciClienteOrigenNúmero identificador del dueño de la cuenta origenstring
nombreClienteOrigenNombre del dueño de la cuenta origenstring
codigoBancoOrigenCódigo de la entidad a la que pertenece la cuenta origenstring
nombreBancoOrigenNombre de la entidad a la que pertenece la cuenta origenstring
cuentaDestinoNúmero de cuenta destino de la transacciónstring
ciClienteDestinoNúmero identificador del dueño de la cuenta destinostring
nombreClienteDestinoNombre del dueño registrado de la cuenta destinostring
codigoBancoDestinoCódigo de la entidad a la que pertenece la cuenta destinostring
nombreBancoDestinoNombre de la entidad a la que pertenece la cuenta destinostring
numeroReferenciaSolo para PAYOUT: número de referencia que responde en la petición de autorizaciónstring
numOrdenAchNúmero de orden de ACH en transacciones con entidades externasstring
numOrdenDestinatarioNúmero de orden de destinatario en transacciones con entidades externasstring

11. Saldos

Servicio para obtener los saldos disponibles por cuenta.

AtributoValor
Método HTTPPOST
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-Typeapplication/json

Request — Generar QR

http
600;">POST /cuentas-comercios/v1/cuentas/saldos Headers: access_token: 1442981c-....-....-b...-ea12258c9... client_id: 1e063b89-....-....-....-ed73d60cbc67 Content-Type: application/json

Body de la petición

json
{ "nit": "1020263021", "numeroCuentas": [ "7014227171", "7014227172" ] }

Datos de entrada

Nombre parámetroDescripciónTipoTamañoEjemploRequerido/Opcional
numeroCuentasCuenta o lista de números de cuenta pertenecientes a un comercioArray[string]Hasta 10 elementos["7014227171", "7014227172"]Requerido
nitNIT perteneciente al comercio (debe estar previamente autorizado por el área correspondiente de ATC)string7 a 20 caracteres"1234567890"Requerido

Respuesta exitosa (HTTP 200)

json
{ "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ámetroDescripciónTipo
codeCódigo estado de respuesta. "00" exitoso / "05" no exitoso o errorstring
dataLa lista de transacciones encontradasobject
errorCodeEn caso de error, código del error generadostring
errorMessageMensaje en caso de existir algún errorstring

Estructura del dato data

Nombre parámetroDescripciónTipo
cuentasLista de saldos por número de cuentaobject

Estructura del dato object de cada elemento del array

Nombre parámetroDescripciónTipo
estadoEl estado actual de la cuentastring
numeroCuentaEl número de cuentastring
tipoMonedaEl tipo de moneda de la transacciónstring
saldoDisponibleEl monto del saldo disponible en la cuentadecimal
saldoContableEl monto de saldo total registrado en la cuentadecimal
saldoRetenidoEl monto retenido o temporalmente reservadodecimal
fechaUltimoCreditoFecha y hora del último créditoDateTime
fechaUltimoDebitoFecha y hora del último débitoDateTime

12. Tabla de estados de transacciones

Estados de las tablas para transacciones de PAYIN/PAYOUT.

PAYOUT ASÍNCRONO (Método ACH)

NroEstadoDescripción
1PENDIENTESolicitud creada
2PROCESOProcesando
3ENVIADOEnviado al banco
4PENDIENTE_CONFIRMACIONEsperando confirmación
5COMPLETADOConfirmado
6RECHAZADORechazado
7REVERTIDODevuelto
8CANCELADOSin respuesta

PAYOUT SÍNCRONO (Método QR)

NroEstadoDescripción
1PENDIENTESolicitud creada
2PROCESOProcesando
3COMPLETADOConfirmado
4RECHAZADORechazado
5REVERTIDODevuelto
6CANCELADOSin respuesta

PAYOUT ASÍNCRONO (Método ACH) — variante

NroEstadoDescripción
1PENDIENTESolicitud creada
2PROCESOProcesando
3PENDIENTE_CONFIRMACIONEsperando confirmación
4COMPLETADOConfirmado
5RECHAZADORechazado
6CANCELADOSin respuesta

PAYOUT SÍNCRONO (Método QR) — variante

NroEstadoDescripción
1PENDIENTESolicitud creada
2PROCESOProcesando
3COMPLETADOConfirmado
4RECHAZADORechazado
5CANCELADOSin respuesta

13. Resumen de APIs

MétodoEndpointDescripció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/cuentasAPI para crear una o hasta 1000 cuentas
PATCH/cuentas-comercios/v1/cuentas/estadosCambia el estado de la cuenta
POST/cuentas-comercios/v1/cuentas/transaccionesLista de movimientos y saldos de las cuentas pertenecientes a un comercio
POST/cuentas-comercios/v1/cuentas/creditosLista de movimientos de créditos por cuenta, rango de fechas y tipo
POST/cuentas-comercios/v1/cuentas/debitosLista de movimientos de débitos por cuenta, rango de fechas y tipo
POST/cuentas-comercios/v1/cuentas/saldosLista de saldos a la fecha de la solicitud de las cuentas solicitadas

14. Ambientes

SandboxProducción
URL Basehttps://atcgwapitest.redenlace.com.bo/sandbox/https://api.redenlace.com.bo/
Token BasicSolicitar el user y pass mediante correo electrónicoSolicitar el user y pass mediante correo electrónico

Seguridad de credenciales

information icon

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.