Saltar al inicio rápido

API para sistemas de nómina

Tu sistema de nómina u otro programa puede descargar el registro de jornada directamente, sin que nadie pase archivos de mano en mano. Es una API REST de solo lectura: cada descarga queda registrada con su huella y su enlace de verificación, como los archivos que se generan en el panel.

Inicia sesión y los ejemplos se llenan solos
Con tu sesión abierta, esta página pone el ID de tu empresa en cada ejemplo. Mientras, verás TU_ID_DE_EMPRESA en su lugar; las fechas son las de la quincena pasada.

Inicio rápido

  1. 1Crea una llave en Ajustes → Integraciones. Necesitas ser propietario o administrador de la empresa. Se muestra una sola vez: cópiala en ese momento. Si la pierdes, revócala y crea otra.
  2. 2Guárdala en la variable de entorno RDJ_API_KEY, como se explica en Autenticación.
  3. 3Prueba la llave pidiendo tus empresas. Si responde con la tuya, ya puedes descargar el registro.

Prueba la llave

curl -H "Authorization: Bearer $RDJ_API_KEY" \
  "https://registrodejornada.mx/api/v1/companies"

Descarga la quincena en DBF

# Los encabezados (X-Verification-Url, X-Content-SHA256) quedan en encabezados.txt
curl --fail -H "Authorization: Bearer $RDJ_API_KEY" \
  "https://registrodejornada.mx/api/v1/companies/TU_ID_DE_EMPRESA/records?from=2026-10-01&to=2026-10-15&format=dbf" \
  -o asistencia.dbf -D encabezados.txt

Lo esencial

URL base
https://registrodejornada.mx/api/v1
Autenticación
Authorization: Bearer rdj_live_…Encabezado Authorization con Bearer y tu llave
ID de la empresa
Lo devuelve GET /companies con tu llave
Límites
60 consultas por minuto y 1,000 al día por llave

Autenticación

Cada consulta lleva tu llave de API (API key) en el encabezado Authorization, después de la palabra Bearer y un espacio:

Authorization: Bearer rdj_live_…

Las llaves se crean y se revocan en Ajustes → Integraciones. Puedes tener varias, una por programa, y revocar una sin afectar a las demás.

Dónde guardar la llave

Los ejemplos de esta página leen la llave de la variable de entorno RDJ_API_KEY, así no queda escrita en el código ni en archivos que se comparten. Si tu programa usa un archivo de configuración, guárdala ahí, fuera de la carpeta de los datos.

setx RDJ_API_KEY "rdj_live_…"
rem Abre una ventana nueva para que la tome

Cuida la llave

  • Va solo en el encabezado, nunca en la URL: las URL quedan en historiales y bitácoras.
  • Úsala desde tu servidor o desde el programa instalado, nunca dentro del código de una página web: cualquiera que la abra podría verla.
  • Quien tenga la llave puede leer el registro de la empresa. Si se filtra, revócala en Integraciones y crea otra: la anterior deja de funcionar en ese momento.
  • Una llave por programa: en el panel ves cuándo se usó cada una por última vez.

Si la llave falla

Una llave que falta, no existe o fue revocada responde 401. Una llave que existe pero no es de esa empresa responde 403:

403
{
  "success": false,
  "message": "Esta llave no tiene acceso a esa empresa",
  "code": "FORBIDDEN"
}

Endpoints

Todos empiezan con https://registrodejornada.mx/api/v1 y solo aceptan GET. Responden JSON con success, message y data; el registro y la prenómina son la excepción: responden con el archivo mismo.

MétodoEndpointQué devuelve
GET/companiesLas empresas a las que llega la llave
GET/companies/{companyId}/workplacesLos centros de trabajo
GET/companies/{companyId}/employeesEl personal
GET/companies/{companyId}/recordsLas jornadas de un periodo, como archivo
GET/companies/{companyId}/correctionsLos cambios al registro, con quién y por qué
GET/companies/{companyId}/prenominaLas incidencias de un periodo, por persona, como archivo

