API REST
La API REST cubre el CRUD de todas las entidades del ERP. Para operaciones transaccionales multi-documento existe FactuAPI.
Base URL
Sección titulada «Base URL»http://localhost:3000/apiAutenticación paso a paso
Sección titulada «Autenticación paso a paso»-
Haz login para obtener el JWT:
Ventana de terminal curl -X POST http://localhost:3000/api/auth/login \-H "Content-Type: application/json" \-d '{"email":"admin@keirost.es","password":"admin123"}' -
Usa el token y el tenant en todas las peticiones:
Authorization: Bearer <token>x-tenant-id: <tenantId> -
Para cambiar de empresa sin re-login:
POST /api/auth/switch-tenant.
Detalles de roles y sesión en Autenticación.
Convenciones
Sección titulada «Convenciones»- Cuerpo y respuestas en JSON (
Content-Type: application/json). - IDs de entidades en formato UUID.
- Algunos listados aceptan parámetros de paginación y filtro por query string (por ejemplo
?page=1&limit=50en Auditoría o?limit=10&offset=0en Notificaciones); consulta la página de cada recurso. - Los documentos usan estados de una letra (
Dborrador,Oabierto/asentado,Pparcial,Ccerrado,Xcancelado) — ver Documentos de venta.
Ejemplo end-to-end
Sección titulada «Ejemplo end-to-end»# 1. LoginTOKEN=$(curl -s -X POST http://localhost:3000/api/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"admin@keirost.es","password":"admin123"}' | jq -r .token)
# 2. Crear una factura de ventacurl -X POST http://localhost:3000/api/sales/invoices \ -H "Authorization: Bearer $TOKEN" \ -H "x-tenant-id: <tenantId>" \ -H "Content-Type: application/json" \ -d '{ "seriesId": "uuid-serie", "periodId": "uuid-periodo", "partnerId": "uuid-socio", "date": "2026-07-23", "lines": [ { "itemId": "uuid-articulo", "quantity": 10, "price": 25.50, "taxGroupId": "uuid-impuesto" } ] }'
# 3. Asentarla (borrador → asentada)curl -X POST http://localhost:3000/api/sales/invoices/<id>/post \ -H "Authorization: Bearer $TOKEN" \ -H "x-tenant-id: <tenantId>"