Skip to content
Log in

Rapport fiscal

Ce guide explique comment renseigner correctement le tableau taxes_attributes lors de la création de factures via l’API afin que les intégrateurs sachent quels noms et catégories de taxe sont attendus selon le pays.

Important

  • Les pourcentages indiqués sont les valeurs par défaut de B2Brouter pour faciliter l’intégration ; les taux de taxe peuvent changer. Vérifiez toujours la législation en vigueur dans chaque pays.
  • Les noms des taxes doivent correspondre aux valeurs attendues dans ce guide. N’inventez pas de nouveaux noms (par ex. "Exento", "Umsatzsteuer", "Sales tax").
  • De nombreux formats réutilisent comment comme motif d’exonération / « non soumis ». Renseignez-le dès que vous définissez 0 % / exonéré / autoliquidation, sauf si votre compte a déjà le bon motif par défaut.

Utilisez ce guide avec :

  • Utilisez uniquement ces champs dans chaque objet taxes_attributes : name (string), category (string, enum), percent (float), comment (string ou null). N’ajoutez aucune autre clé comme amount, base, type, etc.
  • Les pourcentages sont les valeurs par défaut que nous attendons ; les lois évoluent. Si votre cas d’usage utilise un taux différent, envoyez ce taux tout en conservant le bon name et la bonne category.
  • Pour les retenues à la source / rétentions, utilisez un percent négatif et le nom de taxe approprié (IRPF, IRNR, IRPEF, etc.).
  • comment est utilisé comme motif d’exonération / « non soumis » dans de nombreux formats (Facturae/Verifactu, catégories Peppol, etc.). Fournissez un motif dès que percent vaut 0 et que l’opération est exonérée / non soumise / en autoliquidation (exemple : comment: "E2").
  • Les paramètres du compte ont un impact sur le calcul : apply_taxes_per_line (boolean) contrôle si les taxes sont appliquées par ligne ou sur la somme ; rounding_method contrôle l’arrondi.

Chaque ligne de facture (invoice_lines_attributes) peut contenir un tableau de taxes :

"taxes_attributes": [
{
"name": "VAT",
"category": "S",
"percent": 21.0,
"comment": "Standard VAT"
}
]

Pour chaque objet taxe :

  • name (obligatoire) : nom de la taxe (doit correspondre à l’une des valeurs attendues pour le pays de l’entreprise, voir Référence par pays).
  • category (recommandé) : code de catégorie de taxe (voir Catégories de taxe).
  • percent (obligatoire) : pourcentage de taxe. Utilisez des valeurs négatives pour les retenues ou rétentions.
  • comment (optionnel mais recommandé pour 0 % / exonération / autoliquidation) : motif en texte libre utilisé par plusieurs formats et administrations fiscales.

Plusieurs taxes peuvent être appliquées à une même ligne en ajoutant plusieurs objets dans taxes_attributes.

Seuls ces champs sont valides. N’incluez pas amount, base ou d’autres champs personnalisés ; ils sont calculés en interne pour éviter les incohérences.

fieldtyperequireddescription
namestringyesNom de la taxe (doit correspondre aux valeurs par défaut du pays)
categorystring, enumrecommendedCode de catégorie de taxe (voir la liste ci-dessous)
percentfloatyesPourcentage de taxe (négatif pour les retenues)
commentstring or nulloptionalMotif / explication, requis pour de nombreux cas exonérés / non soumis

Paramètres fiscaux du compte qui affectent les calculs

Section titled “Paramètres fiscaux du compte qui affectent les calculs”
  • apply_taxes_per_line (boolean) : lorsqu’il vaut true, les taxes sont appliquées par ligne puis additionnées ; lorsqu’il vaut false, les bases sont additionnées et la taxe est appliquée au total.
  • rounding_method : stratégie d’arrondi (half_up par défaut). Voir Calcul de facture.

B2Brouter utilise des catégories de taxe alignées sur la liste de codes PEPPOL/UNCL5305 et, pour certains pays, des codes supplémentaires exigés par l’administration fiscale locale.

Codes de catégorie courants :

  • S – Taux standard.
  • H – Taux élevé.
  • AA – Taux réduit.
  • AAA – Taux super réduit.
  • Z – Opération à taux zéro (0 % mais soumise à TVA).
  • E – Exonéré (0 % et exonéré de TVA).
  • AE – Autoliquidation / « Inversión del sujeto pasivo ».
  • G – Exportation exonérée, TVA non facturée.
  • K – Livraison intracommunautaire de biens/services (exonérée de TVA dans l’EEE).
  • NS – Non soumis.
  • O – Hors champ de la taxe / autres opérations.

Seules ces valeurs de catégorie sont acceptées ; les autres codes seront rejetés.