GET /companies

Las empresas a las que llega la llave: id, nombre (razón social), nombre comercial y RFC.

Consulta

curl -H "Authorization: Bearer $RDJ_API_KEY" \
  "https://registrodejornada.mx/api/v1/companies"

Respuesta

200
{
  "success": true,
  "message": "OK",
  "data": [
    {
      "id": "3f6b2c1e-8d4a-4b7e-9c2f-5a1d0e7b6c48",
      "name": "Panadería López SA de CV",
      "tradeName": "Panadería López",
      "rfc": "PLO010101AB1"
    }
  ]
}

GET /companies/{companyId}/workplaces

Los centros de trabajo: id, nombre, zona horaria y si está activo.

Consulta

curl -H "Authorization: Bearer $RDJ_API_KEY" \
  "https://registrodejornada.mx/api/v1/companies/TU_ID_DE_EMPRESA/workplaces"

Respuesta

200
{
  "success": true,
  "message": "OK",
  "data": [
    {
      "id": "9a2e4c71-0b3d-4f5e-8a6b-7c9d1e2f3a4b",
      "name": "Matriz",
      "timeZone": "America/Mexico_City",
      "active": true
    }
  ]
}

GET /companies/{companyId}/employees

El personal, para relacionarlo con el de tu sistema por número de empleado o CURP: id, número de empleado, nombres, apellidos, CURP, NSS, fecha de ingreso, centro de trabajo y si está activo. NSS y fecha de ingreso son nulos si la empresa no los ha capturado.

Consulta

curl -H "Authorization: Bearer $RDJ_API_KEY" \
  "https://registrodejornada.mx/api/v1/companies/TU_ID_DE_EMPRESA/employees"

Respuesta

200
{
  "success": true,
  "message": "OK",
  "data": [
    {
      "id": "6f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
      "employeeNumber": "014",
      "firstNames": "Begoña",
      "lastNames": "Núñez Peña",
      "curp": "NUPB900101MDFXXX01",
      "nss": "92988084494",
      "hireDate": "2024-03-01",
      "workplaceId": "9a2e4c71-0b3d-4f5e-8a6b-7c9d1e2f3a4b",
      "active": true
    }
  ]
}

GET /companies/{companyId}/records

El registro de un periodo, una entrada por jornada, en el formato que pidas. En JSON y XML, cada jornada dice si se corrigió y cada persona trae sus correcciones.

Parámetros

ParámetroTipoQué es
companyIdobligatoriouuid, en la rutaLa empresa. Lo devuelve GET /companies; con tu sesión abierta, ya está en los ejemplos.
fromobligatorioAAAA-MM-DDPrimer día del periodo, en la zona de cada centro de trabajo.
toobligatorioAAAA-MM-DDÚltimo día del periodo, incluido. Hasta 92 días después de from.
formatopcionaltextojson (por omisión), xml, dbf, csv o pdf.
workplaceIdopcionaluuidSolo el personal de ese centro de trabajo.
employeeIdopcionaluuidSolo esa persona.
Formato

Consulta

# Los encabezados (X-Verification-Url, X-Content-SHA256) quedan en encabezados.txt
curl --fail -H "Authorization: Bearer $RDJ_API_KEY" \
  "https://registrodejornada.mx/api/v1/companies/TU_ID_DE_EMPRESA/records?from=2026-10-01&to=2026-10-15" \
  -o asistencia.json -D encabezados.txt

Respuesta

El archivo en el formato pedido. Los encabezados X-Verification-Url y X-Content-SHA256 traen su enlace de verificación y su huella. En JSON:

