Vista previa · v1
Referencia de la API de Ligo
Una sola URL base y un mismo formato para todos los bancos. Las respuestas son JSON en UTF-8, con importes en decimales junto a su moneda y fechas en ISO 8601.
- REST
- JSON
- Credenciales bajo su control
- Cero custodia
https://api.ligoapi.com/v1 Esta referencia es una vista previa
Ligo está en fase piloto. Esta página describe la API tal como está diseñada para la versión 1: las rutas, los campos y los ejemplos son ilustrativos y pueden cambiar antes de que se publique la referencia definitiva. Si va a integrar durante el piloto, lo hacemos con usted.
Autenticación
Cada petición lleva dos credenciales distintas: la que identifica a su organización ante Ligo y la que su banco emitió a nombre de su empresa.
Ligo emite una clave de API por organización y la entrega durante la incorporación al piloto. Envíela en la cabecera Authorization.
Las credenciales bancarias quedan bajo su control y Ligo no las almacena. Puede entregarlas de dos formas:
En cada petición
Envíelas en la cabecera X-Bank-Credentials. Ligo las usa para esa llamada y las descarta: solo existen en memoria.
Desde su gestor de secretos
Guárdelas en su propia cuenta de AWS Secrets Manager y dé a Ligo un rol de solo lectura limitado a ese secreto. Ligo las lee al momento de la llamada, las mantiene en memoria por un máximo de cinco minutos y usted puede retirar el acceso cuando lo decida.
curl "https://api.ligoapi.com/v1/accounts?bank=banco_general" \ -H "Authorization: Bearer $LIGO_API_KEY" \ -H "X-Bank-Credentials: $BANK_CREDENTIALS" Origen y frescura
Todas las respuestas incluyen dos campos que le dicen cómo se obtuvo el dato y qué tan reciente es.
| Campo | Valores | Qué indica |
|---|---|---|
source | api, file | Cómo obtuvo Ligo el dato: api si lo consultó en la API del banco, file si lo leyó de un archivo que el banco entrega. |
as_of | Fecha y hora en ISO 8601 | El momento en que el dato se leyó en el banco. |
Algunos bancos entregan su información en archivos, con la frecuencia que su empresa tiene contratada con ellos. En ese caso el dato no puede ser más reciente que el último archivo, y as_of se lo indica.
/v1/accounts
Cuentas
Devuelve las cuentas a las que dan acceso las credenciales bancarias de la petición.
| Parámetro | Tipo | Descripción |
|---|---|---|
bank | string | Identificador del banco, por ejemplo banco_general. |
{ "data": [ { "account": "····4821", "type": "checking", "currency": "USD" }, { "account": "····0975", "type": "savings", "currency": "USD" } ], "bank": "banco_general", "source": "api", "as_of": "2026-10-04T14:32:07-05:00"} /v1/accounts/{account}/balances
Saldos
Devuelve el saldo de una cuenta. La respuesta separa el saldo disponible (available) del saldo contable (ledger): no siempre coinciden, y para conciliar hace falta saber cuál es cuál.
| Parámetro | Tipo | Descripción |
|---|---|---|
account | string | Identificador de la cuenta, tal como aparece en la lista de cuentas. |
bank | string | Identificador del banco, por ejemplo banco_general. |
{ "account": "····4821", "bank": "banco_general", "available": { "amount": "128450.75", "currency": "USD" }, "ledger": { "amount": "131200.00", "currency": "USD" }, "source": "api", "as_of": "2026-10-04T14:32:07-05:00"} /v1/accounts/{account}/transactions
Movimientos
Devuelve los movimientos de una cuenta en un rango de fechas, del más reciente al más antiguo y por páginas. Hasta qué fecha se puede consultar hacia atrás depende de cada banco.
| Parámetro | Tipo | Descripción |
|---|---|---|
account | string | Identificador de la cuenta, tal como aparece en la lista de cuentas. |
bank | string | Identificador del banco, por ejemplo banco_general. |
from | date | Primer día del rango, en formato AAAA-MM-DD. |
to | date | Último día del rango, en formato AAAA-MM-DD. |
cursor | string | Cursor de la página siguiente, tomado de next_cursor. |
{ "data": [ { "id": "txn_7f3a91", "date": "2026-10-03", "amount": "-1250.00", "currency": "USD", "description": "ACH PAGO A PROVEEDOR" }, { "id": "txn_7f3a8c", "date": "2026-10-02", "amount": "8400.00", "currency": "USD", "description": "DEPOSITO EN CUENTA" } ], "next_cursor": "cur_9a7b", "bank": "banco_general", "source": "api", "as_of": "2026-10-04T14:32:07-05:00"} Pagos
Los pagos todavía no forman parte de esta referencia. Cuando lo hagan, se ejecutarán en su banco, con sus credenciales y bajo los controles de su banco: Ligo no custodia fondos.
Errores
Cada banco reporta sus fallas a su manera. Ligo las traduce a un mismo conjunto de tipos y conserva el error original del banco en details, para que su equipo pueda diagnosticar.
| Tipo | Qué significa | Qué hacer |
|---|---|---|
bank_unavailable | El banco no respondió o está fuera de servicio. | Reintente más tarde. |
bank_auth_failed | El banco rechazó las credenciales bancarias. | Verifique en su banco que sigan vigentes. |
credential_unavailable | Ligo no pudo obtener las credenciales bancarias. | Revise la cabecera X-Bank-Credentials o el acceso a su gestor de secretos. |
rate_limited | La conexión alcanzó su límite de llamadas. | Espere a que el periodo se renueve antes de reintentar. |
not_supported | El banco no ofrece esa función. | Consulte la cobertura por banco. |
stale_source | El archivo más reciente del banco es más antiguo de lo esperado. | Revise as_of y consulte con su banco la entrega del archivo. |
{ "error": { "type": "bank_auth_failed", "details": { "bank": "banco_general", "status": 401 } }} Límites
Cada banco fija una cuota de llamadas para las credenciales de su empresa. Para que su integración no la agote, Ligo asigna a cada conexión con un banco un presupuesto de llamadas por hora y por día, por debajo de la cuota del banco.
El límite tiene dos pasos: primero una advertencia, después un alto. Al alcanzar el presupuesto, las llamadas responden rate_limited hasta que el periodo se renueva.
Las llamadas idénticas que llegan al mismo tiempo se resuelven con una sola consulta al banco y no gastan cuota adicional.
Los valores dependen de cada banco y se confirman durante la incorporación al piloto.