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.
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ó.