Download OpenAPI specification:
Consulta de solo lectura de empleados y nóminas timbradas. No permite escribir, timbrar ni cancelar nada, y no da acceso al sistema NOMAD ni a su base de datos.
OAuth 2.0 client credentials (RFC 6749 §4.4). Con el client_id y el
secreto que se le entregan, solicite un token al tokenUrl y envíelo en
cada petición:
Authorization: Bearer <access_token>
empleados:read (para /empleados) y nominas:read (para
/nominas).403.Los dos recursos se recorren igual y devuelven { data, nextCursor, count }.
/empleados y después /nominas: el detalle de
una nómina hace referencia a empleados del catálogo.updatedSince y siga nextCursor hasta
que sea null.X-Sync-Watermark de la
corrida anterior (es el mismo en todas sus páginas) y páselo como
updatedSince. Guárdelo solo después de procesar la última página;
no use la hora en que terminó su proceso.updatedSince es inclusivo, así que puede recibir filas que ya tiene:
actualice por identificador (id en empleados y nóminas,
uuidCfdi en el detalle) en lugar de insertar, y repetir una corrida
no duplica nada.estadoTimbre: CANCELADO y su
sustituto llega con otro uuidCfdi.El cursor es opaco, está atado a sus credenciales y a los filtros de
esa corrida (cambiarlos responde 400) y expira a las 24 horas
(410; inicie una corrida nueva sin cursor).
Por cliente: 60 solicitudes por minuto, ráfaga de 10 y máximo
2 consultas simultáneas. Al excederlos se responde 429 con el
encabezado Retry-After (segundos). Una sincronización diaria queda muy
por debajo de estos límites.
YYYY-MM-DD; marcas de tiempo ISO 8601 con zona horaria."18450.30"), nunca números de punto flotante.null.Sin Informacion, para solicitar su captura a los operadores. Esa
marca no es una identidad fiscal ni una llave para cruzar personas.null.bajaAt usa medianoche en America/Mexico_City por convención: el
origen solo proporciona la fecha, no la hora real de baja.Todos los errores son application/problem+json (RFC 9457) con type,
title, status, detail y un requestId que puede citar al pedir
soporte. Un fallo de una dependencia responde 503; nunca un 200
vacío.
Empleados con al menos una relación laboral dentro de las sociedades y clientes autorizados, incluidos los dados de baja. Ordenado por updatedAt y id ascendente.
| updatedSince | string <date-time> Solo filas modificadas en o después de esta marca de tiempo (inclusivo). Use el |
| cursor | string El |
| limit | integer [ 1 .. 250 ] Default: 100 Filas por página. |
{- "data": [
- {
- "id": "emp_41060",
- "curp": "GARM900412HDFRMN05",
- "rfc": "GARM900412J38",
- "apellidoPaterno": "GARCIA",
- "apellidoMaterno": "RAMIREZ",
- "nombre": "MANUEL",
- "nss": "12345678901",
- "fechaNacimiento": "1990-04-12",
- "correo": "manuel.garcia@ejemplo.mx",
- "telefono": "5512345678",
- "updatedAt": "2026-09-01T10:14:22-06:00",
- "bajaAt": null
}
], - "nextCursor": null,
- "count": 1
}Nóminas de las sociedades y clientes autorizados, con un elemento de detalle por cada comprobante (CFDI), incluidos los cancelados y los retimbrados. Cada nómina llega completa: su detalle no se recorta. Solo se entregan nóminas con al menos un comprobante timbrado (nunca borradores). Ordenado por updatedAt y id ascendente.
| updatedSince | string <date-time> Solo filas modificadas en o después de esta marca de tiempo (inclusivo). Use el |
| cursor | string El |
| limit | integer [ 1 .. 250 ] Default: 100 Filas por página. |
| ejercicio | string^[0-9]{4}$ Año ( |
| rfcSociedad | string RFC de una sociedad emisora, para reducir la consulta a esa sociedad. No concede acceso por sí solo: una sociedad fuera de las autorizadas para sus credenciales responde |
{- "data": [
- {
- "id": "NM-0000547",
- "tipo": "QUINCENAL",
- "periodoDesde": "2026-08-16",
- "periodoHasta": "2026-08-31",
- "fechaPago": "2026-08-31",
- "sociedad": {
- "rfc": "QPA210415H73",
- "nombre": "QLTP PARTNERS SA DE CV"
}, - "cliente": "GRUPO COMERCIALES SORNI",
- "regimenFiscal": "601",
- "diasPeriodo": 15,
- "estado": "TIMBRADA",
- "detalle": [
- {
- "empleadoId": "emp_41060",
- "curp": "GARM900412HDFRMN05",
- "rfc": "GARM900412J38",
- "importeNomina": "18450.30",
- "uuidCfdi": "3f9a2c81-5d44-4b0e-9e77-1a2b3c4d5e6f",
- "estadoTimbre": "TIMBRADO",
- "diasTrabajados": "15.00",
- "salarioDiario": "1230.02",
- "sdi": "1289.45",
- "isr": "2450.10",
- "cuotaObrero": "118.94",
- "cuotaPatron": "1011.33",
- "incapacidades": "0.00"
}
], - "updatedAt": "2026-09-01T02:11:00-06:00"
}
], - "nextCursor": null,
- "count": 1
}