← Volver al índice de esquemas
ValidationQueued
Respuesta 202 del flujo de validación asíncrona (`POST /v1/validate?async=1` y `POST /v1/validate-ocr?async=1`). Indica que la validación fue encolada; consultar `GET /v1/validations/{id}` periódicamente para el resultado final.
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
data | object | Envoltorio JSON:API del recurso encolado. |
type | string | Tipo del recurso JSON:API (siempre `validation`). |
id | string (uuid) | UUID de la validación creada, usable en `GET /v1/validations/{id}`. |
attributes | object | Campos del recurso encolado. |
validation_id | string (uuid) | UUID de la validación (idéntico a `data.id`). |
status | string | Estado inmediato tras el encolamiento (siempre `queued`). |
etag_version | integer | Versión inicial del recurso para polling condicional con `If-None-Match`. Devolver este valor como ETag evita respuestas innecesarias cuando el estado no ha cambiado. |
enqueued_at | string (date-time) | Timestamp ISO 8601 en UTC con sufijo `Z` explícito. Ejemplo: `"2026-05-01T05:14:38Z"`. Cada campo `*_at`, `*_end`, `*_start`, `*_date` de la API usa esta forma. El descriptor compañero en `meta.datetime` permite afirmar el contrato en tiempo de ejecución sin volver a leer este spec. El `new Date(value)` nativo del navegador, el `datetime.fromisoformat` (≥3.11) de Python y el `time.Parse(time.RFC3339)` de Go parsean este formato directamente. |
expires_at | string (date-time) | Timestamp ISO 8601 en UTC con sufijo `Z` explícito. Ejemplo: `"2026-05-01T05:14:38Z"`. Cada campo `*_at`, `*_end`, `*_start`, `*_date` de la API usa esta forma. El descriptor compañero en `meta.datetime` permite afirmar el contrato en tiempo de ejecución sin volver a leer este spec. El `new Date(value)` nativo del navegador, el `datetime.fromisoformat` (≥3.11) de Python y el `time.Parse(time.RFC3339)` de Go parsean este formato directamente. |
retry_state | object | Estado del ciclo de reintentos automáticos al momento del encolamiento. Siempre presente; si no se configuró `retry_policy` en el body ni en la política del usuario, `enabled=false` y los campos de política son `null`. |
enabled | boolean | Indica si el ciclo de reintentos está activo para esta validación. |
max_retries | integer | null | Número máximo de reintentos configurado. El tope superior depende del plan (`retry_max_retries`) o del default global `max_retries_cap` (típicamente 5–10). `null` si `enabled=false`. |
interval_seconds | integer | null | Intervalo entre reintentos en segundos (300–86400). `null` si `enabled=false`. |
outcomes | array | null | Resultados de validación que habilitan un reintento (`not_found`, `cep_unavailable`, `error`). `null` si `enabled=false`. |
attempts_completed | integer | Número de reintentos completados hasta el momento. |
next_attempt_at | union | Timestamp del próximo reintento programado. `null` si el ciclo está en estado terminal o si no hay reintentos activos. |
resolved_at | union | Timestamp cuando un reintento resolvió la validación a `valid`. `null` si el ciclo no ha terminado por resolución. |
exhausted_at | union | Timestamp cuando se agotaron los reintentos sin resolución. `null` si el ciclo no ha terminado por agotamiento. |
cancelled_at | union | Timestamp cuando el ciclo fue cancelado explícitamente. `null` si no fue cancelado. |
terminal_state | string | null | Estado terminal del ciclo: `pending` — activo, sin resultado final aún; `resolved` — un reintento obtuvo `valid`; `exhausted` — se agotaron los intentos; `cancelled` — cancelado por el usuario. |
meta | object | Metadatos de control del flujo de polling. |
next_poll_after_seconds | integer | Segundos recomendados de espera antes del primer poll a `GET /v1/validations/{id}`. El cliente debe respetar este valor para evitar rate-limit en el endpoint de polling. |
playground | boolean | Indica si la validación fue encolada en modo playground. La ejecución consulta Banxico igual que las validaciones normales pero no consume cuota, no emite webhooks ni notificaciones. |