Anul·lar o rectificar
Quatre operacions semblen «desfer una factura» i només una és correcta en cada cas — eliminar, cancel·lar, anul·lar i rectificar. Si tries malament, perds un document fiscal o presentes una declaració que no pretenies.
Una factura emesa no es pot editar. Tot allò que sembla editar-la és en realitat una de quatre operacions diferents, cadascuna amb les seves condicions prèvies i la seva pròpia conseqüència davant l'Administració tributària. Aquesta pàgina és la taula de decisió, i el motiu de cada branca.
Quan aplica
Sempre que hi hagi alguna cosa malament en una factura i l'hagis de desfer. L'estat actual de la factura acota les operacions legals; quan n'hi ha més d'una de legal, ho decideix la teva intenció. La gravetat de l'error no hi entra mai.
| Estat de la factura | Número assignat? | Operació | Conseqüència |
|---|---|---|---|
draft, i no hi ha res que valgui la pena conservar | No | Eliminar — DELETE /v1/invoices/{id} | El registre desapareix. Mai no va ser fiscal. |
draft, però vols deixar constància de l'intent | No | Cancel·lar — canviar l'estat a cancelled | L'esborrany es retira però es conserva. |
sent, overdue — la factura no s'hauria d'haver emès mai | Sí | Anul·lar — POST /v1/invoices/{id}/annul | La factura deixa de ser cobrable i es declara una anul·lació a l'AEAT. |
sent, paid — la factura havia d'existir, el seu contingut és incorrecte | Sí | Rectificar — POST /v1/invoices/{id}/corrective | Un document fiscal nou que referencia l'original. |
sent, però només estava malament la marca de lliurament | Sí | Desfer la marca de lliurament — POST /v1/invoices/{id}/unsend | Es neteja la marca de lliurament. La factura continua emesa. |
Tres regles fan que la taula sigui inequívoca:
Una factura numerada no s'elimina mai físicament. Eliminar exigeix estat
draft (o un cancelled que vingui d'un esborrany) i un número que continuï
sent el provisional de l'esborrany. Tota factura que ha consumit un número de la
seva sèrie queda protegida pel soft-delete fiscal; la via per retirar-la és
l'anul·lació (BR-INV-002, art. 29.4 de la Llei general
tributària sobre el deure de conservar els documents amb transcendència
tributària).
Una factura pagada està tancada. paid és terminal: el seu IVA repercutit
s'ha declarat o es declararà en el període i el cobrament està identificat, de
manera que anul·lar-la trencaria la traçabilitat i distorsionaria les
declaracions d'IVA. El camí canònic és una rectificativa
(BR-INV-023).
En sent totes dues són legals — així que pregunta't què ha fallat. Una
rectificativa s'admet sobre sent o paid (BR-INV-001) i una
anul·lació sobre sent o overdue (BR-INV-003): sent és
l'únic estat en què l'API accepta qualsevol de les dues. L'estat no pot decidir
per tu; la pregunta sí:
- La factura no hauria d'haver existit mai — s'ha cancel·lat la comanda, ha anat al client equivocat, en duplica una altra → anul·lar.
- La factura s'havia d'emetre però el seu contingut és incorrecte — import erroni, tipus d'IVA incorrecte, dades del destinatari malament, una devolució parcial → rectificativa.
Si anul·les per un simple error d'import, declares una ANULACION a l'AEAT i
cremes el número per no res; la rectificativa era el camí net i continua
disponible en sent.
Cancel·lar no és anul·lar
Són actes diferents, i el domini els manté separats a propòsit.
Cancel·lar retira un esborrany — un document que encara no obliga
fiscalment. Només està disponible des de draft, i cancelled és terminal: un
esborrany cancel·lat no es pot revifar, se'n crea un de nou
(BR-INV-012).
Anul·lar retira una factura emesa. Només està disponible des de sent o
overdue. No és una eliminació: la factura roman al llibre registre, en estat
annulled, i si l'empresa està adherida a VeriFactu l'anul·lació es declara al
seu torn.
Intentar cancel·lar una factura emesa, o anul·lar un esborrany, respon 422 amb
un error de transició no vàlida. Aquest codi és deliberat: es tracta d'una
violació de regla de negoci, no d'un problema de permisos.
Les rectificatives no s'anul·len
Una factura rectificativa no s'anul·la mai. Si la rectificativa mateixa està
malament, emets una rectificativa nova de la factura original
(BR-INV-003). Intentar-ho respon 422.
El raonament és que tot el sentit d'una rectificativa és «aquest document modifica aquell». Anul·lar la modificació deixaria l'original en un estat ambigu davant l'Administració tributària, on tots dos documents ja estan registrats.
unsend desfà una marca de lliurament, no una emissió
unsend existeix per a un error concret: marcar com a lliurada una factura que
no ho estava. Neteja la marca de lliurament i manté l'estat en sent. El
número de sèrie, l'alta a l'AEAT i els snapshots congelats queden intactes,
perquè una factura emesa és immutable (BR-INV-030,
RD 1007/2023).
Dues propietats importen per a les integracions:
- És idempotent. Tornar-la a cridar quan la marca ja està neta és un no-op
controlat, mai un
500. - Està estrictament acotada a
sent. Sobre una facturapaid,annulled,cancelledo programada respon422— mai403.
La matriu de transicions d'estat no conté cap camí de tornada de sent a draft
per cap ruta, inclòs l'endpoint genèric de canvi d'estat. No existeix la
«desemissió».
Què envia l'API
Comprova primer.
GET /v1/invoices/{id}/can-annul
(scope invoices:read) et dona la resposta abans de comprometre't, inclòs si
l'anul·lació produirà un registre VeriFactu addicional:
curl https://api.factuarea.com/v1/invoices/0197a2a8-4cf0-7a31-9a5e-3f2b8c1d6e42/can-annul \
-H "Authorization: Bearer fact_live_3pXnR2VbY7TcA9eFmN5z8KqW"{
"data": {
"can_annul": false,
"reasons": ["La factura está pagada."],
"will_create_verifactu": false,
"info": []
}
}Després anul·la.
POST /v1/invoices/{id}/annul
(scope invoices:void) deixa constància del motiu:
curl -X POST https://api.factuarea.com/v1/invoices/0197a2a8-4cf0-7a31-9a5e-3f2b8c1d6e42/annul \
-H "Authorization: Bearer fact_live_3pXnR2VbY7TcA9eFmN5z8KqW" \
-H "Content-Type: application/json" \
-d '{"reason": "El cliente cancela el pedido tras la emisión"}'POST /v1/invoices/{id}/void arriba a la mateixa operació de domini sota el
nom extern que el contracte de l'API fa servir per a l'estat (voided).
Prefereix annul quan vulguis deixar constància del motiu; una segona crida
sobre una factura ja anul·lada respon 422 en tots dos casos.
Per al camí de la rectificativa —payload, codis de rectificació, herència de línies— consulta Factures rectificatives.
Què surt al PDF
L'anul·lació no reescriu el document original. La factura conserva el seu número, les seves dades congelades de destinatari i emissor i el seu bloc QR; el que canvia és el seu estat al llibre registre i el fet que ara existeix una segona declaració davant l'AEAT.
Eliminar un esborrany retira el document del tot — però un esborrany mai no va tenir número definitiu, ni snapshot congelat, ni QR, que és exactament per què eliminar és segur allà i enlloc més.
unsend no canvia res del document imprès. Només neteja una marca de lliurament;
la factura no torna a ser editable (BR-INV-030).
Què arriba a l'AEAT
L'anul·lació d'una factura d'una empresa adherida a VeriFactu produeix un
segon registre de facturació de classe ANULACION, encadenat a l'últim registre
de l'empresa i referit a l'alta original (BR-VFC-014). Es crea
de manera asíncrona, després que la transacció confirmi, de manera que la factura
arriba a annulled a la teva base de dades abans que es transmeti la declaració.
Consulta el registre si necessites confirmar que l'AEAT l'ha acceptada — vegeu
Estats d'enviament VeriFactu.
Hi ha un matís amb conseqüències reals. Si l'alta original no es va acceptar
mai —està rebutjada, amb error, o encara pendent—, l'anul·lació ha de declarar
explícitament que no existeix cap registre previ a l'AEAT. El sistema deriva
aquesta marca de l'estat de l'alta en el moment en què es crea l'anul·lació i la
persisteix com a snapshot, de manera que un canvi posterior de l'estat de
l'original no desincronitza l'XML ja transmès. Sense aquesta marca, l'AEAT
rebutja l'anul·lació de pla amb «el registre de facturació no existeix»
(BR-VFC-026).
Cancel·lar i eliminar un esborrany no arriben a l'AEAT de cap manera: un esborrany no es va declarar mai.
Les rectificatives són documents fiscals ordinaris i produeixen la seva pròpia alta, exactament igual que qualsevol altra factura.
Si l'empresa no està adherida a VeriFactu, l'anul·lació funciona igualment i simplement no produeix cap declaració.
Traçabilitat
Derivat de les regles de domini del backend de Factuarea:
BR-INV-001— una rectificativa exigeix un original ensentopaid; aquest solapament amb l'anul·lació ensentés la raó que allà hi decideixi la intenció i no l'estat.BR-INV-002— soft-delete fiscal: una factura numerada no s'elimina mai físicament.BR-INV-003— l'anul·lació es limita a factures emeses; les rectificatives no s'anul·len mai.BR-INV-012— la cancel·lació es limita a esborranys i és terminal.BR-INV-023—paidés un estat tancat; es corregeix amb una rectificativa, mai amb una anul·lació.BR-INV-030—unsendneteja la marca de lliurament, manté la factura emesa, és idempotent i respon422en lloc de403.BR-VFC-014— la classe de registre d'anul·lació i la cadena a què pertany.BR-VFC-026— la marca de «sense registre previ» en l'anul·lació d'una alta que no es va acceptar mai.
Derivat també de la màquina d'estats de factura documentada al costat d'aquestes regles, que és la font de veritat de les transicions citades a Quan aplica.