API de Ordis
Ordis publica los datos contables y tributarios de tu empresa en JSON, de solo lectura. Documentos tributarios, F29, F22, indicadores del mes, flujo de caja, liquidaciones, nómina, boletas de honorarios, movimientos bancarios y deudas: lo mismo que ves en tu portal, en un formato que puede leer una planilla, un tablero o un agente de IA.
Todos los endpoints son GET. Ninguna llave puede crear, modificar ni borrar un dato, y nada de lo que hagas acá declara ni presenta algo ante el SII.
Para quién es
Para clientes de Ordis con plan Estratégico o Avanzado y el acceso a la API habilitado. La llave la creas tú desde tu portal, en Configuración y luego API Keys. Si no ves esa sección, escríbenos a hola@ordis.cl y la activamos.
Si solo quieres mirar tus números, no necesitas una llave: el portal ya los muestra. La API es para cuando quieres tenerlos en otra parte.
Crear tu llave en el portalAutenticación
Cada solicitud viaja con la llave en el header Authorization, con el esquema Bearer. La llave es el prefijo fijo ordis_sk_ seguido de 43 caracteres, 52 en total.
Se muestra una sola vez, al crearla: Ordis guarda solo su hash y no puede recuperarla después, ni siquiera para darte soporte. Guárdala en una variable de entorno, nunca en el código ni en un archivo que subas a un repositorio. Si se filtró, revócala desde el portal y crea otra.
export ORDIS_API_KEY="ordis_sk_..."
curl -s https://ordis.cl/api/v1/me \
-H "Authorization: Bearer $ORDIS_API_KEY"Empieza siempre por /api/v1/me: confirma contra qué empresa quedó apuntando la llave y devuelve el catálogo de endpoints disponibles. La empresa sale de la llave, así que ningún endpoint acepta un identificador de empresa por parámetro.
Endpoints
Los parámetros de cada uno, los campos de la respuesta y los errores posibles están en la especificación. Esta tabla se genera desde ahí, así que no puede quedar desactualizada.
| Método | Ruta | Qué devuelve |
|---|---|---|
| GET | /api/v1/me | Identidad de la llave y catálogo de endpoints. |
| GET | /api/v1/facturas | Documentos tributarios emitidos y recibidos. |
| GET | /api/v1/facturas/{id}/pdf | Referencia segura al PDF de un documento. |
| GET | /api/v1/facturas/{id}/archivo | Descarga un artefacto directo aceptado. |
| GET | /api/v1/f29 | Formulario 29 mensual: IVA, PPM, retenciones y total a pagar. |
| GET | /api/v1/f22 | Formulario 22 anual: resultado a pagar o devolución por año tributario. |
| GET | /api/v1/kpis | Ventas, gastos, impuestos del F29 y resultado del período. |
| GET | /api/v1/flujo-caja | Flujo de caja del año, mes a mes. |
| GET | /api/v1/movimientos-banco | Movimientos de las cartolas bancarias cargadas. |
| GET | /api/v1/deudas | Créditos, leasing, tarjetas y cuentas por cobrar. |
| GET | /api/v1/liquidaciones | Liquidaciones de sueldo aprobadas. |
| GET | /api/v1/trabajadores | Nómina completa con estado por trabajador. |
| GET | /api/v1/boletas-honorarios | Boletas de honorarios recibidas, con retención y estado. |
Endpoints públicos
Estos dos no piden llave y no contienen datos de ningún cliente.
| Método | Ruta | Qué devuelve |
|---|---|---|
| GET | /api/health | Estado del servicio. |
| GET | /api/indicadores | UF, UTM y dólar observado del día. |
Límites y errores
| Límite | Valor | Nota |
|---|---|---|
| Solicitudes por llave | 60 / min | Ventana de 60 segundos. Aproximado: el contador vive en memoria de cada instancia del servidor. |
| Solicitudes por dirección IP | 240 / min | Freno anti abuso, previo a validar la llave. Una oficina entera puede compartir la IP de salida. |
| Filas por página | 200 | En documentos, movimientos bancarios y boletas de honorarios. Estos tres aceptan page, y meta.has_more dice si falta traer más. |
| Filas sin paginación | 500 y 200 | Nómina hasta 500 filas y deudas hasta 200. Estos dos no aceptan page: si meta.has_more llega en true, la respuesta viene truncada y no hay página siguiente que pedir. Acota el conjunto con los filtros del endpoint, por ejemplo estado. |
| Llaves activas por empresa | 5 | Revoca las que ya no uses antes de crear una nueva. |
Al pasarte del límite recibes un 429 con el header Retry-After, en segundos. Espera lo que indique y reintenta.
Para no llegar a ese punto, cada respuesta autenticada trae tres headers estándar que describen tu cuota por llave: RateLimit-Limit (el techo, 60), RateLimit-Remaining (cuántas te quedan, contando esta ya consumida) y RateLimit-Reset (segundos hasta que se libera cupo). Míralos para auto-regularte y bajar el ritmo antes de agotar la cuota.
Todos los errores son JSON con la misma forma. El campo error es un mensaje para una persona y puede cambiar, así que no lo uses como condición en tu código. El campo codigo es estable: úsalo tú.
{
"error": "Acceso no habilitado",
"codigo": "acceso_no_habilitado"
}- 401 la llave falta, está mal escrita o fue revocada. Crea una nueva desde el portal.
- 403 el acceso a la API no está habilitado para la empresa. Escríbenos.
- 400 un parámetro está mal formado. El mensaje nombra cuál.
Versionado y estabilidad
La API se versiona en la ruta: /api/v1. Un cambio incompatible se publica como una versión nueva bajo su propio prefijo, nunca mutando la forma de una versión vigente. Puedes construir sobre v1 sin que un campo cambie de tipo o desaparezca de un día para otro.
Si alguna vez se deprecara una versión, lo anunciaremos con al menos seis meses de anticipación mediante los headers Deprecation y Sunset (RFC 8594) en sus respuestas y en esta documentación. Hoy v1 es la versión vigente y no emite ninguno de los dos.
Recursos para agentes
Si vas a conectar un agente de IA, estos tres archivos son lo que conviene darle a leer primero.
- /openapi.json especificación OpenAPI 3.1 completa: parámetros, campos de respuesta y errores de cada endpoint.
- /llms.txt resumen breve de qué es Ordis, en texto plano.
- /llms-full.txt la versión extendida del anterior.
Al conectar tus datos a una herramienta externa, esa herramienta y lo que haga con ellos quedan de tu lado. Ordis publica el endpoint y nada más: no corre tu integración ni ve el otro extremo del cable.