Códigos QR de aprovisionamiento

Crea un código QR que inscribe un dispositivo Android nuevo o restablecido de fábrica en tu empresa con una política determinada.

Cómo funciona

Cada solicitud crea un nuevo token de inscripción para la política y devuelve un código QR que lo contiene. El código deja de funcionar 24 horas después de su creación; la respuesta proporciona la hora exacta en expiresAt. Crea un código cuando alguien esté a punto de configurar dispositivos y crea uno nuevo en lugar de reutilizar uno anterior.

Para usar el código, toca seis veces la pantalla de bienvenida del asistente de configuración del dispositivo, conéctate a la red Wi-Fi si se te solicita y escanéalo. Un dispositivo solo puede inscribirse de esta manera cuando es nuevo o se ha restablecido de fábrica.

Las políticas exclusivas para VR no se pueden aprovisionar con un código QR: sus dispositivos se aprovisionan con Nomid Ops a través de USB.

Requisitos

  • Una clave de API con el permiso PROVISIONING, combinado con POLICIES_READ. Solo un usuario del portal que tenga permiso para aprovisionar dispositivos y tenga acceso a todas las políticas puede crear una clave con PROVISIONING.
  • La empresa debe haber finalizado su inscripción en Android Enterprise.
  • Los clientes MCP que se conectan con Sign in with Nomid en lugar de una clave de API necesitan el alcance mcp:provisioning, y la configuración de aprovisionamiento de la empresa en Acceso de agentes de IA en el portal debe estar activada.

Endpoint

La ruta es relativa a la URL base de la API y requiere el encabezado X-API-Key. Una solicitud exitosa devuelve 201 Created.

MétodoEndpointDescripción
POST/policies/{policyId}/provisioning-qr-codesCrea un código QR de aprovisionamiento para una política, con un nuevo token de inscripción

Cuerpo de la solicitud

Todos los campos son opcionales: envía un objeto JSON vacío para obtener un código sin Wi-Fi y con el uso personal predeterminado. Un campo desconocido devuelve 400.

CampoValoresDescripción
personalUsageUNSPECIFIED, ALLOWED, DISALLOWED, USERLESSCómo se utiliza el dispositivo: ALLOWED para un perfil de trabajo en un dispositivo de propiedad personal, DISALLOWED para un dispositivo totalmente administrado propiedad de la empresa, USERLESS para un dispositivo dedicado sin una cuenta de usuario. UNSPECIFIED es el valor predeterminado si se omite.
wifiSsidUna red Wi-Fi a la que se conecta el dispositivo durante la configuración. Hasta 32 bytes en UTF-8. Los espacios que la rodean se conservan como parte del nombre.
wifiPasswordLa contraseña de wifiSsid, de hasta 63 bytes en UTF-8. Una contraseña WPA tiene al menos 8 bytes. Una clave WEP tiene 5 o 13 caracteres ASCII, o 10 o 26 dígitos hexadecimales. Nunca se devuelve.
wifiSecurityNONE, WPA, WEPLa seguridad de wifiSsid. El valor predeterminado es WPA cuando se proporciona una contraseña y NONE en caso contrario. NONE no admite contraseña, y WPA y WEP requieren una.
wifiHiddenIndica si wifiSsid es una red oculta. El valor predeterminado es false.

wifiPassword, wifiSecurity y wifiHidden necesitan wifiSsid.

Respuesta

CampoDescripción
policyIdEl nombre de la ruta de la política, el policyId con el que se inscriben los dispositivos.
policyNameEl nombre para mostrar de la política.
personalUsageEl modo de uso personal del token de inscripción.
expiresAtCuándo deja de inscribir dispositivos el código QR.
wifiSsidLa red Wi-Fi a la que se conecta el dispositivo durante la configuración. Se omite cuando no se proporcionó ninguna.
imageLa imagen del código QR: mimeType (image/png) y data, los bytes de la imagen en base64.
portalUrlUn enlace a la política en el portal de Nomid.

Ejemplo

