# Rail ## Docs - [Listar cuentas de un link](https://docs.rail.cl/api-reference/accounts/listar-cuentas-de-un-link.md): Devuelve todas las cuentas sincronizadas del link (checking, savings, credit_card). Saldos vienen en minor units (CLP zero-decimal, USD en centavos). Por default oculta accounts que el banco dejó de devolver (`removed_from_link=true`) — pasá `include_removed=true` para verlas. - [Obtener una cuenta](https://docs.rail.cl/api-reference/accounts/obtener-una-cuenta.md) - [Emitir nueva API key](https://docs.rail.cl/api-reference/api-keys/emitir-nueva-api-key.md): Crea una key del tipo (secret/publishable) y modo (test/live) solicitados. La key se devuelve UNA SOLA VEZ en la response — guardala. No hay endpoint para obtenerla después. Rate limit estricto (5/min). - [Listar API keys del cliente](https://docs.rail.cl/api-reference/api-keys/listar-api-keys-del-cliente.md): Devuelve las keys del cliente con metadata (sin la key raw — solo prefijo + last_used). - [Revocar API key](https://docs.rail.cl/api-reference/api-keys/revocar-api-key.md): Invalida la key inmediatamente. Irreversible. - [Rotar API key](https://docs.rail.cl/api-reference/api-keys/rotar-api-key.md): Emite una key nueva y agenda revoke de la vieja tras `grace_hours` (default 24h). La vieja sigue funcionando durante el grace period — útil para rolling deploys. - [Detalle de un evento](https://docs.rail.cl/api-reference/events/detalle-de-un-evento.md) - [Listar eventos del cliente](https://docs.rail.cl/api-reference/events/listar-eventos-del-cliente.md): Audit log inmutable de eventos (refresh_intent.succeeded, link.created, etc). Filtrable por type y link_id. - [Liveness probe](https://docs.rail.cl/api-reference/health/liveness-probe.md): Endpoint sin auth. Devuelve {status, version, uptime}. - [Whoami](https://docs.rail.cl/api-reference/health/whoami.md): Devuelve metadata del cliente autenticado (id, name, mode, key_type). Útil para smoke tests + validar API key. - [Crear link bancario](https://docs.rail.cl/api-reference/links/crear-link-bancario.md): Crea un link con credenciales del usuario y dispara el primer sync en background. Requiere secret key (rail_sk_*). Para flujo white-label sin pasar credenciales por tu servidor, usar `/v1/widget_tokens` en su lugar. - [Eliminar link](https://docs.rail.cl/api-reference/links/eliminar-link.md): Borra el link y CASCADEa accounts, transactions, refresh_intents y tokens asociados. Requiere secret key. Irreversible. - [Listar links del cliente](https://docs.rail.cl/api-reference/links/listar-links-del-cliente.md): Devuelve los links del cliente actual. Filtros opcionales: external_user_id, bank_id, status. Útil para cleanup desde el cliente B2B cuando un end-user es borrado y se quieren cerrar todos sus links, incluyendo los que nunca completaron el sync inicial. - [Obtener un link](https://docs.rail.cl/api-reference/links/obtener-un-link.md): Devuelve el estado actual del link (status, last_sync_at, refresh_status, etc). - [Pausar sync automático](https://docs.rail.cl/api-reference/links/pausar-sync-automático.md): El cron de 4h va a saltar este link hasta que se llame /resume. Los syncs manuales con /refresh_intents siguen funcionando. - [Reanudar sync automático](https://docs.rail.cl/api-reference/links/reanudar-sync-automático.md): Quita el flag de pausa y resetea next_sync_at para que el próximo cron tick lo levante. - [Listar movimientos de una cuenta](https://docs.rail.cl/api-reference/movements/listar-movimientos-de-una-cuenta.md): Paginado por offset/per_page. Por default trae solo movimientos confirmados (`status=confirmed`). Para sync incremental usá `synced_since` (cursor monótono forward) en vez de `since` (que filtra por posted_at, puede ser retroactivo). - [Disparar sync on-demand](https://docs.rail.cl/api-reference/refresh-intents/disparar-sync-on-demand.md): Crea un intent y dispara el sync en background. refresh_type=only_last (default, recomendado): movs recientes, cooldown 5min. refresh_type=historical: 60d + TC facturados, cooldown 60min. Si MFA es requerido, el intent queda en mfa_required hasta que el cliente provea el código via callback o widget… - [Obtener estado del intent](https://docs.rail.cl/api-reference/refresh-intents/obtener-estado-del-intent.md) - [Crear endpoint webhook](https://docs.rail.cl/api-reference/webhooks/crear-endpoint-webhook.md): Registra una URL HTTPS que va a recibir eventos. El secret HMAC se devuelve UNA vez — guardalo. URL debe ser pública (no localhost/RFC1918/metadata). events=[] = recibir todos los eventos legacy (refresh_intent.succeeded/failed/requires_mfa, link.*, account.refreshed, api_key.*). Para los milestones… - [Desactivar endpoint webhook](https://docs.rail.cl/api-reference/webhooks/desactivar-endpoint-webhook.md): Soft-delete: setea active=false. El endpoint queda en DB para auditoría. - [Detalle de un delivery](https://docs.rail.cl/api-reference/webhooks/detalle-de-un-delivery.md) - [Listar deliveries de webhook](https://docs.rail.cl/api-reference/webhooks/listar-deliveries-de-webhook.md): Auditoría de cada intento de delivery (attempts, status, last_response). - [Listar endpoints webhook](https://docs.rail.cl/api-reference/webhooks/listar-endpoints-webhook.md) - [Obtener endpoint webhook](https://docs.rail.cl/api-reference/webhooks/obtener-endpoint-webhook.md) - [Reintentar delivery](https://docs.rail.cl/api-reference/webhooks/reintentar-delivery.md): Encola un nuevo intento del delivery (útil para failed/timeouts). - [Canjear exchange token por link](https://docs.rail.cl/api-reference/widget/canjear-exchange-token-por-link.md): Recibe el et_* devuelto por el widget y lo cambia por el link_id final. Single-use, requiere secret key. - [Crear widget token](https://docs.rail.cl/api-reference/widget/crear-widget-token.md): Emite un token efímero wt_* (TTL 10min) para abrir el widget de Rail. Después de que el user conecta el banco, el widget devuelve un et_* que se canjea server-side con POST /v1/exchange_tokens/:id por el link_id. - [Autenticación](https://docs.rail.cl/authentication.md): Modelo de 4 credenciales — sk, pk, wt, et. - [Bancos soportados](https://docs.rail.cl/banks.md): Instituciones disponibles, tipos de producto e histórico por banco. - [Cuentas](https://docs.rail.cl/concepts/accounts.md): Productos bancarios bajo un link: cuentas vista, ahorro y tarjetas de crédito. - [Eventos](https://docs.rail.cl/concepts/events.md): Catálogo completo de event types con shape de cada event.data. - [Links](https://docs.rail.cl/concepts/links.md): Un link es la conexión persistente entre un usuario tuyo y un banco. - [Movimientos](https://docs.rail.cl/concepts/movements.md): Cargos y abonos de una cuenta. - [Refresh Intents](https://docs.rail.cl/concepts/refresh-intents.md): Sync on-demand de un link, con soporte para MFA async. - [Errores](https://docs.rail.cl/guides/errors.md): Shape estándar y catálogo de error codes. - [Idempotency](https://docs.rail.cl/guides/idempotency.md): Reintentá POSTs sin riesgo de doble efecto. - [Manejo de MFA](https://docs.rail.cl/guides/mfa-handling.md): Walkthrough end-to-end del flow MFA async, desde el backend hasta el widget. - [Paginación](https://docs.rail.cl/guides/pagination.md): Paginación con header Link RFC 5988 + X-Total-Count. - [Webhooks](https://docs.rail.cl/guides/webhooks.md): Recibí eventos de Rail en tu backend con firma HMAC. - [Widget Rail Connect](https://docs.rail.cl/guides/widget.md): Integrar el widget para que tus users conecten sus bancos sin compartir credenciales con tu app. - [Introducción](https://docs.rail.cl/introduction.md): Rail es un agregador bancario chileno read-only. Conectá las cuentas bancarias de tus usuarios con un par de llamadas HTTP. - [Quickstart](https://docs.rail.cl/quickstart.md): Conectá una cuenta bancaria y leé movimientos en 5 minutos. - [Rate limits](https://docs.rail.cl/rate-limits.md): Límites por endpoint y cómo manejar respuestas 429. ## OpenAPI Specs - [openapi](https://docs.rail.cl/api-reference/openapi.json)