Coherència de la causa d'exempció i conflicte en generar recurrents
Canvien tres operacions: la vista prèvia de la factura accepta un exemption_reason opcional, desar o emetre una factura amb causa de capçalera sense IVA i línies amb IVA respon 422 exemption_cause_contradicts_taxed_lines, i generar una factura recurrent pot respondre un 409 reintentable recurring_presentation_activation_changed.
24 d'octubre de 2026 — Aquesta versió afegeix un camp a la vista prèvia de plantilles PDF, un
422 nou a les operacions de factura que desen o emeten un esborrany i un 409 reintentable
nou a la generació manual d'una factura recurrent. No s'afegeix ni es retira cap operació.
Operacions d'aquesta versió
| Operació | operationId | Eina MCP | Què canvia |
|---|---|---|---|
POST /v1/companies/{company}/pdf-template-previews | public-api.v1.pdf_template_previews.create | preview_pdf_template | Camp opcional nou source.form.document.exemption_reason. |
POST /v1/companies/{company}/recurring-invoices/{recurring_invoice}/generate | public-api.v1.recurring_invoices.generate | generate_recurring_invoice | Nou 409 reintentable recurring_presentation_activation_changed. |
PATCH /v1/companies/{company}/invoices/{invoice} | public-api.v1.invoices.update | update_invoice | Nou 422 exemption_cause_contradicts_taxed_lines. |
POST /v1/companies/{company}/invoices/{invoice}/issue | public-api.v1.invoices.issue | issue_invoice | Nou 422 exemption_cause_contradicts_taxed_lines. |
POST /v1/companies/{company}/invoices/{invoice}/send | public-api.v1.invoices.send | send_invoice | Nou 422 exemption_cause_contradicts_taxed_lines quan l'enviament emet un esborrany. |
POST /v1/companies/{company}/invoices/{invoice}/mark-sent | public-api.v1.invoices.mark_sent | mark_invoice_as_sent | Nou 422 exemption_cause_contradicts_taxed_lines quan emet un esborrany. |
Vista prèvia amb causa d'exempció
source.form.document.exemption_reason és opcional i només s'aplica a document_type invoice.
És la causa d'exempció de la capçalera de la factura. El catàleg el publica GET /v1/tax-catalog.
- La seva menció legal obre les mencions legals automàtiques de la vista prèvia, igual que en desar la factura.
- Si l'ometes, o envies
null, la vista prèvia es genera sense causa. - Una causa desconeguda, o una causa enviada en un pressupost, una proforma o un albarà, es rebutja.
- La vista prèvia no rebutja una causa que contradigui l'IVA de les línies. Desar la factura sí, amb l'error següent.
preview_pdf_template accepta el mateix camp al mateix lloc.
Error nou: exemption_cause_contradicts_taxed_lines
Un esborrany de factura la capçalera del qual porta una causa d'exempció que declara l'operació sense IVA (les exempcions dels articles 20 a 26 i 140 bis de la LIVA, la no subjecció i la inversió del subjecte passiu) no admet una línia d'operació, que no sigui un suplert, amb un IVA major que zero.
La resposta és un 422 amb error.code business_rule_violation i error.subcode
exemption_cause_contradicts_taxed_lines.
param és lines.N.tax_rate i line_index indica la línia.
L'API v1 no accepta la causa de capçalera en crear o editar una factura, però sí que edita i emet esborranys
creats a l'aplicació que la conserven. Aquí és on pot aparèixer l'error: a
PATCH /v1/companies/{company}/invoices/{invoice} i a les operacions que emeten un esborrany
(issue, send i mark-sent). Els documents ja emesos no canvien.
Què cal fer:
- Posa l'IVA de la línia indicada a
paramal 0 %, o treu la causa d'exempció de la factura. - En una factura mixta, amb línies amb i sense IVA, no facis servir una causa de capçalera. Declara l'exempció
a cada línia exempta amb
lines[].exemption_reason. - Repeteix la petició. La que es va rebutjar no va canviar res.
Conflicte reintentable nou: recurring_presentation_activation_changed
Mentre POST /v1/companies/{company}/recurring-invoices/{recurring_invoice}/generate genera la factura,
l'empresa pot activar o desactivar el seu sistema de presentació dues vegades seguides. L'operació respon
llavors 409 recurring_presentation_activation_changed.
- No s'ha escrit res. No s'ha creat cap factura i no s'ha consumit cap ocurrència.
- Repeteix la petició. És un conflicte reintentable, no una violació d'una regla de negoci.
- Idempotència. La resposta no es desa per reproduir-la: repetir la crida amb la mateixa
Idempotency-Keyexecuta la generació de nou i no duplica la factura.
generate_recurring_invoice retorna el mateix error, de manera que un assistent només ha de tornar a cridar l'eina.
La taula següent llista les operacions d'aquesta versió.
Endpoints actualitzats6
| Endpoint | Descripció |
|---|---|
POST/v1/companies/{company}/pdf-template-previews | Crear una vista prèvia de plantilla PDF |
POST/v1/companies/{company}/recurring-invoices/{recurring_invoice}/generate | Genera una factura a partir d'una plantilla recurrent |
PATCH/v1/companies/{company}/invoices/{invoice} | Actualitzar una factura |
POST/v1/companies/{company}/invoices/{invoice}/issue | Emet una factura |
POST/v1/companies/{company}/invoices/{invoice}/send | Envia la factura per email |
POST/v1/companies/{company}/invoices/{invoice}/mark-sent | Marca una factura com a enviada |