200
{
  "version": 1,
  "generado": "2026-10-15T23:04:05.000Z",
  "verificacion": "https://registrodejornada.mx/verificar/…",
  "empresa": {
    "razonSocial": "Panadería López SA de CV",
    "rfc": "PLO010101AB1"
  },
  "periodo": {
    "desde": "2026-10-01",
    "hasta": "2026-10-15"
  },
  "personas": [
    {
      "id": "6f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
      "numeroEmpleado": "014",
      "apellidos": "Núñez Peña",
      "nombres": "Begoña",
      "curp": "NUPB900101MDFXXX01",
      "centroDeTrabajo": {
        "id": "9a2e4c71-0b3d-4f5e-8a6b-7c9d1e2f3a4b",
        "nombre": "Matriz",
        "zonaHoraria": "America/Mexico_City"
      },
      "jornadas": [
        {
          "fecha": "2026-10-03",
          "entrada": "2026-10-03T08:58:00-06:00",
          "salida": "2026-10-03T17:31:00-06:00",
          "minutosDescanso": 30,
          "minutosTrabajados": 483,
          "estado": "completa",
          "corregida": true
        }
      ],
      "correcciones": [
        {
          "fecha": "2026-10-03",
          "tipo": "hora_corregida",
          "marca": "inicio_jornada",
          "horaOriginal": "2026-10-03T09:12:00-06:00",
          "horaNueva": "2026-10-03T08:58:00-06:00",
          "motivo": "Llegué a las 8:58; el checador no tenía señal",
          "autor": "Laura Gómez Ruiz",
          "solicitadaPorLaPersona": true,
          "hechaEl": "2026-10-03T10:20:41-06:00"
        }
      ]
    }
  ]
}

GET /companies/{companyId}/corrections

Cada cambio al registro de un periodo: cómo estaba la marca, cómo quedó, quién hizo el cambio (o aprobó la solicitud de la persona), cuándo y por qué. Nada se borra: la marca original sigue en el registro. Sirve sobre todo para el DBF, que tiene una fila por jornada; mismos parámetros y encabezados que el registro, sin PDF (el del registro ya las incluye).

Parámetros

ParámetroTipoQué es
companyIdobligatoriouuid, en la rutaLa empresa. Lo devuelve GET /companies; con tu sesión abierta, ya está en los ejemplos.
fromobligatorioAAAA-MM-DDPrimer día del periodo, en la zona de cada centro de trabajo.
toobligatorioAAAA-MM-DDÚltimo día del periodo, incluido. Hasta 92 días después de from.
formatopcionaltextojson (por omisión), xml, dbf o csv.
workplaceIdopcionaluuidSolo el personal de ese centro de trabajo.
employeeIdopcionaluuidSolo esa persona.
Formato

Consulta

# Los encabezados (X-Verification-Url, X-Content-SHA256) quedan en encabezados.txt
curl --fail -H "Authorization: Bearer $RDJ_API_KEY" \
  "https://registrodejornada.mx/api/v1/companies/TU_ID_DE_EMPRESA/corrections?from=2026-10-01&to=2026-10-15" \
  -o correcciones.json -D encabezados.txt

Respuesta

El archivo en el formato pedido. Los encabezados X-Verification-Url y X-Content-SHA256 traen su enlace de verificación y su huella. En JSON:

200
{
  "version": 1,
  "generado": "2026-10-15T23:04:05.000Z",
  "verificacion": "https://registrodejornada.mx/verificar/…",
  "empresa": {
    "razonSocial": "Panadería López SA de CV",
    "rfc": "PLO010101AB1"
  },
  "periodo": {
    "desde": "2026-10-01",
    "hasta": "2026-10-15"
  },
  "personas": [
    {
      "id": "6f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
      "numeroEmpleado": "014",
      "apellidos": "Núñez Peña",
      "nombres": "Begoña",
      "curp": "NUPB900101MDFXXX01",
      "centroDeTrabajo": {
        "id": "9a2e4c71-0b3d-4f5e-8a6b-7c9d1e2f3a4b",
        "nombre": "Matriz",
        "zonaHoraria": "America/Mexico_City"
      },
      "correcciones": [
        {
          "fecha": "2026-10-03",
          "tipo": "hora_corregida",
          "marca": "inicio_jornada",
          "horaOriginal": "2026-10-03T09:12:00-06:00",
          "horaNueva": "2026-10-03T08:58:00-06:00",
          "motivo": "Llegué a las 8:58; el checador no tenía señal",
          "autor": "Laura Gómez Ruiz",
          "solicitadaPorLaPersona": true,
          "hechaEl": "2026-10-03T10:20:41-06:00"
        }
      ]
    }
  ]
}

