POSThttps://api.veriko.mx/v1/validations/{id}/purge/execute

Ejecutar el borrado definitivo de una validación

Audiencia
public
Autenticación
API key
Permiso
validations:delete
Guía de uso →

Borra de forma definitiva el contenido de una validación propia, con el token que emitió POST /v1/validations/{id}/purge/prepare. Es el segundo paso de un flujo de dos pasos: sin ese token no se borra nada.

Se borra:

  • El archivo del comprobante, imagen o PDF.
  • El CEP, en XML y en PDF.
  • request_data, ocr_result, banxico_result y las advertencias de normalización. De normalized_data solo se conserva el monto.
  • Los registros derivados con datos personales: intentos de reintento, sondeos de cuenta, respuestas guardadas de Idempotency-Key y notificaciones de la bandeja.
  • El cuerpo enviado y la respuesta del receptor en las entregas de webhook de esa validación, y el contenido de sus notificaciones. El registro de cada entrega se conserva.
  • Los cuerpos de las filas de auditoría que nombran la validación, y el contexto libre de sus eventos de seguridad.

La validación queda como una lápida: conserva id, validation_type, status, banxico_status, las fechas, processing_time_ms, error_code, el monto y purged_at. Con eso la cuota, las estadísticas, finanzas y el historial siguen cuadrando. El borrado no devuelve cuota.

Después del borrado, GET /v1/validations/{id} responde la lápida con un estado HTTP 200 y purged_at. La imagen, el CEP, los reintentos y la revisión posterior responden un estado HTTP 410 (con validation_purged en el cuerpo), y los webhooks, los reintentos y los barridos la ignoran. Un ciclo de reintentos abierto se cancela.

El token se verifica antes de borrar:

  • Falta, está mal formado, su firma no es válida o venció: responde un estado HTTP 422 con su código (confirmation_token_missing, confirmation_token_malformed, confirmation_token_signature_invalid o confirmation_token_expired).
  • Es de otra validación, de otra cuenta o de otra operación: responde un estado HTTP 422 (con purge_token_mismatch o confirmation_token_operation_mismatch en el cuerpo).
  • Ya se usó: responde un estado HTTP 409 (con confirmation_token_already_used en el cuerpo).

Si la respuesta no llega, GET /v1/validations/{id} dice si el borrado se completó: una validación purgada trae purged_at. Repetir este paso sobre una validación purgada responde un estado HTTP 410.

Lo que se borra, la lápida y las limitaciones están en la retención de comprobantes y datos.

Parámetros
ParámetroUbicaciónTipoObligatorioDescripción
id*pathstring (uuid)obligatorio

Identificador (UUID) de la validación

Parámetros
ParámetroTipoObligatorioDescripción
confirmation_tokenstringobligatorio

Token que devolvió POST /v1/validations/{id}/purge/prepare para esta misma validación y esta misma cuenta. Es de un solo uso y caduca en el plazo que indicó expires_in.

p. ej. eyJhZG1pbl9pZCI6Ii4uLiJ9.q1w2e3r4t5y6u7i8o9p0
Petición
curl -X POST 'https://api.veriko.mx/v1/validations/{id}/purge/execute' \
  -H 'Authorization: Bearer veriko_••••' \
  -H 'Content-Type: application/json' \
  -d '{
    "confirmation_token": "eyJhZG1pbl9pZCI6Ii4uLiJ9.q1w2e3r4t5y6u7i8o9p0"
  }'

Ejemplo en Python — próximamente.

Ejemplo en JavaScript — próximamente.

Ejemplo en PHP — próximamente.

Respuesta 200ValidationPurgeExecuteResponse — Validación purgada. Devuelve cuándo se purgó, el estado del borrado de los archivos y lo que se borró.
CampoTipoDescripción
data*object

Recurso JSON:API del borrado. Su id es el de la validación.

type*string

Tipo del recurso, fijo para esta operación. Forma parte de su identidad en la envoltura JSON:API. Siempre validation_purge.

p. ej. validation_purge
id*string (uuid)

Identificador de la validación purgada.

p. ej. 3fa85f64-5717-4562-b3fc-2c963f66afa6
attributes*object

Resultado del borrado.

purged_at*string (date-time)

Fecha y hora, en ISO 8601 UTC, en que la validación quedó purgada.

p. ej. 2026-10-02T09:30:00Z
file_removal*string

Estado del borrado de los archivos — complete: Los archivos ya no existen; pending: Algún archivo no se pudo borrar en este momento y el barrido diario lo termina. El contenido de la base de datos ya está borrado en los dos casos y el archivo no se sirve.

