Documentación pública · Integradores

Integra Roustix con confianza.

Contrato oficial REST: autenticación JWT, multi-tenant, recursos de negocio, webhooks y OpenAPI. Evalúa la API antes de comprar — sin login.

Toda la operación.Una sola plataforma.

Las API keys y el entorno sandbox requieren cuenta en Roustix. Esta guía describe el contrato; las credenciales se obtienen tras autenticarte en la plataforma.

01 · Filosofía

La forma oficial de integrarse.

La API no es un atajo al backend: es el contrato estable para ERP, CRM, automatizaciones y partners.

#Principio
1REST predecible · JSON
2Tenant-first — toda operación en contexto de empresa
3Segura por defecto — JWT, roles y límites
4Versionada — /api/v1 estable
5Errores claros y códigos HTTP correctos
6Si no está documentado aquí, no es contrato oficial

02 · Autenticación

Una identidad. Un token. Una empresa.

El JWT identifica usuario, tenant, rol, plan y módulos. No reenvíes contraseñas en cada solicitud.

POST/api/v1/auth/login
{ "token": "<jwt>", "expires_in": 28800, "user": { "id": 15, "nombre": "Ana García", "rol": "admin" }, "empresa": { "id": 4, "slug": "empresa-xyz", "nombre": "Empresa XYZ" } }

Algoritmo HS256 · refresco documentado en el capítulo · scopes por módulo activo.

03 · Multi-tenant

Una plataforma. Miles de empresas. Cero mezcla de datos.

Cada token vive en el contexto de una empresa. El aislamiento es regla de negocio, no solo de infraestructura.

Usuario → Tenant → Plan → Módulos → Permisos → Acción
  • Filtrado por empresa_id en cada recurso
  • Acceso cross-tenant → 404 (anti-enumeración)
  • Módulos y permisos según el plan del tenant

04 · Recursos REST

La API no expone tablas. Expone recursos de negocio.

/api/v1
├── auth · me
├── maintenance/assets · work-orders
├── inventory/products · movements
├── purchasing · sales · crm   (según roadmap / plan)
└── admin

Contrato en inglés · envelope data + meta + links · paginación e idempotencia documentadas.

05 · Convenciones

Una API consistente es una API predecible.

Style guide oficial: inglés en el contrato, snake_case, fechas ISO 8601, códigos de error en UPPER_SNAKE_CASE.

06 · Errores

Los errores también forman parte del contrato.

{ "error": { "code": "RESOURCE_NOT_FOUND", "message": "Activo no encontrado", "details": {} } }

Catálogo oficial · X-Request-Id · sin stack traces en producción.

07 · Versionado

Una API cambia. El contrato no se rompe.

Base estable /api/v1. Cambios incompatibles → nueva versión. Cabeceras de deprecación cuando aplique.

08 · Webhooks

REST responde. Webhooks notifican.

Eventos como work_order.created y stock.low, firma X-Roustix-Signature e idempotencia con X-Event-Id.

09 · Ejemplos y SDK

Una buena API se entiende. Una excelente también se ejecuta.

cURL, Python y JavaScript · OpenAPI → SDK · colecciones Postman en el portal MSD.

POST/api/v1/auth/login
GET/api/v1/maintenance/assets

10 · Límites y buenas prácticas

Estable, segura y predecible.

Rate limit, timeouts, reintentos, paginación, caché y checklist para integradores.

429RATE_LIMIT_EXCEEDED · Retry-After: 60

¿Listo para llamar la API? Crea tu cuenta, activa el módulo y genera credenciales en la plataforma. La arquitectura interna (MPA) no forma parte de este contrato público.