GET /companies/{companyId}/prenomina

Lo que la nómina necesita de un periodo, por persona: días trabajados, faltas, retardos, salidas anticipadas, horas extra dobles y triples, domingos, descansos y festivos trabajados, vacaciones, incapacidades por tipo del SAT y permisos. Cantidades, nunca importes. En JSON y XML trae además cada día del periodo con su estado. Mismos parámetros, formatos y encabezados que el registro.

Parámetros

ParámetroTipoQué es
companyIdobligatoriouuid, en la rutaLa empresa. Lo devuelve GET /companies; con tu sesión abierta, ya está en los ejemplos.
fromobligatorioAAAA-MM-DDPrimer día del periodo, en la zona de cada centro de trabajo.
toobligatorioAAAA-MM-DDÚltimo día del periodo, incluido. Hasta 92 días después de from.
formatopcionaltextojson (por omisión), xml, dbf, csv o pdf.
workplaceIdopcionaluuidSolo el personal de ese centro de trabajo.
employeeIdopcionaluuidSolo esa persona.
Formato

Consulta

# Los encabezados (X-Verification-Url, X-Content-SHA256) quedan en encabezados.txt
curl --fail -H "Authorization: Bearer $RDJ_API_KEY" \
  "https://registrodejornada.mx/api/v1/companies/TU_ID_DE_EMPRESA/prenomina?from=2026-10-01&to=2026-10-15" \
  -o prenomina.json -D encabezados.txt

Respuesta

El archivo en el formato pedido. Los encabezados X-Verification-Url y X-Content-SHA256 traen su enlace de verificación y su huella. En JSON:

200
{
  "version": 1,
  "generado": "2026-10-15T23:04:05.000Z",
  "verificacion": "https://registrodejornada.mx/verificar/…",
  "empresa": {
    "razonSocial": "Panadería López SA de CV",
    "rfc": "PLO010101AB1"
  },
  "periodo": {
    "desde": "2026-10-01",
    "hasta": "2026-10-15"
  },
  "personas": [
    {
      "id": "6f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
      "numeroEmpleado": "014",
      "apellidos": "Núñez Peña",
      "nombres": "Begoña",
      "curp": "NUPB900101MDFXXX01",
      "nss": "92988084494",
      "fechaIngreso": "2024-03-01",
      "centroDeTrabajo": {
        "id": "9a2e4c71-0b3d-4f5e-8a6b-7c9d1e2f3a4b",
        "nombre": "Matriz"
      },
      "totales": {
        "diasTrabajados": 10,
        "diasSinRegistro": 0,
        "faltas": 1,
        "retardos": 2,
        "minutosRetardo": 35,
        "salidasAnticipadas": 0,
        "minutosSalidaAnticipada": 0,
        "minutosExtraDobles": 180,
        "minutosExtraTriples": 0,
        "minutosExtraExcedente": 0,
        "domingosTrabajados": 1,
        "descansosTrabajados": 0,
        "festivosTrabajados": 0,
        "diasVacaciones": 0,
        "permisosConGoce": 0,
        "permisosSinGoce": 0,
        "minutosPermisoConGoce": 120,
        "minutosPermisoSinGoce": 0
      },
      "saldoVacaciones": {
        "aniosServicio": 2,
        "diasAnio": 14,
        "disfrutados": 5,
        "programados": 0,
        "porDisfrutar": 9,
        "pendientesAnteriores": 0,
        "fechaLimite": "2026-09-09",
        "saldoInicialCapturado": true
      },
      "incapacidades": [
        {
          "tipo": "02",
          "dias": 2
        }
      ],
      "dias": [
        {
          "fecha": "2026-10-01",
          "estado": "trabajado",
          "minutosTrabajados": 363,
          "minutosRetardo": 0,
          "minutosSalidaAnticipada": 0,
          "minutosExtraDobles": 0,
          "minutosExtraTriples": 0,
          "minutosExtraExcedente": 0,
          "ausencia": null,
          "tipoIncapacidad": null,
          "festivo": null,
          "permisos": [
            {
              "desde": "09:00",
              "hasta": "11:00",
              "conGoce": true,
              "minutos": 120
            }
          ]
        },
        {
          "fecha": "2026-10-02",
          "estado": "ausencia",
          "minutosTrabajados": 0,
          "minutosRetardo": 0,
          "minutosSalidaAnticipada": 0,
          "minutosExtraDobles": 0,
          "minutosExtraTriples": 0,
          "minutosExtraExcedente": 0,
          "ausencia": "incapacidad",
          "tipoIncapacidad": "02",
          "festivo": null,
          "permisos": []
        }
      ]
    }
  ]
}

