Skip to main content
Un link representa la conexión que un usuario tuyo tiene con uno de sus bancos. Es persistente: una vez creado, vive en tu DB asociado a tu user. Cada link tiene un link_id con prefijo link_ + 16 chars hex.

Tipo de titular

holder_type distingue banca personal de empresa: Lo defines al emitir el widget_token (holder_type: "business"). Ver Banca empresa para el flujo completo.

Cómo se crea

Solo vía widget. No hay endpoint público que reciba credenciales en plano. El flow:
  1. Tu backend pide wt_* con POST /v1/widget_tokens.
  2. El widget se abre en el frontend con ese token.
  3. User mete RUT + clave + MFA dentro del widget.
  4. Widget cierra y devuelve et_* al frontend.
  5. Tu backend canjea et_* por link_id con POST /v1/exchange_tokens/{id}.

Estados

Modo realtime (en vivo)

Algunos links (banca empresa, planes premium) se sincronizan en tiempo real: en vez del cron cada 4h, un worker dedicado mantiene la sesión del banco viva y hace poll continuo. El campo realtime te dice si un link está en este modo:
En tu UI, no muestres “cargando” para un link realtime: true. Un sync en curso es su estado normal (siempre se está actualizando), no una carga inicial. Muestra algo como “En vivo” + “actualizado hace X” usando last_sync_at. Interpretar un link realtime como “cargando” confunde al usuario final.

Listar y leer

Query params

Casos típicos

Encontrar links atrasados — los que llevan más tiempo sin sincronizar primero (incluye los que nunca sincronizaron):
last_sync_at:asc usa NULLS FIRST automáticamente: los links que nunca sincronizaron salen antes que los más viejos. Detectar cambios desde tu último poll — recently synced after a timestamp:
Audit de links rotos — los que pasaron a credentials_invalid (el user cambió la clave en el banco y hay que iniciar reconnect):
Para cada uno de esos, puedes disparar el flow de reconnect: POST /v1/widget_tokens { intent: 'reconnect', link_id }.

Sort por last_sync_at y NULLs

  • sort=last_sync_at:ascNULLS FIRST. Útil para encontrar los más atrasados (nunca sincronizados + los más viejos primero).
  • sort=last_sync_at:descNULLS LAST. Útil para encontrar los recién actualizados sin que los nunca-sincronizados inflen el head.

Pausar / despausar

Útil si el user pausó la cuenta en tu app — no quieres seguir haciendo syncs.

Borrar

Borra el link, todas sus cuentas y movimientos asociados, y revoca sus credenciales del vault. Irreversible.