Recuperar la contraseña
La solicitud se queda en este servidor. No sale ningún mensaje, y la respuesta es la misma si el correo no existe.
erpNo hay una URL pública. Una llamada usa el host que sirve este borrador. Abrir este panel no crea un token.
La sesión es la cookie imma_session o un Bearer de sesión. Los tokens de agente se rechazan al escribir clientes o inventario. La salud no exige sesión.
La organización sale de la sesión. Un identificador de organización enviado por el cliente se ignora.
Una sesión por cookie que escribe debe enviar la cabecera x-imma-request con valor 1. Un Bearer no usa esa cabecera. GET no la exige.
GET de clientes exige customers.read. POST exige customers.write. POST de inventario exige inventory.adjust, solo de propietario y administración. La biblioteca exige sesión. Las capacidades del agente exigen un token de agente y devuelven solo alcances.
POST /api/v1/inventory repite un conteo si se reenvían la misma idempotencyKey y el mismo contenido. Una clave reusada con otro contenido responde 409. Crear un cliente no tiene clave de idempotencia.
La recuperación admite 3 solicitudes por hora para un correo y no dice si existe. Los trabajos de agente paran en 30 por hora para ese token. Las otras rutas montadas no tienen límite HTTP.
Ninguna ruta montada registra ni recibe avisos. Las comprobaciones de firma existen en el dominio del servidor y este botón no las abre.
Emitir un token de servicio y revocarlo exigen un propietario o administrador autenticado y quedan dentro de esa organización. Este encabezado no emite, muestra ni revoca un token. La rotación no está implementada.
POST /api/v1/agent/jobs está montado para un token de agente con jobs.write. El bearer de ejemplo es sintético y no es una clave viva. Este panel no crea un token.
GET /api/health · Comprueba la base. Sin sesión. Sin cadena de conexión.GET /api/v1/health · Comprueba la base y las banderas apagadas. Sin sesión.GET /api/v1/openapi · Documento de máquina. Incompleto. Ve el hueco de arriba.GET /api/v1/customers · Lista los clientes de la organización de la sesión.POST /api/v1/customers · Crea un cliente. Campos code y name. organizationId del cuerpo se ignora.POST /api/v1/inventory · Ajuste de conteo. Campos warehouseId, productId, countedQty, date, idempotencyKey. Los ejemplos de abajo son sintéticos.GET /api/v1/library/search · Consulta q. Biblioteca sin red. No es un estatuto operativo.GET /api/v1/library/citation · Consulta q y locale opcional. Si no hay cita, devuelve el código de error.GET /api/v1/library/coverage · Cuentas de cobertura. No es un visto bueno legal.GET /api/v1/agent/capabilities · Devuelve los alcances del token de agente que llama. No crea uno.GET /api/v1/agent/jobs · Encola un trabajo local para un token de agente con jobs.write. La cuota es 30 por hora. Un token de sesión se rechaza.POST /api/v1/agent/jobs · Encola un trabajo local para un token de agente con jobs.write. La cuota es 30 por hora. Un token de sesión se rechaza.Ejemplo sintético. No es una credencial viva.
SYNTHETIC
Authorization: Bearer imma_sess_EXAMPLE
x-imma-request: 1
{"code":"C-EXAMPLE","name":"Example","organizationId":"ignored"}
{"warehouseId":"00000000-0000-0000-0000-000000000000","productId":"00000000-0000-0000-0000-000000000000","countedQty":"1","date":"2026-11-08","idempotencyKey":"example-count-1"}La solicitud se queda en este servidor. No sale ningún mensaje, y la respuesta es la misma si el correo no existe.