Singapour utilise des codes de catégorie GST supplémentaires (voir Singapour) et l’Italie utilise les codes « natura » FatturaPA N.. (voir Italie).

  • Utilisez les noms de taxe par défaut du pays dans les tableaux ci-dessous (ils correspondent à la configuration par défaut de B2Brouter lors de la création d’une entreprise). Conservez les noms / codes même si votre taux diffère.
  • Pour la TVA standard, utilisez le nom principal de TVA et category: "S" avec le percent approprié.
  • Pour les taux réduits, utilisez category: "AA" ou category: "AAA" selon les valeurs par défaut indiquées.
  • Pour les opérations à taux zéro ou exonérées :
    • Utilisez percent: 0.
    • Choisissez category en fonction de la situation juridique :
      • Z : taxable mais à 0 %.
      • E : exonéré.
      • AE : autoliquidation.
      • Codes locaux pour des régimes spécifiques (Italie N.., catégories GST de Singapour, etc.).
  • Pour les retenues / rétentions, utilisez des pourcentages négatifs (par ex. -19 pour l’IRPF espagnol) et le nom de taxe correspondant à la retenue (par ex. IRPF, IRNR, IRPEF).
  • Lors de l’intégration avec des déclarations fiscales (Verifactu, TicketBAI, LHDN, etc.), assurez-vous que vos taxes_attributes sont compatibles avec le guide correspondant.

Référence par pays – noms de taxe valides et taux par défaut

Section titled “Référence par pays – noms de taxe valides et taux par défaut”

Les tableaux suivants listent les noms de taxe attendus par pays, avec les taux par défaut et catégories que nous préchargeons. Utilisez-les comme référence pour les noms et catégories ; ajustez percent si la législation ou votre scénario l’exige.

Les pourcentages peuvent évoluer dans le temps ; vérifiez toujours la législation locale en vigueur. Les taux et catégories sont alignés par position dans chaque ligne (premier taux → première catégorie, etc.).

namepercentcategorynotes
IGI4.5, 2.5, 1, 0S, AA, AAA, ZTVA (standard / réduit / 0 %).
IRNR10, 5, 1.5, -20S, AA, AAA, SImpôt sur le revenu des non-résidents (retenue si négatif).
namepercentcategorynotes
MwSt20, 10, 13, 0S, AA, AA, ZTVA.
namepercentcategorynotes
GST10, 0S, EGoods and Services Tax.
namepercentcategorynotes
TVA21, 6, 12, 0S, AA, AA, Z, E, AETVA (standard, réduite, exonérée, autoliquidation).
namepercentcategorynotes
ДДС20, 9, 0S, AA, ZTVA.
namepercentcategorynotes
VAT8.1, 2.6, 3.8, 0S, AA, AA, ETVA ; 0 % pour les exportations en général.
namepercentcategory
ΦΠΑ19, 5, 9, 0S, AA, AA, Z
namepercentcategory
DPH21, 12, 0S, AA, Z
namepercentcategorynotes
USt19, 7, 0S, AA, ZTVA.
namepercentcategory
VAT25, 0S, Z, E
namepercentcategory
km22, 9, 0S, AA, Z

L’Espagne comporte plusieurs régimes de TVA selon le code postal de l’entreprise :

  • Péninsule / Îles Baléares : IVA.
  • Îles Canaries : IGIC.
  • Ceuta / Melilla : IPSI.

comment est utilisé comme motif d’exonération / non-soumis dans Facturae/Verifactu. Si vous envoyez percent: 0 pour une opération exonérée ou non soumise, ajoutez le motif dans comment (exemple : comment: "E2"). Si votre compte définit déjà le motif par défaut, vous pouvez l’omettre.

Péninsule / Îles Baléares (par défaut)

Section titled “Péninsule / Îles Baléares (par défaut)”
namepercentcategorynotes
IVA21, 10, 7.5, 5, 4, 2, 0S, AA, AA, AA, AAA, AAA, Z/E/AETVA.
IRPF-19, -15, -7SRetenue d’impôt sur le revenu des personnes physiques.

Îles Canaries (IGIC) / Ceuta et Melilla (IPSI)

Section titled “Îles Canaries (IGIC) / Ceuta et Melilla (IPSI)”

Exemples (selon le code postal) :

namepercentcategorynotes
IGIC15, 9.5, 7, 3, 1.5, 0H, H, S, AA, AA, ZÉquivalent de la TVA aux Canaries.
IPSI10, 8, 4, 2, 1, 0.5H, H, S, AA, AA, STaxe indirecte locale pour Ceuta/Melilla.
IRPF-19, -15, -7SRetenue.

Notes (Espagne)

  • Utilisez IVA/IGIC/IPSI avec percent: 0 et la bonne category (E, Z ou AE) plus un motif dans comment pour les opérations exonérées / non soumises (par ex. E2).
  • Utilisez un percent négatif pour les retenues IRPF.

Voir aussi : Verifactu et TicketBAI.

