Subsanació d'errors
La subsanació torna a enviar a l'AEAT el registre Veri*Factu d'una factura emesa, marcat amb Subsanacion=S i sense esborrar l'historial de registres. Serveix per corregir un error de remissió, no el contingut fiscal d'una factura ja entregada.
Operació extraordinària
Només aplica per corregir un error de remissió, habitualment d'integració. Si vols canviar imports, número o data, probablement necessites una rectificativa.
Només es pot subsanar una factura amb resposta ferma de l'AEAT a l'últim registre d'alta: rejected, accepted o accepted_error. Amb pending, in-process o unknown_response la crida retorna invoice.fix_requires_rejected.
Dos camins segons l'historial
POST /invoices/{id}/actions/request-fix decideix sol què fer:
| Historial de la factura | Què fa request-fix |
|---|---|
Cap alta acceptada (l'últim registre és rejected) | Reobre la factura a needs_fix perquè editis i tornis a emetre. |
Alguna alta acceptada (accepted o accepted_error) | La factura continua issued i immutable. Genera i encua a l'acte una subsanació amb el nom de l'emissor i les dades del client vigents, conservant número, data i imports. Retorna la factura sense canvis; el nou registre apareix a GET /verifactu-records?invoice_id=…. |
Acceptada amb errors: corregeix primer l'origen
Si l'AEAT ha acceptat amb errors per una dada del client (NIF, nom…), edita el client (PATCH /partners/{id}) abans de cridar request-fix.
Flux amb reobertura (cap alta acceptada)
issued ──request-fix──▶ needs_fix ──(edites)──▶ issue ──▶ issued
(rejected) (Subsanacion=S)
└── abandon-fix ──▶ issued1. Reobrir
curl -X POST https://api.test.bilteo.com/api/v1/invoices/{id}/actions/request-fix \
-H "Authorization: Bearer bk_live_xxxxxxxxxxxxxxxx"Passa la factura a needs_fix. Requereix invoices:fix i invoices:issue, i només funciona si mai hi ha hagut una alta acceptada i l'últim registre està rejected.
2. Corregir
Edita la factura amb els endpoints normals (PATCH /invoices/{id}, línies, etc.) per corregir les dades rebutjades. Número, sèrie, data d'emissió i dades de l'emissor queden bloquejats: la subsanació conserva la identitat de la factura.
3. Tornar a enviar
curl -X POST https://api.test.bilteo.com/api/v1/invoices/{id}/actions/issue \
-H "Authorization: Bearer bk_live_xxxxxxxxxxxxxxxx"L'emissió des de needs_fix conserva el número i crea un nou registre amb Subsanacion=S i el RechazoPrevio calculat.
Abandonar
curl -X POST https://api.test.bilteo.com/api/v1/invoices/{id}/actions/abandon-fix \
-H "Authorization: Bearer bk_live_xxxxxxxxxxxxxxxx"Torna a issued sense enviar res. Les edicions es conserven. Requereix invoices:fix.
RechazoPrevio
| Valor | Quan |
|---|---|
X | El registre no existeix a l'AEAT: tots els intents previs han estat rebutjats. |
S | El registre va existir a l'AEAT i l'última subsanació ha estat rebutjada. |
N | Sense rebuig previ. |
Només API
La subsanació és un flux d'integració de l'API pública. L'app no permet reobrir una factura a needs_fix.