Formatos

Todos traen lo mismo: cada jornada con su fecha, entrada, salida, minutos de descanso, minutos trabajados y estado. Una jornada cuenta en el día en que empezó, aunque termine al día siguiente. Las fechas son días en la zona horaria de cada centro de trabajo; todo va en UTF-8, salvo el DBF, en Windows-1252.

formatContent-TypePara qué
jsonapplication/json; charset=utf-8Programas nuevos: lo más fácil de leer.
xmlapplication/xml; charset=utf-8Sistemas que importan XML; mismas partes que el JSON.
dbfapplication/x-dbfFoxPro, Clipper y sistemas xBase: dBase III en Windows-1252, una fila por jornada.
csvtext/csv; charset=utf-8Hojas de cálculo: una fila por jornada.
pdfapplication/pdfEl documento para entregar a la autoridad, el mismo del panel.

Estructura del JSON

JSON
{
  "version": 1,
  "generado": "2026-10-15T23:04:05.000Z",
  "verificacion": "https://registrodejornada.mx/verificar/…",
  "empresa": {
    "razonSocial": "Panadería López SA de CV",
    "rfc": "PLO010101AB1"
  },
  "periodo": {
    "desde": "2026-10-01",
    "hasta": "2026-10-15"
  },
  "personas": [
    {
      "id": "6f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
      "numeroEmpleado": "014",
      "apellidos": "Núñez Peña",
      "nombres": "Begoña",
      "curp": "NUPB900101MDFXXX01",
      "centroDeTrabajo": {
        "id": "9a2e4c71-0b3d-4f5e-8a6b-7c9d1e2f3a4b",
        "nombre": "Matriz",
        "zonaHoraria": "America/Mexico_City"
      },
      "jornadas": [
        {
          "fecha": "2026-10-03",
          "entrada": "2026-10-03T08:58:00-06:00",
          "salida": "2026-10-03T17:31:00-06:00",
          "minutosDescanso": 30,
          "minutosTrabajados": 483,
          "estado": "completa",
          "corregida": true
        }
      ],
      "correcciones": [
        {
          "fecha": "2026-10-03",
          "tipo": "hora_corregida",
          "marca": "inicio_jornada",
          "horaOriginal": "2026-10-03T09:12:00-06:00",
          "horaNueva": "2026-10-03T08:58:00-06:00",
          "motivo": "Llegué a las 8:58; el checador no tenía señal",
          "autor": "Laura Gómez Ruiz",
          "solicitadaPorLaPersona": true,
          "hechaEl": "2026-10-03T10:20:41-06:00"
        }
      ]
    }
  ]
}

