Fechas y zona horaria

Toda marca de tiempo de la API está en UTC, expresada en ISO 8601 con sufijo Z:

"created_at": "2026-08-21T14:32:09Z"

Alcanza a todos los campos temporales —created_at, updated_at, expires_at, last_delivery_at, dispatch_at— sin excepción por operación. La única salvedad es la fecha y la hora que imprime el CEP, descritas al final de esta página. La conversión a la zona del usuario corresponde al cliente.

La garantía viaja en cada respuesta, dentro del bloque meta descrito en la forma de las respuestas:

"meta": { "datetime": { "timezone": "UTC", "format": "ISO 8601" } }

Está ahí para poder afirmarlo en tiempo de ejecución, en lugar de releer la especificación en cada versión.

Filtros por fecha

Los parámetros de rango aceptan dos formas:

formainterpretación
2026-08-21Fecha suelta, interpretada en UTC. Como inicio de rango equivale a 00:00:00Z; como fin, a 23:59:59Z
2026-08-21T14:32:09ZNo se admite como instante: from y to son fechas; casi todos los listados toman sólo la fecha y GET /v1/finance/ceps responde 400

Una fecha suelta nunca se interpreta en la zona local de quien consulta ni en la del servidor. Un filtro from=2026-08-01 cubre el mes desde la medianoche UTC, no desde la medianoche de Ciudad de México.

Esa diferencia importa en los extremos del rango: en zonas al oeste de UTC, un informe filtrado por día local pierde las primeras horas si se envía la fecha sin ajustar. El ajuste corresponde al cliente, que conoce la zona del usuario.

Fecha de envío y fecha de operación

Una transferencia SPEI tiene dos fechas, y la API usa cada una en un lugar distinto:

  • Fecha de envío: El día en que se hizo la transferencia. Es el campo fecha de la petición y con ella Banxico localiza el CEP. Se envía como fecha suelta, sin hora ni zona.
  • Fecha de operación: El día hábil SPEI al que Banxico asignó la transferencia. La imprime el CEP y sale en banxico_result.operationDate, con su hora en banxico_result.processingTime.

El SPEI opera todos los días, pero el día hábil cambia a las 18:00, hora del centro de México: lo enviado a partir de esa hora, en sábado, en domingo o en un día inhábil opera el siguiente día hábil. Una transferencia enviada el sábado a las 22:48 tiene el lunes como fecha de operación.

operationDate y processingTime no están en UTC: salen tal como los imprime el CEP, en hora del centro de México. No se comparan con created_at ni con completed_at sin convertirlos antes.

Cuando Banxico no encuentra el pago con la fecha enviada y sí con otra, la validación conserva el hallazgo en banxico_result._fecha: used es la fecha con la que se encontró, requested la fecha con la que se consultó primero y reason el motivo. request_data.fecha sigue siendo la enviada. Los valores de reason están en la respuesta de GET /v1/validations/{id}.

Calendario de días inhábiles

GET /v1/public/spei-calendar/{year} devuelve los días inhábiles de un año que caen de lunes a viernes, con la disposición de la Comisión Nacional Bancaria y de Valores (CNBV) de la que salen. Los sábados y los domingos también son inhábiles y no se repiten en la lista. La consulta no consume cuota de validaciones.