namepercentcategory
ALV25.5, 10, 14, 0S, AA, AA, Z/E
namepercentcategory
TVA20, 5.5, 10, 2.1, 0S, AA, AA, AAA, Z/AE
namepercentcategory
VAT20, 5, 0S, AA, Z
namepercentcategory
ΦΠΑ24, 6, 13, 0S, AA, AA, Z
namepercentcategory
PDV25, 5, 13, 0S, AA, AA, Z
namepercentcategory
ÁFA27, 5, 18, 0S, AA, AA, Z
namepercentcategory
VAT23, 9, 13.5, 4.8, 0S, AA, AA, AA, Z
namepercentcategory
VSK24, 11, 0S, AA, Z/E
namepercentcategorynotes
IVA22, 10, 5, 4, 0S, AA, AA, AAA, N.. / E / Z / AETVA.
IRPEFnegative (e.g., -20)SRetenue à la source (si applicable via FatturaPA).

Pour FatturaPA, les opérations non imposables utilisent des codes category comme N1, N2.1, N2.2, N3.1, N3.2, N3.3, N3.4, N3.5, N3.6, N4, N5, N6.1… (voir votre configuration FatturaPA). Ils doivent être envoyés avec 0 % de TVA, name: "IVA" et category: "N..".

Recommandation (Italie)

  • Pour les opérations standard : name: "IVA", category: "S", percent: 22.
  • Pour les opérations non imposables : name: "IVA", percent: 0 et le code N.. approprié dans category.

Voir aussi : Envoyer une facture via SDI.

namepercentcategorynotes
VAT10, 8, 0S, AA, E/G/OTaxe japonaise sur la consommation.
namepercentcategory
PVM21, 5, 9, 0S, AA, AA, Z
namepercentcategory
TVA17, 3, 8, 14, 0S, AA, AA, AA, Z
namepercentcategory
PVM21, 5, 12, 0S, AA, AA, Z
namepercentcategory
TVA20, 5.5, 10, 2.1, 0S, AA, AA, AAA, Z/AE
namepercentcategory
VAT18, 5, 7, 0S, AA, AA, Z
namepercentcategorynotes
SST10, 8, 6, 5, 0T, T, T, T, E/OSales and Service Tax.

Voir aussi : Soumettre la déclaration fiscale au LHDN.

namepercentcategory
BTW21, 9, 0S, AA, Z/AE
namepercentcategory
MVA25, 15, 12, 0S, AA, AA, Z/E
namepercentcategory
GST15, 0S, Z/E
namepercentcategory
PTU23, 5, 8, 0S, AA, AA, Z
namepercentcategory
IVA23, 6, 13, 0S, AA, AA, Z
namepercentcategory
TVA19, 9, 5, 0S, AA, AA, Z
namepercentcategory
Moms25, 6, 12, 0S, AA, AA, Z/E
namepercentcategory
ضريبة القيمة المضافة15, 0S, Z/E/O

Singapour utilise des catégories GST spécifiques imposées par l’IRAS. Le nom de taxe est toujours GST ; la category encode le traitement GST.

namepercentcategorynotes
GST9SRStandard-rated supply.
GST0ZRZero-rated supply.
GST0 / 9SRCA-SCustomer accounting – sales.
GST9SRCA-CCustomer accounting – purchase.
GST9SRRCReverse charge.
GST9SROVR-RSOverseas vendor registration – remote services.
GST9SROVR-LVGOverseas vendor registration – low-value goods.
GST9SRLVGLocal low-value goods.
GST0ES33Exempt: regulation 33.
GST0ESN33Exempt: non-regulation 33.
GST9DSDisregarded supplies.
GST0OSOut-of-scope.
GST0NGNon-GST charge.

Recommandation (Singapour)

  • Utilisez toujours name: "GST".
  • Utilisez la catégorie GST IRAS appropriée dans category et définissez percent en conséquence (généralement 9 ou 0).
namepercentcategory
DDV22, 9.5, 0S, AA, Z
namepercentcategory
DPH20, 10, 0S, AA, Z
namepercentcategorynotes
VAT0OUtilisé pour indiquer « pas de TVA » / hors champ.

Recommandation (États-Unis)

  • Pour les entreprises sans numéro de TVA, utilisez une seule taxe avec name: "VAT", percent: 0, category: "O" et éventuellement comment: "Company without VAT ID".
  • Ne créez pas de noms de taxes locales de type sales tax dans taxes_attributes ; la gestion de la TVA est modélisée comme 0 % hors champ.

Exemple – ligne de facture espagnole avec TVA et IRPF

Section titled “Exemple – ligne de facture espagnole avec TVA et IRPF”
"taxes_attributes": [
{
"name": "IVA",
"category": "S",
"percent": 21.0
},
{
"name": "IRPF",
"category": "S",
"percent": -15.0
}
]

Exemple – vente exonérée allemande dans l’UE (autoliquidation)

Section titled “Exemple – vente exonérée allemande dans l’UE (autoliquidation)”
"taxes_attributes": [
{
"name": "USt",
"category": "AE",
"percent": 0.0,
"comment": "Intra-community supply – reverse charge"
}
]

Exemple – GST singapourienne au taux standard

Section titled “Exemple – GST singapourienne au taux standard”
"taxes_attributes": [
{
"name": "GST",
"category": "SR",
"percent": 9.0
}
]