Estados: completa, en_curso (todavía no registra su salida) y sin_salida (se quedó sin salida registrada). Las horas van en ISO 8601 con el desfase de la zona del centro de trabajo. En JSON y XML aparece todo el personal de la selección, también quien no tuvo jornadas (con jornadas vacío). Cada jornada lleva corregida: true cuando alguna corrección la cambió, y cada persona su lista de correcciones (ver abajo).

Estructura del XML

Las mismas partes que el JSON, como atributos. Lleva su enlace de verificación en el atributo verificacion.

XML
<?xml version="1.0" encoding="UTF-8"?>
<registroDeJornada version="1" generado="2026-10-15T23:04:05.000Z" verificacion="https://registrodejornada.mx/verificar/…">
  <empresa razonSocial="Panadería López SA de CV" rfc="PLO010101AB1"/>
  <periodo desde="2026-10-01" hasta="2026-10-15"/>
  <persona numeroEmpleado="014" apellidos="Núñez Peña" nombres="Begoña" curp="NUPB900101MDFXXX01" centroDeTrabajo="Matriz" zonaHoraria="America/Mexico_City">
    <jornada fecha="2026-10-03" entrada="2026-10-03T08:58:00-06:00" salida="2026-10-03T17:31:00-06:00" minutosDescanso="30" minutosTrabajados="483" estado="completa" corregida="true"/>
    <correccion fecha="2026-10-03" tipo="hora_corregida" marca="inicio_jornada" horaOriginal="2026-10-03T09:12:00-06:00" horaNueva="2026-10-03T08:58:00-06:00" motivo="Llegué a las 8:58; el checador no tenía señal" autor="Laura Gómez Ruiz" solicitadaPorLaPersona="true" hechaEl="2026-10-03T10:20:41-06:00"/>
  </persona>
</registroDeJornada>

Campos del DBF

dBase III, que leen FoxBase, FoxPro, Clipper y la mayoría de los sistemas xBase. Codificación Windows-1252, declarada en el encabezado. Una fila por jornada.

CampoTipoQué es
NUM_EMPC(20)Número de empleado
APELLIDOSC(60)Apellidos
NOMBRESC(60)Nombre(s)
CURPC(18)CURP, vacía si no se capturó
CENTROC(60)Centro de trabajo
ZONA_HORC(40)Zona horaria del centro de trabajo
FECHADDía en que empezó la jornada
ENTRADAC(5)Hora de entrada, HH:MM
F_SALIDADDía de la salida: el siguiente en un turno nocturno
SALIDAC(5)Hora de salida, HH:MM; vacía si no hay
MIN_DESCN(5)Minutos de descanso
MIN_TRABN(5)Minutos trabajados
ESTADOC(25)Completa, En curso o Sin salida registrada

Las correcciones

En JSON y XML, cada corrección trae fecha (el día de la marca), tipo (agregado, hora_corregida o anulado), marca (inicio_jornada, fin_jornada, inicio_descanso o fin_descanso), horaOriginal (nula si se agregó), horaNueva (nula si se anuló), motivo, autor (quien la hizo o aprobó), solicitadaPorLaPersona y hechaEl. El registro las trae por persona; /corrections las trae solas. En DBF, un registro por corrección, con fechas y horas en la zona del centro de trabajo:

CampoTipoQué es
NUM_EMPC(20)Número de empleado
APELLIDOSC(60)Apellidos
NOMBRESC(60)Nombre(s)
CURPC(18)CURP, vacío si no se capturó
CENTROC(60)Centro de trabajo
FECHADDía de la marca que cambió
TIPOC(15)agregado, hora_corregida o anulado
MARCAC(15)inicio_jornada, fin_jornada, inicio_descanso o fin_descanso
F_ORIGDFecha original; vacía si la marca se agregó
H_ORIGC(5)Hora original, HH:MM
F_NUEVADFecha nueva; vacía si la marca se anuló
H_NUEVAC(5)Hora nueva, HH:MM
MOTIVOC(254)Por qué; si pasa de 254 caracteres, el JSON y el XML lo traen completo
AUTORC(60)Quien hizo el cambio, o quien aprobó la solicitud de la persona
SOLICITADAC(1)S si la pidió la propia persona desde su enlace; N si no
F_CAMBIODFecha en que se hizo el cambio
H_CAMBIOC(5)Hora en que se hizo el cambio, HH:MM

