Aplica a: NominaHQ Roles: Acceso total y Administrador (crear, editar y eliminar suscripciones); todos los roles del personal pueden ver la página. Referencias regulatorias: ninguna
Los Webhooks permiten que NominaHQ avise a sus propios sistemas cada vez que ocurre un evento de planilla (por ejemplo, una planilla aprobada, pagada o contabilizada, o un Décimo contabilizado). NominaHQ envía una solicitud HTTP POST con los datos del evento a la URL que usted registre, firmada con HMAC-SHA256 para que su sistema pueda verificar el origen. La página también recibe webhooks de sistemas externos (Bancos, relojes de marcación) y muestra una bitácora de cada intento de entrega. Esta función la usa el personal técnico del proveedor que integra NominaHQ con otros sistemas.
Menú lateral: Configuración > Webhooks (ruta /settings/webhooks).
Las suscripciones y entregas son por empresa (cliente): la página muestra siempre las del cliente activo seleccionado.
payroll.run.posted).X-NominaHQ-Signature y permite a su sistema confirmar que el mensaje proviene de NominaHQ y no fue alterado./api/v1/webhooks/{source}. NominaHQ guarda el cuerpo para procesarlo y auditarlo.https:// de su sistema que recibirá los eventos. Obligatorio.* para recibir todos los eventos, o una lista de claves separadas por comas (por ejemplo payroll.run.posted,decimo.posted). Opcional; si lo deja vacío equivale a *.En la sección Recent deliveries se listan los intentos de envío más recientes (ordenados por fecha y hora, del más nuevo al más antiguo). Cada fila muestra hora (Time), evento (Event), éxito (OK), código HTTP (HTTP), duración en milisegundos (ms), la URL de destino y el Error, si lo hubo. Presione el botón de actualizar para recargar las tablas.
X-NominaHQ-Signature; su valor tiene el formato sha256=<hexadecimal>.X-NominaHQ-Event indica la clave del evento. El tipo de contenido es application/json.| Campo | Tipo | Obligatorio | Descripción | Validación |
|---|---|---|---|---|
| Nombre (Name) | Texto | Sí | Identifica la suscripción. No editable después de crearla. | Único por empresa; hasta 128 caracteres. |
| URL | Texto | Sí | Dirección de destino de los envíos. | Debe ser una URL absoluta http o https; hasta 1024 caracteres; debe resolver a una dirección pública (ver SSRF). |
| Secret (HMAC) | Texto | No | Secreto compartido para firmar los mensajes. Si se define, cada envío incluye X-NominaHQ-Signature. |
Hasta 256 caracteres. |
| Events | Texto | No | Claves de eventos separadas por comas, o * para todos. |
Hasta 512 caracteres; vacío equivale a *; comparación sin distinguir mayúsculas. |
| Activo (Active) | Casilla | No | Solo las suscripciones activas reciben envíos. | Activa por defecto. |
El botón Guardar permanece deshabilitado mientras Nombre o URL estén vacíos.
| Columna | Descripción |
|---|---|
| Nombre (Name) | Nombre de la suscripción (enlace para editar). |
| URL | Dirección de destino. |
| Events | Eventos suscritos (* o lista). |
| Activo (Active) | Indicador de si está activa. |
| Columna | Descripción |
|---|---|
| Time | Fecha y hora del intento (UTC). |
| Event | Clave del evento entregado. |
| OK | Indica si el envío fue exitoso (respuesta HTTP 2xx). |
| HTTP | Código de estado HTTP devuelto por su sistema. |
| ms | Duración del intento en milisegundos. |
| URL | Dirección a la que se envió. |
| Error | Mensaje de error, si la entrega falló. |
| Clave del evento | Se dispara cuando… |
|---|---|
payroll.run.approved |
Se aprueba una planilla (Planilla). |
payroll.run.paid |
Se marca una planilla como pagada. |
payroll.run.posted |
Se contabiliza una planilla regular. |
decimo.posted |
Se contabiliza una corrida de Décimo. |
employee.created |
Reservado: definido en el sistema, pero no se emite en esta versión. |
El cuerpo es JSON con esta estructura:
{
"event": "payroll.run.posted",
"sentAt": "fecha y hora UTC",
"data": {
"runId": "…",
"runType": "…",
"periodStart": "…",
"periodEnd": "…",
"payDate": "…",
"status": "…",
"entryCount": 0,
"totalGross": 0,
"totalNet": 0
}
}
Encabezados incluidos en cada envío:
| Encabezado | Contenido |
|---|---|
Content-Type |
application/json |
X-NominaHQ-Event |
La clave del evento (por ejemplo payroll.run.posted). |
X-NominaHQ-Signature |
sha256=<hexadecimal> — solo si la suscripción tiene Secret (HMAC). |
NominaHQ acepta mensajes de sistemas externos por HTTP POST en /api/v1/webhooks/{source}, donde {source} identifica al remitente (por ejemplo un banco o un reloj de marcación). El cuerpo de la solicitud se guarda sin cambios para su procesamiento y auditoría. El encabezado opcional X-Event-Type se registra como tipo de evento. Se conserva también la dirección IP de origen y la fecha y hora de recepción. La respuesta confirma la recepción.
Estos mensajes no aparecen en las tablas de la página de Webhooks; se almacenan internamente para procesamiento posterior.
http o https.La gestión de webhooks es una tarea de configuración del sistema; solo el rol Acceso total y los Administradores pueden crear, editar o eliminar suscripciones. Todos los roles del personal pueden ver la página.
| Rol | Ver | Crear | Editar | Eliminar | Aprobar |
|---|---|---|---|---|---|
| Acceso total | Sí | Sí | Sí | Sí | N/A |
| Captura de datos | Sí | No | No | No | N/A |
| Aprobador | Sí | No | No | No | N/A |
| Solo lectura | Sí | No | No | No | N/A |
| Administrador | Sí | Sí | Sí | Sí | N/A |
| Síntoma | Causa probable | Solución |
|---|---|---|
| La suscripción no recibe envíos. | La casilla Activo está desmarcada, o los Events no incluyen el evento esperado. | Marque Activo y verifique que Events sea * o contenga la clave correcta. |
| En Recent deliveries aparece OK sin marcar con un Error de "SSRF". | La URL resuelve a una dirección interna o privada. | Use una URL pública accesible desde Internet. |
| El botón Guardar está deshabilitado. | Falta el Nombre o la URL. | Complete ambos campos obligatorios. |
| La columna HTTP muestra un código 4xx o 5xx. | Su sistema rechazó o falló al procesar el mensaje. | Revise el registro de su sistema receptor y la columna Error. |
| Su sistema no puede validar la firma. | El secreto no coincide o se firmó un cuerpo distinto al recibido. | Use el mismo Secret (HMAC) y calcule el HMAC sobre el cuerpo exacto recibido. |
| No se pueden crear ni editar suscripciones. | El usuario no tiene rol Acceso total ni es Administrador. | Solicite a un Administrador que realice el cambio. |
¿Te resultó útil esta página?