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

Preparar el borrado definitivo de una validación

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

Describe lo que borraría el borrado definitivo de una validación propia y emite el token con el que POST /v1/validations/{id}/purge/execute lo confirma. No cambia nada: la validación y sus archivos quedan como estaban.

DELETE /v1/validations/{id} solo retira la validación del historial; el registro, el CEP, los datos extraídos y el archivo del comprobante siguen existiendo. El borrado definitivo, en dos pasos, los elimina.

La respuesta incluye:

  • confirmation_token: Token de un solo uso, atado a la cuenta y a esta validación, que caduca en expires_in segundos.
  • will_delete: Lo que se borrará: el archivo, el CEP, los campos con contenido y la cantidad de registros derivados.
  • will_keep: Los campos que conserva la lápida en que queda la validación.
  • cancels_pending_retries: true cuando hay un ciclo de reintentos abierto, que el borrado cancela.
  • same_image_validation_ids: Otras validaciones de la cuenta con el mismo comprobante, que no se tocan.
  • irreversible: true siempre.

Solo se admite una validación propia en un estado terminal. Una validación en curso responde un estado HTTP 409 (con purge_validation_in_progress en el cuerpo), y una ya purgada, un estado HTTP 410 (con validation_purged en el cuerpo).

La lápida, lo que se borra 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

Petición
curl -X POST 'https://api.veriko.mx/v1/validations/{id}/purge/prepare' \
  -H 'Authorization: Bearer veriko_••••' \
  -H 'Content-Type: application/json'

Ejemplo en Python — próximamente.

Ejemplo en JavaScript — próximamente.

Ejemplo en PHP — próximamente.

Respuesta 200ValidationPurgePrepareResponse — Resumen de lo que se borraría y token de confirmación. La validación no cambió.
CampoTipoDescripción
data*object

Recurso JSON:API de la preparación. 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 que se borraría.

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

Resumen del borrado y token de confirmación.

confirmation_token*string

Token de un solo uso, atado a la cuenta y a esta validación, que POST /v1/validations/{id}/purge/execute exige para borrar. Caduca en expires_in segundos.

p. ej. eyJhZG1pbl9pZCI6Ii4uLiJ9.q1w2e3r4t5y6u7i8o9p0
expires_in*integer

Segundos de vigencia del token.

p. ej. 120
irreversible*boolean

true siempre: el borrado no se puede deshacer. Un respaldo de infraestructura no lo revierte para el cliente.

p. ej. true
will_delete*object

Lo que borraría el borrado definitivo.

image*boolean

true cuando hay un archivo del comprobante (imagen o PDF) que se borraría.

p. ej. true
cep*boolean

true cuando hay un CEP (el XML o el PDF) que se borraría.

p. ej. true
stored_data*array

Campos de la validación con contenido que se vaciarían. De normalized_data se conserva únicamente el monto.

p. ej. ["request_data","ocr_result","normalized_data","banxico_result"]
retry_attempts*integer

Cantidad de intentos de reintento que se borrarían.

p. ej. 2
probe_attempts*integer

Cantidad de sondeos de cuenta candidata que se borrarían.

p. ej. 0
webhook_deliveries*integer

Cantidad de entregas de webhook de esta validación a las que se les quitaría el cuerpo enviado y la respuesta del receptor. El registro de cada entrega se conserva.

p. ej. 1
notifications*integer

Cantidad de entregas de notificación de esta validación cuyo contenido se vaciaría. Las notificaciones de la bandeja de la cuenta se borrarían.

p. ej. 1
idempotency_responses*integer

Cantidad de respuestas guardadas de Idempotency-Key que se borrarían.

p. ej. 1
audit_traces*boolean

true siempre: los cuerpos de las filas de auditoría que nombran la validación se quitarían, y el contexto libre de sus eventos de seguridad se reduciría a ids y códigos.

p. ej. true
will_keep*array

Campos que conserva la lápida en que queda la validación: bastan para que la cuota, las estadísticas, finanzas y el historial sigan cuadrando.

p. ej. ["id","validation_type","status","banxico_status","amount","created_at","purged_at"]
cancels_pending_retries*boolean

true cuando la validación tiene un ciclo de reintentos abierto, que el borrado cancela.

p. ej. false
refunds_quota*boolean

false siempre: el borrado no devuelve cuota ni cambia lo cobrado.

p. ej. false
same_image_validation_ids*array

Identificadores de otras validaciones de la misma cuenta con el mismo comprobante (hasta 20). No se tocan: cada una guarda su propia copia de lo extraído y se borra por separado.

p. ej. []
Códigos de respuestaPOST /v1/validations/{id}/purge/prepare
CódigoClaseDescripciónCuerpo
2002xxResumen de lo que se borraría y token de confirmación. La validación no cambió.ValidationPurgePrepareResponse
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
4094xxLa validación sigue en curso (queued o processing) 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
4224xxUUID inválido en la ruta (invalid_uuid).ErrorResponse
4294xxLímite de tasa excedidoErrorResponse
Errores de POST /v1/validations/{id}/purge/prepare
CódigoClaveEjemplo
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
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`).