La prenómina

Un renglón por persona con los totales del periodo. Las horas extra van en minutos y se cuentan por semana: se asignan a los días en que se trabajaron, así que un periodo que corta una semana toma solo su parte. Las faltas son solo las que la empresa confirmó; un día que le tocaba trabajar sin registro ni ausencia cuenta en SIN_REG, nunca como falta. Las incapacidades cuentan días naturales; vacaciones, permisos y faltas, días laborables.

En JSON y XML, cada día lleva un estado: trabajado, ausencia (con ausencia: falta, vacaciones, incapacidad, permiso_con_goce o permiso_sin_goce, y tipoIncapacidad del catálogo c_TipoIncapacidad del SAT), festivo, descanso, sin_registro, sin_horario, por_venir o fuera_de_registro (antes de su ingreso o después de su baja). Cada día trae también sus permisos por horas (desde, hasta, conGoce, minutos dentro del horario). En DBF, estos campos: Cada persona trae también su saldo de vacaciones al último día del periodo (saldoVacaciones), nulo si la empresa no ha capturado su fecha de ingreso.

CampoTipoQué es
NUM_EMPC(20)Número de empleado
APELLIDOSC(60)Apellidos
NOMBRESC(60)Nombre(s)
CURPC(18)CURP, vacío si no se capturó
NSSC(11)Número de Seguridad Social, vacío si no se capturó
F_INGRESODFecha de ingreso, vacía si no se capturó
CENTROC(60)Centro de trabajo
DESDEDPrimer día del periodo
HASTADÚltimo día del periodo
DIAS_TRABN(3)Días trabajados
SIN_REGN(3)Días sin registro por explicar (no son faltas)
FALTASN(3)Faltas confirmadas por la empresa
RETARDOSN(3)Días con retardo
MIN_RETARN(5)Minutos de retardo, sumados
SAL_ANTICN(3)Días con salida anticipada
MIN_SALANTN(5)Minutos de salida anticipada, sumados
MIN_HEDOBN(5)Minutos extra al doble
MIN_HETRIN(5)Minutos extra al triple
MIN_HEEXCN(5)Minutos extra por encima del límite legal
DOMINGOSN(3)Domingos trabajados (prima dominical)
DESC_TRABN(3)Días de descanso trabajados
FEST_TRABN(3)Festivos de ley trabajados
VACACIONESN(3)Días de vacaciones
INC_RTN(3)Días de incapacidad por riesgo de trabajo (01)
INC_EGN(3)Días de incapacidad por enfermedad general (02)
INC_MATN(3)Días de incapacidad por maternidad (03)
INC_CUIDN(3)Días de incapacidad por cuidados de hijo con cáncer (04)
PERM_CGOCEN(3)Días de permiso con goce de sueldo
PERM_SGOCEN(3)Días de permiso sin goce de sueldo
MIN_PCGOCEN(5)Permisos por horas con goce, minutos dentro del horario
MIN_PSGOCEN(5)Permisos por horas sin goce, minutos dentro del horario
VAC_ANION(3)Días del año de servicios en curso (art. 76)
VAC_DISPN(3)Por disfrutar del año en curso, al último día del periodo
VAC_ANTN(3)Pendientes de años anteriores, aún no prescritos
VAC_LIMITEDFecha límite para los del año en curso (art. 81); vacía sin fecha de ingreso

Verificación

Cada respuesta del registro trae dos encabezados. Guárdalos junto con el archivo al importarlo:

