/v1. Cada ruta de negocio requiere un token bearer.
Superficie de la API
Los endpoints de operador están fuera de
/v1.
Autenticación y tenencia
Cada ruta
/v1 toma un token bearer de OAuth2 de Lerian Access Manager. Configura PLUGIN_AUTH_ENABLED=true y PLUGIN_AUTH_HOST para activar la puerta. Producción requiere ambos.
Cada institución mantiene su propio esquema de base de datos. El servicio lee la identidad de la institución del token validado, nunca de un cuerpo de solicitud, un header o un parámetro de ruta.
Idempotencia
Lerian CCS acepta un header
Idempotency-Key. El header es obligatorio en POST /v1/batches y opcional en la ruta de cancelación. Un middleware almacena en caché la primera respuesta y la repite ante una repetición de la misma clave. Las claves pertenecen a una institución, y la retención predeterminada es de 7 días.
Errores
Cada cuerpo de error es un documento de problema RFC 9457 con el tipo de medio
application/problem+json. Cada cuerpo lleva un código de producto. Los valores de código son un contrato congelado, así que un cliente compara con el código, no con el texto del mensaje.
Una ruta cuyos colaboradores fallan al conectarse responde 501.
Eventos
Lerian CCS publica un evento de negocio en su propio tema, con un tema dead-letter correspondiente. El tema y el tipo de evento siguen la regla de nomenclatura de Streaming Hub, con el source de CloudEvents de este servicio como espacio de nombres.
Lleva la postura de entrega crítica. El servicio lo escribe en el outbox transaccional en la misma transacción que el cambio de estado. El streaming está desactivado por defecto. Mientras está desactivado, el servicio conecta un emisor sin operación y no publica nada. Lerian Streaming Hub es la capa de entrega.
Lerian CCS también publica notificaciones en el exchange nombrado por
RABBITMQ_EXCHANGE.
Los documentos en esos payloads están enmascarados.
Convenciones de integración
- Headers.
CORS_ALLOWED_HEADERSno lleva un valor por defecto. Mientras permanezca sin definir, una respuesta de preflight repite los headers que pidió el navegador. Un valor que configures reemplaza ese comportamiento con una lista fija, así que nombra cada header que envíe tu cliente de navegador. - Paginación. Cada ruta de listado limita su propio tamaño de página. Un
limitde 100 o menos se mantiene dentro del límite de cada ruta. - Límites de tasa. El limitador cubre solo
/v1. Las rutas de exportación y despacho llevan niveles más estrictos. - Referencias de archivo. El XML regulatorio permanece en almacenamiento de objetos. Solo las referencias de archivo viajan por la red.

