← Volver al índice de esquemas

Validation

Registro completo de una validación SPEI en forma de JSON:API. Devuelto por `GET /v1/validations/{id}` y `POST /v1/validate` síncrono.

ExtiendeJsonApiResourceBase

Propiedades

CampoTipoDescripción
type*stringTipo de recurso JSON:API. Siempre `validation`.
id*string (uuid)Identificador único de la validación (UUID v4).
attributes*objectDatos canónicos de la validación.
validation_typestring`direct` para peticiones con parámetros textuales; `ocr` para peticiones con imagen de comprobante.
is_playgroundbooleanIndica si la validación fue ejecutada en modo playground. Las ejecuciones playground sí consultan Banxico pero no consumen cuota, no emiten webhooks ni notificaciones.
statusstringEstado del ciclo de vida: `queued` — encolado para trabajador; `processing` — trabajador procesando; `valid` — CEP encontrado y datos coinciden; `not_found` — Banxico consultado, transferencia no encontrada; `cep_unavailable` — servicio Banxico no disponible; `invalid` — payload rechazado post-encolado; `failed` — fallo terminal; `error` — error retriable (Banxico HTTP 5xx).
banxico_statusstring | nullEstado reportado por Banxico tras la consulta. `null` antes de consultar.
processing_time_msinteger | nullMilisegundos transcurridos entre encolado y resolución terminal.
request_dataobjectSnapshot literal de los campos del request original.
created_atstring (date-time)Marca temporal UTC del encolado.
completed_atstring | nullMarca temporal UTC de resolución terminal. `null` mientras `status` esté en `queued`/`processing`.
enqueued_atstring | nullMarca temporal del encolado en el bus de mensajería.
processing_started_atstring | nullMarca temporal del primer XCLAIM del trabajador.
expires_atstring | nullMarca temporal de expiración para validaciones encoladas. Tras esta marca, la importación pasa a `failed`.
etag_versioninteger | nullVersión incremental para `If-None-Match` en consultas polling.
image_pathstring | nullRuta relativa de la imagen del comprobante. Solo OCR.
ocr_resultobject | nullResultado bruto del OCR. Solo OCR.
ocr_confidencenumber | nullPuntaje OCR 0–1. Solo OCR; `null` para `direct`.
normalized_dataobject | nullCampos normalizados post-OCR para consulta a Banxico.
normalization_warningsarray | nullAdvertencias de la pipeline de normalización.
is_maskedboolean | nullIndica si el PAN viene enmascarado en el comprobante OCR.
banxico_resultobject | nullPayload literal devuelto por Banxico CEP.
error_messagestring | nullMensaje legible del error terminal cuando aplique.
error_codeValidationErrorCode | nullCódigo machine-readable del error terminal.
batch_idinteger | nullIdentificador del lote de import masivo si aplica.
batch_positioninteger | nullPosición dentro del lote (1-indexed).
retry_stateobjectEstado completo del ciclo de reintentos. Siempre presente; si la validación no tiene reintentos activos, `enabled=false` y los campos de política son `null`. Las validaciones de import masivo siempre tienen `enabled=false`.
enabledbooleanIndica si el ciclo de reintentos está activo para esta validación.
max_retriesinteger | nullNú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_secondsinteger | nullIntervalo entre reintentos en segundos (300–86400). `null` si `enabled=false`.
outcomesarray | nullResultados de validación que habilitan un reintento (`not_found`, `cep_unavailable`, `error`). `null` si `enabled=false`.
attempts_completedintegerNúmero de reintentos completados hasta el momento.
next_attempt_atTimestampUTC | nullTimestamp del próximo reintento programado. `null` si el ciclo está en estado terminal o si no hay reintentos activos.
resolved_atTimestampUTC | nullTimestamp cuando un reintento resolvió la validación a `valid`. `null` si el ciclo no ha terminado por resolución.
exhausted_atTimestampUTC | nullTimestamp cuando se agotaron los reintentos sin resolución. `null` si el ciclo no ha terminado por agotamiento.
cancelled_atTimestampUTC | nullTimestamp cuando el ciclo fue cancelado explícitamente. `null` si no fue cancelado.
terminal_statestring | nullEstado 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. `null` si la validación no tiene ciclo de reintentos.
linksobjectEnlaces relacionados (JSON:API `links`).
selfstringURL de la validación.
cep_xmlstring | nullURL del CEP en formato XML. `null` si `status` no es `valid`.
cep_pdfstring | nullURL del CEP en formato PDF. `null` si `status` no es `valid`.

Usado en operaciones

  • POST /v1/validate
  • POST /v1/validate-ocr
  • GET /v1/validations/{id}