Suplerts
Els diners que pagues per compte del teu client —taxes judicials, aranzels registrals, visats— no són ingrés teu. Com facturar-los perquè quedin fora de la teva base imposable, del teu IVA i de la teva declaració anual d'operacions amb tercers.
Un suplert (suplido en la nomenclatura fiscal espanyola) és una quantitat pagada en nom i per compte del client, sota el seu mandat exprés (art. 78.Tres.3 de la Llei de l'IVA). No forma part del que cobres pel teu servei: l'avances, el repercuteixes a cost i no arriba mai a ser la teva base imposable.
Facturat com a línia ordinària, aquest mateix import infla la teva base imposable, el teu IVA repercutit, el total que declares a l'AEAT i la base que informes d'aquell client a la declaració anual d'operacions amb tercers (Modelo 347). Facturat com a suplert, apareix al document, el client el paga i queda fora de les quatre coses.
Quan aplica
Només a factures emeses. Els pressupostos, les proformes, els albarans, les
factures de compra i les plantilles de recurrents no modelen els suplerts en
absolut — les seves taules de línies no tenen aquesta columna
(BR-INV-037). Una plantilla de recurrent, en particular, no
podria portar la referència d'origen obligatòria, així que la línia degradaria en
silenci a una operació ordinària i cada factura generada la declararia com a
ingrés propi.
Dues restriccions més:
- Una factura simplificada no en pot portar cap. El contingut obligatori d'una
factura simplificada no identifica el destinatari, així que no pot acreditar per
compte de qui es va pagar l'import, i l'Administració tributària el tractaria
com a base imposable teva. La seva rectificativa es rebutja pel mateix motiu.
Emet una factura completa o treu la línia (
BR-INV-040). - Una factura no pot estar feta només de suplerts. S'exigeix almenys una línia
ordinària (
BR-INV-046).
L'API només pot imposar una de les tres condicions legals: que puguis justificar l'import. El mandat exprés del client és un requisit documental que Factuarea ni demana ni desa: sense ell l'import no és un suplert, l'etiqueti com l'etiqueti la factura. I l'IVA suportat d'un suplert no és deduïble per tu — el destinatari real d'aquella operació és el client. Res del producte no t'impedeix deduir-lo, així que això queda de la teva mà.
Què envia l'API
Quatre camps opcionals de línia a
POST /v1/invoices,
PUT /v1/invoices/{id}
i POST /v1/invoices/{id}/corrective:
| Camp | Regles |
|---|---|
line_type | NORMAL o SUPLIDO. Absent o null equival a NORMAL, així que ometre'l reprodueix exactament el comportament anterior. |
source_invoice_reference | Obligatori en una línia de suplert. Text lliure, fins a 100 caràcters. |
source_invoice_ids | Traçabilitat opcional: factures de compra de la teva pròpia empresa, validades amb abast de tenant. Una llista buida col·lapsa a nul. |
line_total | Suma de control opcional d'entrada — vegeu La suma de control de línia. |
curl -X POST https://api.factuarea.com/v1/invoices \
-H "Authorization: Bearer fact_live_3pXnR2VbY7TcA9eFmN5z8KqW" \
-H "Content-Type: application/json" \
-d '{
"client_id": "0197a2a8-4cf0-7a31-9a5e-3f2b8c1d6e42",
"series_id": "019e5584-7a72-7038-a8f6-561ed180b699",
"issued_on": "2026-06-01",
"due_on": "2026-07-01",
"lines": [
{ "description": "Honorarios de constitución de sociedad", "quantity": 1, "unit_price": 1000, "tax_rate": 21 },
{ "description": "Tasa del Registro Mercantil",
"quantity": 1, "unit_price": 150,
"line_type": "SUPLIDO",
"source_invoice_reference": "RM-2026-0451" }
]
}'POST /v1/invoices no té camp type, així que no pot emetre una factura
simplificada; el rebuig per factura simplificada només s'assoleix, per tant, a
través de l'endpoint de rectificativa sobre un original simplificat. Vegeu
Factures simplificades o completes.
La referència d'origen és obligatòria, i és text
És text lliure i no una clau forana perquè el justificant —una taxa judicial, un
aranzel registral, un visat— rarament està registrat com a factura de compra a
Factuarea. Sense ell no pots acreditar que la despesa pertany al client
(BR-INV-038).
source_invoice_ids és la contrapart estructurada opcional, i la regla pràctica
convé interioritzar-la:
Si el justificant està al teu nom, no és un suplert. Factura'l com a línia ordinària.
El suplert canònic té el document expedit a nom del client, així que no és una compra teva i la llista es queda buida. Enllaça factures de compra només quan hagis registrat de debò el pagament als teus propis llibres com a suport de la bestreta — i recorda que l'IVA suportat d'aquella factura no s'ha de deduir.
Una línia de suplert no porta càrrega fiscal pròpia
Vuit camps es rebutgen en una línia SUPLIDO amb un valor diferent de zero o de
nul (BR-INV-039):
| Camp | Per què |
|---|---|
tax_rate | Un suplert no és contraprestació — no li repercuteixes IVA. |
retention_rate | No hi ha cap ingrés teu sobre el qual retenir. |
surcharge_rate | El recàrrec d'equivalència grava un lliurament teu; això no ho és. |
discount_percent | Descomptar un import pagat per compte d'altri el distorsiona — repercuteixes el que vas pagar. |
regime_key | Una clau de règim qualifica una operació teva. |
exemption_reason | Un suplert ni tributa ni està exempt: no és operació teva. |
product_id | No és un lliurament de béns teus i no ha de moure estoc. |
pack_id | Mateix motiu — un pack s'expandeix en lliuraments propis. |
L'error anomena el camp infractor, i el porta com a offending_field al detall de
l'error.
Com que una línia de suplert no pot referenciar cap producte, el llibre d'estoc la ignora per construcció: la fila persistida no té producte i ja queda filtrada.
La suma de control de línia
lines[].line_total és una suma de control d'entrada i opcional. Quan hi és,
es compara amb el total que el motor acaba de calcular, i la petició es rebutja si
la desviació supera un cèntim (BR-INV-044). El detall de
l'error porta els valors expected i received perquè localitzis un
desquadrament d'arrodoniment amb el teu ERP sense haver de parsejar el missatge.
Tres propietats, totes deliberades:
- No es persisteix mai, no es retorna mai. No existeix aquesta columna i cap recurs no l'emet. L'import facturat és sempre el que calcula Factuarea.
- No és mai obligatòria, en cap escenari. Exigir-la t'obligaria a replicar el nostre motor de càlcul, cosa explícitament fora d'abast.
- La tolerància d'un cèntim és inclusiva. Una desviació d'exactament 0,01 € passa; 0,02 € falla. La comparació es fa en aritmètica de precisió arbitrària, no en coma flotant — l'error de coma flotant és precisament el que aquest camp existeix per diagnosticar.
Errors
Tots 422:
subcode | Causa |
|---|---|
suplido_requires_source_invoice_reference | La línia de suplert no té referència d'origen. |
suplido_line_cannot_carry_taxes | S'ha enviat un dels vuit camps prohibits. |
suplido_not_allowed_in_simplified_invoice | Una factura simplificada o la seva rectificativa. |
invoice_requires_at_least_one_line | Totes les línies són suplerts, així que la factura no declara cap operació. |
line_total_checksum_mismatch | El total de línia declarat es desvia més d'un cèntim. |
L'índex del missatge comença a zero sobre la col·lecció completa de línies, de
manera que casa amb la ruta lines.{i} del teu payload.
Com queden els totals
La calculadora de totals particiona les línies per tipus
(BR-INV-041):
| Camp | Contingut |
|---|---|
subtotal, taxes_total, total | Només les línies ordinàries. La fórmula queda intacta. |
total_disbursements | La suma de les línies de suplert, i només això. Persistit. |
total_to_pay | total + total_disbursements. Derivat, mai emmagatzemat. |
Per a la factura de dalt: subtotal 1000, IVA 210, total 1210, suplerts 150, import a pagar 1360.
Hi ha exactament un punt del codi on se sumen aquests dos termes, i tots els consumidors —recursos de l'API, el PDF, l'enllaç públic del document— llegeixen el valor derivat en lloc de recompondre la suma. Dues columnes anomenades «total» acabarien divergint.
Tota xifra per factura que mesura deute fa servir l'import a pagar, no el total
fiscal (BR-INV-045): pending_amount és
total_to_pay − paid_amount, el llibre de cobraments accepta un pagament que
cobreixi l'import a pagar íntegre sense respondre «supera el pendent», la
transició a paid exigeix l'import a pagar cobert —pagar només el total fiscal
deixa la factura sense cobrar amb el suplert pendent— i els tres enllaços de
pagament en línia cobren l'import a pagar.
Les xifres agregades de cartera són l'excepció documentada: mesuren volum facturat, no import degut. Aquest límit, i el que afecta els documents Facturae i UBL, són a Abast i limitacions.
Una factura sense suplerts té total_disbursements: 0 i
total_to_pay == total, al cèntim, inclosa tota factura històrica.
Què surt al PDF
El suplert sí que s'imprimeix —el client el va pagar i la factura és la
representació legal d'això— però marcat com el que és
(BR-INV-042): la línia mostra un guionet a la columna d'IVA, i
el bloc de totals guanya una fila Suplidos i una fila Total a pagar a sota del
total fiscal.
L'enllaç públic del document mostra el mateix. L'exportació a full de càlcul a nivell de línia hi afegeix una columna de tipus de línia, perquè sense ella un suplert és indistingible d'una operació al 0 % d'IVA i sumar la columna de total de línia donaria l'import cobrat en lloc de l'ingrés declarable.
Dos camps de línia que són només de presentació ajuden aquí i no tenen cap efecte
fiscal (BR-INV-043): unit, una unitat de mesura de text lliure
impresa al costat de la quantitat, i exemption_reason_text, text lliure imprès
sota la descripció per a la redacció de l'exempció quan la causa catalogada no la
cobreix.
Què arriba a l'AEAT
Res. Una línia de suplert no arriba mai al registre de facturació VeriFactu:
ni al desglossament fiscal, ni al total declarat
(BR-VFC-036).
L'exclusió passa en un únic punt, la passarel·la de lectura, aigües amunt del constructor del desglossament — així el mateix conjunt filtrat alimenta tots els consumidors: l'array de línies, el tipus d'IVA agregat, la descripció de l'operació, la clau de règim i el generador d'XML. Filtrar només l'array de línies hauria deixat oberts els altres camins: un suplert en primera posició donava un tipus del 0 % a l'agregat d'una factura que sí que repercuteix IVA, i descrivia l'operació a l'AEAT com a «Tasa del Registro…».
El total declarat no canvia de fórmula i exclou els suplerts per construcció, perquè el total fiscal agrega només les línies ordinàries. L'AEAT valida aquest total contra la suma del desglossament; afegir-hi el suplert desquadraria el registre i en provocaria el rebuig. L'import a pagar és presentació i no es transmet mai.
A la declaració anual d'operacions amb terceres persones, la base declarada de
cada contrapart és (BR-TXR-023):
base = total facturat (IVA inclòs) + retenció d'IRPF − suplertsLa retenció suma —la contrapart va rebre una factura per l'import brut— i el suplert resta, perquè només el vas repercutir per compte del teu client. Invertir qualsevol dels dos signes declara malament la contrapart. Mentre el terme de suplerts va ser un zero fixat de manera rígida, la declaració sobredeclarava tot client a qui s'haguessin repercutit taxes o aranzels, amb risc de desquadrament contra la seva pròpia declaració creuada.
Les factures de compra no modelen ni retenció ni suplerts, així que tots dos termes són estructuralment zero al costat rebut.
Que un tercer es declari o no es decideix al contacte, no a la factura. El
camp accumulate_347 del client —escrivible des de la v1 a
POST /v1/clients i
PUT /v1/clients/{id},
amb valor per defecte true— exclou totes les operacions d'aquell client quan val
false, i es llegeix en viu en calcular la declaració en lloc de congelar-se en
emetre (BR-TXR-037).
L'antiga marca per factura sobreviu com a override adormit, exposada en només
lectura a l'objecte factura de la v1 com a exclude_347: pot forçar l'exclusió
d'una factura concreta, mai reincloure un tercer ja marcat com a no acumulable, i
l'API pública no la fixa (BR-TXR-024). Cap de les dues marques
no reinclou el que les regles automàtiques ja van excloure —operacions
intracomunitàries, exportacions i factures simplificades sense NIF—.
Traçabilitat
Derivat de les regles de domini del backend de Factuarea:
BR-INV-037— el catàleg tancat de tipus de líniaNORMAL|SUPLIDO, el seu valor per defecte retrocompatible i per què existeix només a les factures emeses.BR-INV-038— la referència d'origen obligatòria, la traçabilitat opcional a factures de compra i les dues condicions legals que el programari no pot imposar.BR-INV-039— els vuit camps que una línia de suplert no pot portar.BR-INV-040— sense suplerts en una factura simplificada ni en la seva rectificativa.BR-INV-041— suplerts fora de la base, de l'IVA i del total; l'agregat persistit i la fórmula única derivada de l'import a pagar.BR-INV-042— quines superfícies exclouen el suplert i quines el mostren marcat.BR-INV-043—unitiexemption_reason_textcom a camps només de presentació.BR-INV-044—line_totalcom a suma de control d'entrada, opcional, mai persistida, amb tolerància inclusiva d'un cèntim.BR-INV-045— el saldo pendent mesurat contra l'import a pagar.BR-INV-046— una factura no es pot compondre només de suplerts.BR-VFC-036— els suplerts no arriben mai al registre de facturació, i la invariant de huella idèntica a les factures que no en porten.BR-TXR-023— la base de la declaració d'operacions amb tercers: total facturat més retenció menys suplerts.BR-TXR-037— l'acumulació en aquella declaració es decideix al contacte, es llegeix en viu, i la marca per factura queda com a override adormit.BR-TXR-024— la marca d'exclusió per document, superseded perBR-TXR-037i conservada com aquell override.