Corregir y reanudar
Corregir un documento con rechazo confirmado y reanudar uno bloqueado sin duplicar la emisión.
Corregir un rechazo confirmado
Solo un rechazo concluyente, con evidencia, permite POST /v1/documents/{id}/revisions. Consulta antes el documento y su ETag.
{
"reason": "Corregir los datos rechazados",
"expected_revision": 1,
"replacement": { "...": "Solicitud documental completa corregida según DocumentRequest" }
}replacement debe ser una solicitud completa y válida, no el marcador del ejemplo. Envía If-Match e Idempotency-Key.
- Se conservan documento, tipo, referencia externa, número y secuencia. Se crea otra revisión y otra operación.
- Se vuelven a comprobar reglas, perfil, autorización y configuración. Las notas reevalúan el saldo: corregir no permite excederlo.
- Una secuencia agotada puede corregir su número existente; una suspendida o vencida no.
- Un replay idéntico devuelve la admisión de esa corrección. Otra corrección con una versión antigua falla.
GET /v1/documents/{id}/revisions/{revision} conserva la entrada y el estado de cada revisión. Sus archivos originales siguen disponibles con ?revision=N en el listado de archivos; hashes y bytes no cambian.
Reanudar un documento bloqueado
En habilitación, POST /v1/documents/{id}/resumption recibe { "reason": "Dependencia recuperada; continuar la misma operación" }, If-Match e idempotencia.
- Conserva revisión, entrada, número, firma y snapshots. Una identidad de firma revocada o sustituida no se reasigna automáticamente.
- Si hay evidencia de un envío incierto, solo vuelve a consultar la identidad existente, con un nuevo presupuesto acotado. No vuelve a subir el XML.
- Antes del primer envío, solo reanuda la etapa original si sus dependencias vuelven a ser aptas y no hay evidencia de transmisión previa.
- Cubre firma bloqueada, empaquetado agotado por una dependencia y transporte antes del primer despacho. Si ya existe firma, reconstruye el paquete con los bytes originales y comprueba su hash; no vuelve a firmar.
- Un estado no elegible devuelve
RESUMPTION_NOT_ALLOWED. Un fallo fiscal anterior a la firma no se recupera por aquí: corrige.
Alcance de la validación
Estas rutas se validaron con receptores locales y material sintético. Una respuesta local aceptada no acredita la aceptación DIAN de una casuística fiscal nueva. Para cambios de esquema, los operadores siguen el ensayo de migraciones y la actualización controlada: el despliegue AWS no permite volver a un código anterior sobre un esquema incompatible.