HTTP
X-Verification-Url: https://registrodejornada.mx/verificar/…
X-Content-SHA256: 3b2f9c0e6d1a…
  1. 1X-Verification-Url es la página pública donde se comprueba el archivo; X-Content-SHA256 es la huella de sus bytes.
  2. 2En una revisión, cualquiera abre el enlace, sube el archivo y ve si coincide exactamente con el que salió del registro.
  3. 3Cada consulta aparece en el historial de archivos y en la bitácora de la empresa, con el nombre de la llave.

Límites y errores

  • 60 consultas por minuto y 1,000 al día por llave.
  • Hasta 92 días por consulta del registro.
  • La API es de solo lectura: no registra ni corrige jornadas.
  • La versión 1 solo crece: se agregan campos, formatos y endpoints, nunca se cambian ni se quitan.

Encabezados de límite

EncabezadoQué es
RateLimit-LimitConsultas permitidas por minuto.
RateLimit-RemainingLas que quedan en este minuto.
RateLimit-ResetSegundos para que se renueven.
Retry-AfterSolo con un 429: segundos que hay que esperar.

Cuerpo de un error

Todos los errores responden JSON. message está en español y se puede mostrar tal cual a quien usa tu programa; code sirve para decidir qué hacer.

CódigoQué es
401 UNAUTHORIZEDFalta la llave, no existe o fue revocada. Revisa tus llaves
403 FORBIDDENLa llave no tiene acceso a esa empresa. Revisa tus llaves
409 EMPLOYER_DATA_MISSINGLa empresa todavía no captura su razón social y RFC en el panel. Ir a Empresa
422Fechas o formato no válidos, un periodo de más de 92 días, o nadie coincide con la selección.
429 RATE_LIMITEDDemasiadas consultas: espera y vuelve a intentar.

Cambios

La versión 1 solo crece: cada cambio agrega, nunca quita ni renombra, así que lo que ya programaste sigue funcionando. Cada respuesta trae la versión vigente en el encabezado X-API-Version. Para que una versión nueva nunca rompa tu importación, lee los campos por su nombre e ignora los que no conozcas, también en el DBF. Los campos del DBF del registro no cambian dentro de la versión 1. Si algún día hace falta un cambio que no sea compatible, saldrá como /v2 y la versión 1 seguirá funcionando un tiempo anunciado aquí.

  1. 1.1.026 de octubre de 2026

    • Nuevo: GET /companies//prenomina, la prenómina de un periodo por persona (días trabajados, faltas, retardos, horas extra, domingos, festivos, vacaciones, incapacidades por tipo del SAT, permisos por día y por horas), en JSON, XML, DBF, CSV o PDF. En JSON y XML trae además cada día del periodo.
    • Nuevo: GET /companies//corrections, cada cambio al registro de un periodo (cómo estaba, cómo quedó, quién, cuándo y por qué), en JSON, XML, DBF o CSV. En el JSON y el XML del registro, cada jornada agrega corregida y cada persona sus correcciones; el DBF y el CSV del registro no cambian.
    • En la prenómina, el saldo de vacaciones de cada persona al último día del periodo: días del año de servicios, disfrutados, programados, por disfrutar, pendientes de años anteriores y fecha límite (JSON, XML y DBF).
    • GET /companies//employees agrega nss y hireDate (fecha de ingreso), nulos si la empresa no los ha capturado.
    • Cada respuesta trae el encabezado X-API-Version con la versión vigente.
  2. 1.0.023 de octubre de 2026

    • Primera versión: empresas, centros de trabajo, personal y el registro de un periodo.

Referencia interactiva

Cada endpoint con su esquema completo, ejemplos en más lenguajes y un botón para probar con tu llave. Se genera de la descripción OpenAPI 3.1, que también puedes descargar para generar un cliente.

¿Dudas al conectar tu sistema? Escríbenos por WhatsApp y lo vemos contigo.

Escribir por WhatsApp
¿Conectamos tu sistema? Escríbenospor WhatsApp (abre una conversación)