Zonas horarias
Qué valor mandar en timezone, por qué no sirve un desfase, y la lista por país.
Algunos endpoints piden un campo timezone. Por ejemplo, el de
enviar marcajes de asistencia.
El valor es el nombre de una zona horaria IANA: la base de zonas que usan
los sistemas operativos y todos los lenguajes de programación.
La regla corta
Forma Área/Ciudad
America/Lima, America/Argentina/Buenos_Aires, Europe/Madrid. La única
excepción es UTC.
Qué sirve y qué no
Un valor que no sirve se rechaza con 422, antes de procesar nada.
Por qué se pide la zona y no un desfase
El desfase de un lugar cambia en el año. Chile, Paraguay hasta 2024, Estados
Unidos y España cambian de hora dos veces por año. Si mandás -04:00 para
Santiago, en verano estás una hora corrido. America/Santiago da la hora
correcta para cualquier fecha.
También cambia por ley. México eliminó el horario de verano en 2022, salvo la franja fronteriza. Con el nombre IANA eso ya está resuelto, sin que tengas que cambiar nada.
Para qué se usa
En el envío de marcajes, marked_at y timezone van juntos y cada uno decide
una cosa distinta:
marked_atfija el instante exacto. Lleva su propio desfase (2026-10-06T23:30:00-06:00) o va en UTC conZ(2026-10-07T05:30:00Z). Los dos ejemplos son el mismo instante.timezonedecide en qué día local cae ese instante y contra qué horario de turno se compara.
Una marca a las 23:30 del 6 de octubre en Ciudad de México son las 05:30 del 7 en UTC.
- Con
timezone: "America/Mexico_City"la marca es del 6, que es lo correcto. - Con
timezone: "UTC"la marca cae en el 7, o sea en otra jornada.
Lo mismo con la puntualidad: un turno que entra a las 09:00 se interpreta a las 09:00 de esa zona. Una zona equivocada puede dejar como tarde una entrada que fue puntual.
Para no confundirse, mandá marked_at con el desfase de la misma zona que
timezone. Por ejemplo, -06:00 con America/Mexico_City.
Lista por país
Las más usadas, verificadas contra los servidores de la API. Los desfases son los de enero y julio de 2026. Cuando difieren, ese lugar cambia de hora en el año, y por eso hay que mandar el nombre y no el desfase.
Si tu sede no está en la tabla, buscá su zona en la lista de zonas IANA. Usá la columna TZ identifier de una fila Canonical: los alias (Link) se rechazan.
Cómo obtener la zona en tu código
Si tu sistema ya guarda la zona de cada sede, mandá ese valor. Para validar uno antes de enviarlo:
Intl (navegadores, Node) puede devolver el alias America/Buenos_Aires en
vez de America/Argentina/Buenos_Aires, y la API lo rechaza. Si tomás la zona
del equipo, normalizala antes de enviarla, como en el ejemplo.
No uses la zona del servidor de tu integración. Suele estar en UTC, o en la zona de la casa matriz. Si un sistema central envía marcas de sedes en distintos países, cada marca lleva la zona de su sede.