Cree un código para un dispositivo totalmente administrado que se conecta a una red WPA durante la configuración. jq crea el cuerpo a partir de una variable de entorno, de modo que la contraseña se escape correctamente y no termine en el historial de su shell.

curl -X POST "https://api.nomid.tech/emm/api/v1/policies/p7k2m9qa4xz/provisioning-qr-codes" \
  -H "X-API-Key: $NOMID_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg password "$WIFI_PASSWORD" \
    '{personalUsage: "DISALLOWED", wifiSsid: "Warehouse", wifiPassword: $password}')"
HTTP/1.1 201 Created

{
  "policyId": "p7k2m9qa4xz",
  "policyName": "Warehouse scanners",
  "personalUsage": "DISALLOWED",
  "expiresAt": "2026-10-11T14:30:00Z",
  "wifiSsid": "Warehouse",
  "image": {
    "mimeType": "image/png",
    "data": "iVBORw0KGgoAAAANSUhEUgAA..."
  },
  "portalUrl": "https://portal.nomid.tech/#/acme/acme/policy/p7k2m9qa4xz"
}

Decodifique data desde base64 para obtener el PNG. Los datos de la imagen se han acortado aquí.

Error: política exclusiva de VR

HTTP/1.1 409 Conflict
Content-Type: application/problem+json

{
  "type": "about:blank",
  "title": "Conflict",
  "status": 409,
  "detail": "Policy q4vr8headset is a VR-only policy: its devices are provisioned with Nomid Ops over USB, not with a QR code.",
  "instance": "/emm/api/v1/policies/q4vr8headset/provisioning-qr-codes",
  "code": "unsupported",
  "retryable": false
}

Errores

Una vez autenticada la clave de API, los errores utilizan application/problem+json con dos campos adicionales: code, un identificador estable para bifurcar la lógica, y retryable, que indica si la misma solicitud se puede enviar de nuevo. Un cuerpo que no se puede leer es la excepción, descrita en la fila del 400. Una clave ausente o no válida recibe la respuesta 401 compartida, un objeto JSON pequeño con error, message y status. La herramienta MCP devuelve el mismo código y mensaje como un error de herramienta.

EstadoCódigoSignificado
400invalid_argumentsUna opción no es válida: un valor de personalUsage o wifiSecurity desconocido, un campo de Wi-Fi sin wifiSsid, o un nombre de Wi-Fi, contraseña o seguridad que no cumple con las reglas anteriores. El detalle indica cuál. Un cuerpo que no sea un JSON válido, o que tenga un campo desconocido, también devuelve 400, como detalles del problema sin code ni retryable.
401-La clave de API falta, no es válida, ha expirado o ha sido revocada.
403forbiddenLa clave carece de PROVISIONING o POLICIES_READ.
404not_foundNo hay ninguna política con este policyId en la empresa de la clave.
409unsupportedLa política no puede aprovisionar dispositivos con un código QR: es una política solo para VR, o la empresa no ha finalizado su inscripción de Android Enterprise.
422refusedLa política se eliminó.
429rate_limitedDemasiadas solicitudes de escritura para esta clave. El encabezado Retry-After y el detalle indican los segundos que se deben esperar. retryable es true.
502provider_errorGoogle no creó el token de inscripción. No se creó ningún código QR. retryable es true: vuelva a intentarlo en un momento.

Límites de frecuencia

Cada solicitud cuenta para el límite de escritura de 10 solicitudes por minuto por clave, compartido con los extremos de comandos de dispositivos y cambios de políticas, y las herramientas de escritura MCP. Una conexión de Sign in with Nomid que llama a create_provisioning_qr_code consume el mismo límite, contabilizado por conexión. Las solicitudes que no superan las comprobaciones de permisos o la validación de argumentos no se contabilizan.

Herramienta MCP

La herramienta MCP create_provisioning_qr_code admite las mismas opciones, con policyId como argumento. Devuelve el código QR como un bloque de imagen MCP, para que el asistente pueda mostrárselo al usuario sin leerlo.

Servidor MCP

Elija su horario

Cargando...
Abrir el calendario de reservas