Borrar una validación de forma definitiva
Objetivo
Borra de forma definitiva lo que la plataforma guarda de una validación propia: el archivo del comprobante, el CEP, los datos extraídos y todo lo derivado con datos personales. Es lo que DELETE /v1/validations/{id} no hace: ese solo retira la validación del historial.
La validación queda como una lápida con su veredicto, sus fechas y su monto, para que la cuota, las estadísticas y finanzas sigan cuadrando. El borrado no se puede deshacer y no devuelve cuota.
Requisitos previos
- Una clave de API activa (
veriko_…) con el permisovalidations:delete, el mismo con el que retiras tus validaciones. - Una validación propia en un estado terminal. Una que sigue en curso responde
409 purge_validation_in_progress.
Pasos
1. Preparar el borrado
POST /v1/validations/{id}/purge/prepare no cambia nada: describe lo que se borraría y emite el token de confirmación.
curl -X POST 'https://api.veriko.mx/v1/validations/f47ac10b-58cc-4372-a567-0e02b2c3d479/purge/prepare' \
-H 'Authorization: Bearer veriko_••••' \
-H 'Content-Type: application/json'{
"data": {
"type": "validation_purge",
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"attributes": {
"confirmation_token": "eyJhZG1pbl9pZCI6Ii4uLiJ9.q1w2e3r4t5y6u7i8o9p0",
"expires_in": 120,
"irreversible": true,
"will_delete": {
"image": true,
"cep": true,
"stored_data": ["request_data", "ocr_result", "normalized_data", "banxico_result"],
"retry_attempts": 0,
"probe_attempts": 0,
"webhook_deliveries": 1,
"notifications": 0,
"idempotency_responses": 1,
"audit_traces": true
},
"will_keep": ["id", "validation_type", "status", "banxico_status", "amount", "error_code", "processing_time_ms", "created_at", "completed_at", "deleted_at", "purged_at"],
"cancels_pending_retries": false,
"refunds_quota": false,
"same_image_validation_ids": []
}
}
}Revisa will_delete y will_keep antes de seguir. same_image_validation_ids lista otras validaciones tuyas con el mismo comprobante: cada una guarda su propia copia de lo extraído y se purga por separado.
El token es de un solo uso, está atado a tu cuenta y a esta validación, y caduca en expires_in segundos.
2. Ejecutar el borrado
POST /v1/validations/{id}/purge/execute borra con el token del paso anterior:
curl -X POST 'https://api.veriko.mx/v1/validations/f47ac10b-58cc-4372-a567-0e02b2c3d479/purge/execute' \
-H 'Authorization: Bearer veriko_••••' \
-H 'Content-Type: application/json' \
-d '{ "confirmation_token": "eyJhZG1pbl9pZCI6Ii4uLiJ9.q1w2e3r4t5y6u7i8o9p0" }'{
"data": {
"type": "validation_purge",
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"attributes": {
"purged_at": "2026-10-02T09:30:00Z",
"file_removal": "complete",
"deleted": { "image": true, "cep_pdf": true, "retry_cycle_cancelled": false, "webhook_deliveries": 1, "idempotency_responses": 1 }
}
}
}file_removal vale complete cuando los archivos ya no existen. Con pending, algún archivo no se pudo borrar en ese momento: el contenido de la base de datos ya está borrado, el archivo no se sirve y el barrido diario de comprobantes lo termina.
3. Comprobar el resultado
Si la respuesta del paso 2 no llega, GET /v1/validations/{id} dice si el borrado se completó: una validación purgada trae purged_at.
curl 'https://api.veriko.mx/v1/validations/f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-H 'Authorization: Bearer veriko_••••'La respuesta es la lápida: 200 con el veredicto, las fechas, el monto en normalized_data.monto y purged_at. Ya no trae request_data, ocr_result, banxico_result ni enlaces al CEP.
Errores
| código | estado | qué hacer |
|---|---|---|
purge_validation_in_progress | 409 | Esperar a que la validación termine y volver a preparar. |
validation_purged | 410 | Ya se purgó. Leer la lápida con GET /v1/validations/{id}. |
not_found | 404 | La validación no existe o es de otra cuenta. |
confirmation_token_missing | 422 | Falta confirmation_token en el cuerpo. |
confirmation_token_expired | 422 | El token venció. Volver a preparar. |
purge_token_mismatch | 422 | El token es de otra validación o de otra cuenta. No se gasta. |
confirmation_token_already_used | 409 | El token ya se usó. Volver a preparar. |
Lo que cambia después
- La imagen, el CEP, los reintentos y la revisión posterior de esa validación responden
410 validation_purged. - Los webhooks, los reintentos y los barridos la ignoran. Un ciclo de reintentos abierto se cancela.
- La lápida sigue en
GET /v1/validationsy en las exportaciones, sin clave de rastreo ni cuentas, y cuenta en los totales.
Lo que el borrado no alcanza (respaldos, el catálogo global de cuentas, lo que ya salió por webhook) está en Retención de comprobantes y datos.
Siguientes pasos
- Evitar que la plataforma conserve el archivo desde el principio: ver
retain_imageen Validar desde un comprobante. - Consultar y gestionar tus validaciones: ver Consultar y gestionar validaciones.