Saltar al contenido
oden.tax docs
POST /v1/mx/invoices/:id/cancel

Cancelar una factura

Se firma con el CSD del emisor y se presenta al SAT. No se deshace. Una cancelación aceptada deja el comprobante sin efectos para siempre, y volver a facturar la misma operación es emitir uno nuevo, no revivir éste.

El motivo importa. El 01 es el único que nombra al comprobante que sustituye a éste, y lo exige. Cancelar con 02 algo que sí vas a re-emitir deja al SAT con dos documentos para una sola venta.

Los cuatro motivos

01
Comprobante emitido con errores con relación. Exige substitute_uuid.
02
Comprobante emitido con errores sin relación.
03
No se llevó a cabo la operación.
04
Operación nominativa relacionada en una factura global.

Sin reason mandamos 02, que es el ordinario. Vale la pena decirlo siempre: el que quieres casi nunca es el default.

Respuesta

200 con la factura, en la misma forma que consultar una factura. Su status pasa a canceled en cuanto el SAT recibe la solicitud, aunque todavía falte que el receptor la acepte. Lo que dice si el comprobante sigue vigente es cancellation.status.

Cuándo la tiene que aceptar tu cliente

Depende del motivo y de si el receptor ya la dedujo. Cuando el SAT pide su autorización, la cancelación queda en proceso y el receptor tiene 72 horas para contestar; si no contesta, se aprueba sola. La respuesta te dice en cuál de los dos casos caíste, en cancellation.status.

requested quiere decir que el receptor todavía no contesta y el comprobante sigue vigente. accepted y final quieren decir que el SAT ya la canceló. Si el receptor la rechaza, la factura vuelve a stamped con cancellation.status en rejected. Le preguntamos al SAT cada media hora; consulta la factura para ver en qué va, o recibe cada cambio por webhooks.

Del otro lado del mostrador: las cancelaciones que a ti te solicitan se contestan desde el panel, en Cancelaciones. Ese mismo plazo corre en tu contra.

Errores

Todos con 422 salvo not_found. Un rechazo del PAC también puede llegar con uno de sus propios códigos.

invalid_state
Sólo se cancela una factura timbrada. Un borrador o una rechazada no llegaron al SAT.
invalid_cancellation_reason
El motivo no es del catálogo, o es 01 y falta el folio del sustituto. Se rechaza aquí, antes de llamar al PAC.
unknown_issuer
El emisor no tiene un CSD con el que firmar la cancelación.
cancellation_refused
El PAC o el SAT no aceptaron la cancelación. El mensaje trae su motivo.
not_found
Esa factura no es de tu cuenta, o no existe. 404.

Los rechazos quedan en la bitácora igual que las cancelaciones que sí procedieron. Una cancelación rechazada deja la factura exactamente como estaba, y sin ese registro nada recordaría que se intentó.