API de inserción de asistentes
Conecte su CRM, su tienda online o su ERP con QRACCESO: dé de alta asistentes desde su propio sistema y, si quiere, envíeles la acreditación con su código QR por correo electrónico y/o SMS en la misma llamada.
Pensada para registros externos: cuando las inscripciones ya se recogen en otro sitio y solo hace falta que lleguen a QRACCESO con su acreditación.

Cómo se activa
La API no está abierta por defecto: la habilita el equipo de QRACCESO para su cuenta. El alta de la integración se presupuesta según el caso: consulte precio indicándonos qué sistema quiere conectar.
Solicítela
Indíquenos el grupo o evento que quiere integrar.
Recibe su clave
Generamos una clave asociada a ese grupo, opcionalmente restringida a sus IPs.
Integre
Su sistema llama al endpoint de alta con esa clave.
Cada asistente creado por la API consume saldo de asistentes de su cuenta, igual que uno dado de alta desde el panel. Si el saldo se agota, la API responde con un error claro y no crea el registro.
Autenticación
Envíe su clave en la cabecera X-Api-Key. También se admite Authorization: Bearer y, por compatibilidad, el campo api_key en el cuerpo.
- La clave identifica al grupo: cada alta entra en el grupo al que pertenece la clave.
- Si contrató restricción por IP, las llamadas desde otras direcciones se rechazan con
403. - Límite de peticiones: 60 por minuto y clave (120 por IP). Al superarlo se devuelve
429. - Trátela como una contraseña: no la incruste en código de cliente ni en páginas públicas.
Alta de asistente
POST {SU_DOMINIO}/api/v1/insert-assistant
curl -X POST "https://control.qracceso.com/api/v1/insert-assistant" \
-H "X-Api-Key: SU_CLAVE" \
-H "Content-Type: application/json" \
-d '{
"client_uuid": "pedido-8842",
"send_email": true,
"send_sms": true,
"data": {
"Nombre": "Lucía García",
"Email": "lucia@ejemplo.com",
"Teléfono": "+34600111222"
}
}'
El mismo ejemplo en PHP
<?php
$apiKey = 'SU_CLAVE';
$url = 'https://control.qracceso.com/api/v1/insert-assistant';
$payload = [
// Identificador propio de la operación: si repite la llamada con el
// mismo valor, no se crea un asistente duplicado.
'client_uuid' => 'pedido-8842',
'send_email' => true,
'send_sms' => true,
'data' => [
'Nombre' => 'Lucía García',
'Email' => 'lucia@ejemplo.com',
'Teléfono' => '+34600111222',
],
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Api-Key: ' . $apiKey,
'Content-Type: application/json',
'Accept: application/json',
],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
CURLOPT_TIMEOUT => 30,
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$res = json_decode($body, true);
if ($status === 200 && ($res['success'] ?? false)) {
// Guarde el qr_code: es el código que se validará en la puerta.
$qr = $res['data']['qr_code'];
// Los envíos se informan aparte: el alta se crea aunque fallen.
$emailOk = $res['data']['email_sent'] ?? null;
$smsOk = $res['data']['sms_sent'] ?? null;
} elseif ($status === 429) {
// Límite de peticiones: reintente más tarde (con el MISMO client_uuid).
} else {
// 401 clave, 403 IP, 422 datos o saldo agotado.
error_log('QRACCESO ' . $status . ': ' . $body);
}
Parámetros
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
data | objeto | Sí | Un valor por cada campo activo del grupo. La clave de cada dato es la etiqueta del campo tal y como aparece en el panel. |
client_uuid | texto (≤64) | No | Su identificador de la operación. Si repite la llamada con el mismo valor, se devuelve el asistente ya creado en lugar de duplicarlo. Muy recomendable. |
send_email | booleano | No | Envía la acreditación al correo del asistente. |
send_sms | booleano | No | Envía la acreditación por SMS al teléfono del asistente. |
attach_pkpass | booleano | No | Adjunta el pase de Apple Wallet al correo (requiere Wallet configurada). |
language | texto | No | es, en o fr. Por defecto, el idioma del grupo. |
Importante:
datadebe incluir todos los campos activos del grupo, no solo los obligatorios. Si sobra o falta alguno, la respuesta es422. Si añade un campo nuevo al grupo, actualice también su integración.
Respuesta correcta
{
"success": true,
"message": "Asistente creado exitosamente",
"data": {
"id": "…",
"qr_code": "A1B2C3D4E5",
"group_id": "…",
"created_at": "2026-08-04T10:15:00.000000Z",
"email_sent": true,
"sms_sent": true
}
}
El qr_code es el código que se validará en la puerta. Guárdelo si quiere relacionar el asistente con su propio sistema.
Actualización de asistente
POST {SU_DOMINIO}/api/v1/update-assistant
Igual que el alta, pero añadiendo qr_code para identificar al asistente. Solo se actualizan los campos que envíe con valor; los que omita se conservan. Puede reenviar la acreditación con send_email o send_sms.
curl -X POST "https://control.qracceso.com/api/v1/update-assistant" \
-H "X-Api-Key: SU_CLAVE" \
-H "Content-Type: application/json" \
-d '{ "qr_code": "A1B2C3D4E5", "data": { "Empresa": "Nueva Empresa S.L." } }'
Reintentos seguros
Si su sistema pierde la conexión justo después de enviar una petición, no sabrá si el alta se creó. Reintentar sin más crearía un asistente duplicado, con su correo duplicado.
- Envíe un
client_uuidpropio en cada alta (por ejemplo, el identificador de su pedido o inscripción). - Si repite la llamada con el mismo valor, QRACCESO devuelve el asistente que ya creó, marcado con
"idempotent": true. - No se crea un segundo registro ni se reenvía la acreditación.
Códigos de respuesta
| Código | Significado |
|---|---|
200 | Correcto (o reintento idempotente). |
401 | Clave ausente o inválida. |
403 | IP no autorizada. |
404 | Asistente o grupo no encontrado. |
422 | Datos no válidos o saldo de asistentes agotado. |
429 | Demasiadas peticiones. |
El envío de la acreditación
- Correo: se compone con la plantilla de su grupo y adjunta la acreditación en PDF. Si tiene configurado su propio servidor SMTP, sale desde su dominio.
- SMS: se envía con sus credenciales de SMS e incluye el enlace al código QR del asistente.
- Si un envío falla (por ejemplo, un teléfono mal formado o SMTP sin configurar), el asistente se crea igualmente y la respuesta lo indica en
email_sentysms_sent. Su integración puede reintentar solo el envío. - Todos los envíos quedan registrados (destinatario, canal, resultado, fecha y origen de la llamada), para poder auditarlos.
¿Quiere conectar su sistema con QRACCESO?
Cuéntenos qué necesita integrar y le pasamos presupuesto del alta junto con las credenciales de prueba.