Referencia rápida PHP / API
5 pasos para conectar tu aplicación. Funciona con Postman, cURL o cualquier cliente HTTP.
URL base: https://api.punchconnect.com/api/v2/zk
Configura tus encabezados de autenticación
Cada solicitud necesita estos encabezados. Obtén tus credenciales desde el panel.
| Encabezado | Valor |
|---|---|
X-CLIENT-ID | Tu client ID de la API |
X-CLIENT-SECRET | Tu client secret de la API |
Content-Type | application/json |
Accept | application/json |
curl https://api.punchconnect.com/api/v2/zk/devices \
-H "X-CLIENT-ID: your_client_id" \
-H "X-CLIENT-SECRET: your_client_secret" \
-H "Content-Type: application/json" \
-H "Accept: application/json"Listar y actualizar dispositivos
Los dispositivos se registran a través del panel. Usa la API para listarlos y actualizarlos.
curl https://api.punchconnect.com/api/v2/zk/devices \
-H "X-CLIENT-ID: your_client_id" \
-H "X-CLIENT-SECRET: your_client_secret" \
-H "Accept: application/json"Actualizar un dispositivo:
curl -X PUT https://api.punchconnect.com/api/v2/zk/devices/1 \
-H "X-CLIENT-ID: your_client_id" \
-H "X-CLIENT-SECRET: your_client_secret" \
-H "Content-Type: application/json" \
-d '{
"name": "Main Entrance",
"site_name": "Head Office",
"site_id": 1,
"timezone": 1
}'También disponible: GET /devices/{id} para obtener los detalles de un solo dispositivo.
Agregar un empleado a un dispositivo
curl -X POST https://api.punchconnect.com/api/v2/zk/employees \
-H "X-CLIENT-ID: your_client_id" \
-H "X-CLIENT-SECRET: your_client_secret" \
-H "Content-Type: application/json" \
-d '{
"user_id": "EMP-0042",
"uid": 1001,
"name": "Ahmed Mansouri",
"card_no": "0012345678",
"privilege": "user",
"verify_mode": 1,
"device_id": 1
}'| Campo | Tipo | Requerido |
|---|---|---|
user_id | string | Sí |
uid | integer | Sí |
name | string | Sí |
device_id | integer | Sí |
employee_id | integer | No |
card_no | string | No |
password | string | No |
privilege | "user" or "admin" | No |
verify_mode | integer (1–15) | No |
Otros endpoints: PUT /employees/{id} (actualizar), DELETE /employees/{ids} (eliminar, separados por coma), GET /devices/{device}/employees (listar empleados en un dispositivo), POST /employees/{id}/sync-from-device (obtener desde el dispositivo).
Enviar registros de asistencia
curl -X POST https://api.punchconnect.com/api/v2/zk/attendances/push \
-H "X-CLIENT-ID: your_client_id" \
-H "X-CLIENT-SECRET: your_client_secret" \
-H "Content-Type: application/json" \
-d '[
{
"id": 5001,
"uid": 1001,
"timestamp": "2026-03-10 08:01:23",
"site_id": 1,
"site_name": "Head Office",
"device_name": "Main Entrance",
"mac_address": "AA:BB:CC:DD:EE:FF"
}
]'{
"status": true,
"data": [5001]
}Obtener registros: GET /devices/{device}/attendances. Eliminar: DELETE /devices/{device}/attendances/{ids}.
Enviar comandos al dispositivo
curl -X POST https://api.punchconnect.com/api/v2/zk/commands \
-H "X-CLIENT-ID: your_client_id" \
-H "X-CLIENT-SECRET: your_client_secret" \
-H "Content-Type: application/json" \
-d '{ "device_id": 1, "command": "reboot" }'| Comando | Qué hace |
|---|---|
reboot | Reiniciar el dispositivo (~30s de inactividad) |
clear_log | Borrar el registro de asistencia en el dispositivo |
clear_data | Eliminar todos los empleados + asistencia del dispositivo |
clear_admins | Eliminar privilegios de administrador de todos los usuarios en el dispositivo |
Códigos de error
| Estado | Significado |
|---|---|
| 200 | Éxito |
| 401 | Credenciales de API inválidas o faltantes |
| 404 | Recurso no encontrado |
| 422 | Error de validación (verifica tus campos) |
| 429 | Límite de tasa excedido — reduce la frecuencia |
| 500 | Error del servidor — reintenta más tarde |