p. ej. complete
deleted*object

Lo que se borró. Los contadores cuentan filas tocadas; los booleanos dicen si había algo que borrar.

imageboolean

true cuando había un archivo del comprobante.

cep_pdfboolean

true cuando había un PDF del CEP.

retry_cycle_cancelledboolean

true cuando el borrado cerró un ciclo de reintentos que seguía abierto.

retry_attemptsinteger

Intentos de reintento borrados.

probe_attemptsinteger

Sondeos de cuenta candidata borrados.

webhook_deliveriesinteger

Entregas de webhook a las que se les quitó el cuerpo enviado y la respuesta del receptor.

notification_deliveriesinteger

Entregas de notificación cuyo contenido se vació.

notificationsinteger

Notificaciones de la bandeja que se borraron.

idempotency_responsesinteger

Respuestas guardadas de Idempotency-Key que se borraron.

import_rowsinteger

Filas de importación masiva cuyo contenido se vació.

audit_log_rowsinteger

Filas de auditoría a las que se les quitaron los cuerpos. Falta cuando ese barrido no se pudo completar.

security_events_rowsinteger

Eventos de seguridad cuyo contexto se redactó. Falta cuando ese barrido no se pudo completar.

Códigos de respuestaPOST /v1/validations/{id}/purge/execute
CódigoClaseDescripciónCuerpo
2002xxValidación purgada. Devuelve cuándo se purgó, el estado del borrado de los archivos y lo que se borró.ValidationPurgeExecuteResponse
4004xxEl cuerpo de la petición llegó vacío cuando la operación necesita datos (body_empty).ErrorResponse
4014xxSe requiere autenticación o las credenciales son inválidasErrorResponse
4034xxPermisos insuficientesErrorResponse
4044xxValidación no encontrada, o ajena a la cuenta de usuario (not_found).ErrorResponse
4094xxEl token ya se usó (confirmation_token_already_used), o la validación sigue en curso y todavía no se puede purgar (purge_validation_in_progress, con el estado en meta.status).ErrorResponse
4104xxLa validación se purgó y este recurso ya no existe (validation_purged).ErrorResponse
4134xxEl cuerpo de la petición supera el tamaño máximo admitido (body_too_large).ErrorResponse
4224xxEl token no sirve. Códigos posibles: confirmation_token_missing, confirmation_token_malformed, confirmation_token_signature_invalid, confirmation_token_expired, confirmation_token_operation_mismatch y purge_token_mismatch (el token es de otra validación o de otra cuenta). UUID inválido en la ruta (invalid_uuid).ErrorResponse
4294xxLímite de tasa excedidoErrorResponse
Errores de POST /v1/validations/{id}/purge/execute
CódigoClaveEjemplo
400body_empty

El cuerpo de la petición está vacío.

Envelope
meta.request_id
2b3c4d5e6f7aa7f6e5d4c3b2
401unauthorized

Credenciales de autenticación ausentes o inválidas.

Envelope
meta.request_id
c4d5e6f7a8b99b8a7f6e5d4c
403permission_denied

No tienes permiso para acceder a este recurso.

Envelope
meta.request_id
d5e6f7a8b9c00c9b8a7f6e5d
410validation_purged

La validación se purgó y este recurso ya no existe.

Envelope
meta.request_id
1a2b3c4d5e6ff6e5d4c3b2a1
413body_too_large

El cuerpo de la petición es demasiado grande.

Envelope
meta.request_id
1a2b3c4d5e6ff6e5d4c3b2a1
429rate_limit_exceeded

Límite de peticiones excedido. Inténtalo de nuevo en 45 segundos.

Envelope
meta.request_id
f7a8b9c0d1e22e1d0c9b8a7f
Cabeceras de respuesta
  • Retry-After: integer — Segundos a esperar antes de reintentar. Coincide con la ventana de rate-limit del endpoint (típicamente 60s para listas, 1-5s para operaciones idempotentes en vuelo).
  • X-RateLimit-Limit: integer — Límite de solicitudes configurado para este bucket. Se emite en cada 429 y, en la API autenticada, también en las respuestas correctas, donde es el tope por clave del plan de la cuenta.
  • X-RateLimit-Remaining: integer — Solicitudes restantes en la ventana actual. Siempre 0 en el momento del 429; en una respuesta correcta de la API autenticada es lo que queda del tope por clave.
  • X-RateLimit-Reset: integer — Unix epoch absoluto (segundos) en que se reinicia la ventana. Se emite en cada 429, junto con Retry-After, y en las respuestas correctas de la API autenticada. Puede existir sobreescritura por endpoint (p. ej. `rate_limited_login`).