Vinculación por QR
El QR impreso
Cada equipo sale de fábrica con un QR pegado que contiene una URL:
https://web.linter-iot-stg.icent.digital/v/<payload>El payload es pedido.mac.cliente.icc.partNumber:
| Segmento | Ejemplo | Notas |
|---|---|---|
| pedido | PED-2026-04-1832 | Orden de fabricación / pedido |
| mac | A4CF12BB73D4 | Se normaliza a minúsculas → deviceId |
| cliente | Autocolor | Etiqueta informativa |
| icc | 8934… | ICC de la SIM (vacío si el equipo es WiFi) |
| partNumber | GJ30 | Debe existir en el catálogo de tipos |
La API acepta el QR tanto en forma URL como en payload crudo en todos los endpoints de vinculación.
Flujo
- Escaneo — el cliente final (o el instalador) abre la URL del QR:
- Sin sesión: la página pública ofrece iniciar sesión o crear cuenta
(el registro crea un cliente + usuario en estado
PENDING). - Con sesión: directo al asistente con el equipo precargado.
- Sin sesión: la página pública ofrece iniciar sesión o crear cuenta
(el registro crea un cliente + usuario en estado
- Solicitud —
POST /v1/bindings/scan { qr }crea una Assignment enPENDING_REVIEW. Si hay reglas de notificación configuradas, Linter recibe un email con el ICC para activar la SIM.- Los roles comerciales (filial, distribuidor, instalador) indican además el
cliente final en la misma llamada:
client: { email, companyName?, fiscalId?, description? }. Con un email ya registrado el equipo se vincula a ese cliente; con uno nuevo se crea el cliente enPENDING(deduplicado por CIF) con ese email como contacto.
- Los roles comerciales (filial, distribuidor, instalador) indican además el
cliente final en la misma llamada:
- Aprobación — ROOT revisa en Vinculaciones y aprueba
(
POST /v1/assignments/:id/approve): se materializa elDeviceen estadoACTIVEy, si el solicitante venía del registro self-service, su cuenta y su cliente se activan a la vez. Si la solicitud la tramitó un rol comercial, el cliente queda además ligado a su cadena (visible en su cartera). El solicitante recibe un email. - Reinstalación — volver a vincular una MAC a otro cliente desactiva la asignación anterior (el histórico nunca se borra) y requiere confirmación explícita.
Endpoints relacionados
| Endpoint | Uso |
|---|---|
POST /v1/public/qr-preview | Identidad de catálogo del QR (pública, sin datos comerciales) |
POST /v1/bindings/preview | Identidad + estado de vinculación (autenticado) |
POST /v1/bindings/scan | Crear la solicitud (PENDING_REVIEW); roles comerciales añaden client |
POST /v1/bindings/client-lookup | ¿El email pertenece a un cliente registrado? (roles comerciales) |
POST /v1/bindings | Alta directa por administrador (auto-aprobada) |
GET /v1/assignments | Cola de vinculaciones del ámbito |
POST /v1/assignments/:id/approve / …/reject | Decisión de ROOT |