ONYX - Utilisation - Convertisseur CII UBL/en

Différence entre versions

De MappingDoc
(Page créée avec « "C:/MAPPING/M-Processing Server/Applications/maprunrpt" -rptname:EINVOICING -param:DB.data_file="C:\work\out_pivot.xml" -param:DB.param_file="C:\work\edi_param .xml" "-par... »)
(Page créée avec « Below you will find the list of return codes currently managed with their description: »)
 
(42 révisions intermédiaires par le même utilisateur non affichées)
Ligne 31 : Ligne 31 :
 
*UBL output in invoice mode
 
*UBL output in invoice mode
  
Il y a 2 possibilités pour avoir une sortie credit note.
+
 
 +
There are 2 possibilities for having a credit note output.
  
 
*"C:/MAPPING/M-Processing Server/Applications/maprunrpt" -rptname:EINVOICING -param:DB.data_file="C:\work\out_pivot.xml" -param:DB.param_file="C:\work\edi_param.xml" "-param:DB.output-type='''ubl'''" "-param:DB.doc-type='''creditnote'''" -outfile:"C:\work\out_ubl.xml"
 
*"C:/MAPPING/M-Processing Server/Applications/maprunrpt" -rptname:EINVOICING -param:DB.data_file="C:\work\out_pivot.xml" -param:DB.param_file="C:\work\edi_param.xml" "-param:DB.output-type='''ubl'''" "-param:DB.doc-type='''creditnote'''" -outfile:"C:\work\out_ubl.xml"
  
*Avoir le champ BT-3="381" (Avoir commercial) et ne pas avoir -param:DB.doc-type="invoice"
+
 
 +
*Have the BT-3="381" field (Commercial credit) and not have -param:DB.doc-type="invoice"
 
<br>
 
<br>
<u>Valeurs par défauts</u> :
+
<u>Default values</u>:
*DB.output-type="factur-x"
+
*DB.output-type="fact-x"
 
*DB.doc-type="invoice"
 
*DB.doc-type="invoice"
  
=Fichier de paramétrage=
 
Dans l'idéal, le flux de donnée en entrée doit contenir <u>toutes</u> les informations nécessaires à la génération du fichier e-Invoicing (UBL ou CII).
 
Cependant, il est courant de traiter des flux non exhaustifs.
 
Par conséquent, il est possible '''(dans une certaine mesure)''' d'initaliser un champ avec une valeur (calculée ou en dur)
 
  
Pour ce faire, nous utiliserons un fichier de paramétrage.
+
=Settings file=
 +
Ideally, the input data stream should contain <u>all</u> the information necessary to generate the e-Invoicing file (UBL or CII).
 +
However, it is common to deal with non-exhaustive flows.
 +
Therefore, it is possible '''(to some extent)''' to initialize a field with a value (computed or hardcoded)
 +
 
 +
 
 +
To do this, we will use a settings file.
  
==Initialisation d'un champ (hors liste) avec une valeur en dur==
+
==Initialization of a field (non-list) with a hard value==
Si par exemple dans le flux de données (XML Pivot), le champ dy typage de document (BT-3) est absent, on peut l'initialiser avec une valeur :
+
If for example in the data flow (XML Pivot), the document typing field (BT-3) is absent, it can be initialized with a value:
  
 
  <param>
 
  <param>
Ligne 55 : Ligne 59 :
 
  </param>
 
  </param>
  
Sa valeur sera alors 380 dans le flux CII ou UBL en sortie. </br></br>
 
  
<u>Remarque</u> : Si BT-3 était présent mais avec une nouvelle valeur, alors sa nouvelle valeur sera 380.</br>
+
Its value will then be 380 in the output CII or UBL stream. </br></br>
<u>Remarque</u> : Cette fonctionnalité est disponible uniquement pour les champs présents au niveau <doc>. Il existe cependant l'élément <translations> qui permet de faire la même chose avec les champs de listes. (voir section plus bas)
+
 
 +
<u>Note</u>: If BT-3 was present but with a new value, then its new value will be 380.</br>
 +
<u>Note</u>: This functionality is only available for fields present at the <doc> level. However, there is the <translations> element which allows you to do the same thing with list fields. (see section below)
 +
 
 +
 
 +
==Initializing a field with the value of another field==
 +
It is also possible to initialize or overload the value of a field with the value of another field.
  
==Initialisation d'un champ avec la valeur d'un autre champ==
 
Il est également possible d'initialiser ou de surcharger la valeur d'un champ avec la valeur d'un autre champ.
 
  
Par exemple, si la date d'échéance (BT-9) est absent du flux en entrée alors on peut l'initialiser avec la date d'émission de la facture (BT-2)
+
For example, if the due date (BT-9) is missing from the input flow then we can initialize it with the invoice issue date (BT-2)
 
   
 
   
 
  <param>
 
  <param>
Ligne 69 : Ligne 76 :
 
  </param>
 
  </param>
  
Dans le fichier UBL ou CII, la valeur de BT-9 sera la meme que le champ BT-2.
 
  
 +
In the UBL or CII file, the value of BT-9 will be the same as the BT-2 field.
  
==Surcharger le chemin d'une liste==
 
Il est également possible de surcharger la valeur par défaut du chemin d'une liste. (liste de produits, liste de TVA ou autres)
 
  
Par exemple, si la liste des produits n'est pas /data/doc/list[@id='BG-25'], alors il est possible de lui donner un autre nom et chemin :
+
 
 +
==Override the path of a list==
 +
It is also possible to override the default value of a list's path. (product list, VAT list or others)
 +
 
 +
 
 +
For example, if the list of products is not /data/doc/list[@id='BG-25'], then it is possible to give it another name and path:
  
 
  <param>
 
  <param>
Ligne 82 : Ligne 92 :
 
  </param>
 
  </param>
  
Dans cet exemple, les produits (BG-25) sont localisés dans la liste "produits" et la liste de TVAs (BG-23) dans la liste "tvas" et tout cela au niveau <doc>
+
In this example, the products (BG-25) are located in the "products" list and the VAT list (BG-23) in the "vast" list and all this at the <doc> level.
  
==Champs recalculables==
+
==Recalculable fields==
En V1.00 du connecteur EINVOICING, nous avons un champ qui est recalculable au besoin via l'attribut calculate="true" .
+
In V1.00 of the EINVOICING connector, we have a field that can be recalculated if necessary via the calculate="true" attribute.
Ce champ est le BT-115 (Montant à payer)
+
This field is BT-115 (Amount to pay)
Ce champ, à la demande, peut prendre une valeur automatiquement recalculée avec le BT-112, BT-113 et BT-114 selon la règle de gestion appropriée, soit : BT-115 = BT-112 - BT-113 + BT-114 .<br>
+
This field, on request, can take a value automatically recalculated with the BT-112, BT-113 and BT-114 according to the appropriate management rule, i.e.: BT-115 = BT-112 - BT-113 + BT-114 .<br>
Pour demander son recalcul, il faut indiquer cela dans le fichier de paramétrage : <br>
+
To request its recalculation, you must indicate this in the settings file: <br>
 
  <field id="BT-115" calculate="true"/>
 
  <field id="BT-115" calculate="true"/>
  
<u>Remarque</u> : La valeur par défaut est à "false", ce qui veut dire qu'on prend la valeur du fichier en entrée.
+
<u>Note</u>: The default value is "false", which means that we take the value of the input file.
 +
 
 +
==Tax management==
 +
Electronic invoicing requires the use of codes according to the different possible VAT rates and types. In the input flow, we may possibly have not the VAT code as expected in the CII or UBL flow but rather the VAT rate in percentage or others.
 +
It is then necessary to make a translation between the value present in the input file and the VAT Rate as well as the VAT Code expected by the CII and UBL standard.
  
==Gestion des taxes==
 
La facturation électronique impose l'utilisation de code suivant les différents taux et type de de TVA possibles. Dans le flux en entrée, on peut éventuellement avoir non pas le code TVA comme attendu dans le flux CII ou UBL mais plutôt le taux de TVA en pourcentage ou autres.
 
Il faut alors faire une traduction entre la valeur présente dans le fichier en entrée et le Taux TVA ainsi que le Code TVA attendu par la norme CII et UBL .
 
  
Voici la liste des différents code de TVA attendus par la norme CII et UBL :  
+
Here is the list of different VAT codes expected by the CII and UBL standard:  
  
  "Les entrées suivantes de l'UNTDID 5305 sont utilisées:
+
  "The following entries in UNTDID 5305 are used:
  S = Taux de TVA standard
+
  S = Standard VAT rate
  Z = Taux de TVA égal à 0
+
  Z = VAT rate equal to 0
  E = Exempté de TVA
+
  E = Exempt from VAT
  AE = Autoliquidation de TVA
+
  AE = VAT reverse charge
  K = Autoliquidation pour cause de livraison intracommunautaire
+
  K = Reverse charge due to intra-community delivery
  G = Exempté de TVA pour Export hors UE
+
  G = Exempt from VAT for Export outside the EU
  O = Hors du périmètre d'application de la TVA
+
  O = Outside the scope of VAT application
  L = Iles Canaries
+
  L = Canary Islands
  M = Ceuta et Mellila
+
  M = Ceuta and Mellila
  
Pour  traiter cela, nous utiliserons le bloc élément <taxes> du fichier de paramétrage.
+
To deal with this, we will use the <taxes> element block of the configuration file.
  
===Exemple===
+
===Example===
  
 
  <nowiki><taxes>
 
  <nowiki><taxes>
Ligne 129 : Ligne 140 :
 
  </taxes></nowiki>
 
  </taxes></nowiki>
  
Les valeurs dans le "from" sont ceux récupérées dans le flux de donnée XML Pivot. Leurs correspondances "to" seront les valeurs retournées dans le fichier de sortie UBL ou CII.
 
  
==Table de correspondances de valeurs de field de listes==
+
The values ​​in the "from" are those retrieved from the Pivot XML data flow. Their "to" correspondences will be the values ​​returned in the UBL or CII output file.
A l'image de la gestion de taxes nécessitant la gestion de correspondances de valeurs entre une valeur et un code CII ou UBL, il peut parfois être utile de pouvoir donner ou surcharger une valeur d'un field d'une liste (soit car celle-ci est absente ou soit car elle nécessite un recalcul)
 
Pour ce faire, nous avons la possibilité d'utiliser l'élément bloc <translations> du fichier de paramétrage.
 
  
===Exemple===
+
==Table of correspondences of list field values==
 +
Like the management of taxes requiring the management of value correspondences between a value and a CII or UBL code, it can sometimes be useful to be able to give or overload a value from a field in a list (i.e. because that -this is absent or either because it requires a recalculation)
 +
To do this, we can use the <translations> block element of the configuration file.
 +
 
 +
===Example===
  
 
  <translations>
 
  <translations>
Ligne 155 : Ligne 167 :
 
  </translations>
 
  </translations>
  
Dans cette exemple nous avons 3 recalculs personalisés :
+
In this example we have 3 custom recalculations:
 +
 
 +
 
 +
*<u>Recalculation of BT-129 (invoiced quantity)</u>:
 +
In the case where the "BT-129 is not present in the input stream, the output value will be "1.000"
 +
 
  
*<u>Recalcul du BT-129 (quantité facturée)</u> :
+
*<u>Recalculation of BT-146 (excl. tax price of the item (unit))</u>:
Dans le cas où le "BT-129 ne serait pas présent dans le flux en entrée, on aurait en sortie la valeur "1.000"
+
In this case, BT-146 (net price of the item) will be equal to BT-148 (gross price of the item) - BT-136 (amount of a discount excluding VAT) regardless of the present value in the input stream </br>
 +
(Using calc() attribute value)
  
*<u>Recalcul du BT-146(Prix HT de l’article (unitaire))</u> :
+
*<u>Recalculation of BT-131 (net invoice line amount)</u>:
Dans ce cas là, BT-146 (prix net de l'article) sera égale à BT-148 (prix brut de l'article) - BT-136 (montant d'une remise hors TVA) et cela peu importe la valeur présente dans le flux en entrée  </br>
+
In this case, BT-131 (net invoice line amount) will be equal to BT-146 (net price of the item) * BT-129 (invoiced quantity) regardless of the value present in the input flow .</br>
(Utilisation de la valeur d'attribut calc())
+
(Using the calc() attribute value)</br></br>
 +
<u>Note</u>: The order of elements in <translations> is, therefore, very important. The BT-129 and BT-146 values ​​will be the values ​​from the <translations> block because the BT-129 and BT-146 recalculation was done before the BT-131 recalculation.</br>
  
*<u>Recalcul du BT-131(montant net de ligne de facture)</u> :
 
Dans ce cas là, BT-131 (montant net de ligne de facture) sera égale à BT-146 (rix net de l'article) * BT-129 (quantité facturée) et cela peu importe la valeur présente dans le flux en entrée.</br>
 
(Utilisation de la valeur d'attribut calc())</br></br>
 
<u>Remarque</u> : L'ordre des éléments dans <translations> est, par conséquent, très important. Les valeurs BT-129 et BT-146 seront les valeurs issues du bloc <translations> car le recalcul BT-129 et BT-146 ont été fait avant le recalcul du BT-131.</br>
 
  
=Valeurs par défaut=
+
=Default values=
==Champs==
+
==Fields==
Dans le cas où l'information serait absente dans le flux de données en entrée et dans le fichier de paramétrage, alors les valeurs suivantes seraient utilisées par défaut :
+
In the event that the information is absent in the input data flow and in the configuration file, then the following values ​​would be used by default:
  
 
{| class="wikitable"
 
{| class="wikitable"
Ligne 188 : Ligne 203 :
 
|}
 
|}
  
==Listes==
+
 
 +
==Lists==
  
 
{| class="wikitable"
 
{| class="wikitable"
Ligne 243 : Ligne 259 :
 
|}
 
|}
  
</u>remarque</u> : Tous ces champs et toutes ces listes peuvent être surchargés au niveau du fichier de paramétrage
 
  
=Exemples=
+
</u>note</u>: All these fields and all these lists can be overloaded at the configuration file level
==Flux complet==
+
 
Le flux suivant pourra être traité par le convertisseur avec un fichier de paramétrage vide.
+
 
 +
=Examples=
 +
==Full feed==
 +
The following flow can be processed by the converter with an empty configuration file.
 +
 
  
===Fichier de donnée XML Pivot===
+
===Pivot XML data file===
  
 
  <nowiki><?xml version="1.0" encoding="UTF-8"?>
 
  <nowiki><?xml version="1.0" encoding="UTF-8"?>
Ligne 337 : Ligne 356 :
 
   </data></nowiki>
 
   </data></nowiki>
  
===Fichier de paramétrage===
+
 
 +
===Settings file===
 
   
 
   
 
  <param/>
 
  <param/>
  
===Flux CII généré===
+
 
 +
===CII flow generated===
  
 
  <!-- XML CII for e-Invoicing -->  
 
  <!-- XML CII for e-Invoicing -->  
Ligne 468 : Ligne 489 :
 
  </rsm:CrossIndustryInvoice>
 
  </rsm:CrossIndustryInvoice>
  
===Flux UBL généré===
+
 
 +
===UBL flow generated===
  
 
  <!--XMLUBL2.3fore-Invoicing-->
 
  <!--XMLUBL2.3fore-Invoicing-->
Ligne 578 : Ligne 600 :
  
  
==Flux incomplet==
 
Le flux suivant est incomplet et nécessite d'être enrichi avec le fichier de paramétrage
 
  
===Fichier de donnée XML Pivot===
+
==Incomplete flow==
 +
The following flow is incomplete and needs to be enriched with the configuration file
 +
 
 +
 
 +
===Pivot XML data file===
  
 
  <nowiki><data>
 
  <nowiki><data>
Ligne 659 : Ligne 683 :
 
  </data></nowiki>
 
  </data></nowiki>
  
===XML de paramétrage===
+
 
 +
===Setting XML===
 
  <nowiki><param>
 
  <nowiki><param>
 
   <field id="BT-113" xpath="/data/doc[1]/field[@id='BT-113_None_1_BT-113']"/>
 
   <field id="BT-113" xpath="/data/doc[1]/field[@id='BT-113_None_1_BT-113']"/>
Ligne 700 : Ligne 725 :
 
  </param></nowiki>
 
  </param></nowiki>
  
===Flux CII généré===
+
 
 +
===CII flow generated===
  
  
Ligne 865 : Ligne 891 :
 
  </rsm:CrossIndustryInvoice>
 
  </rsm:CrossIndustryInvoice>
  
===Flux UBL généré===
+
 
 +
===UBL flow generated===
  
 
  <!-- XML UBL2.3 for e-Invoicing -->  
 
  <!-- XML UBL2.3 for e-Invoicing -->  
Ligne 1 020 : Ligne 1 047 :
 
  </Invoice>
 
  </Invoice>
  
=Codes d'erreurs du programme=
 
  
Le programme EINVOICING a une gestion des erreurs vérifiant le flus XML Pivot entrant. Les vérifications ne sont pas exhaustives par rapport aux spécifications CII et UBL mais cela permet d'éliminer une partie des erreurs.
+
=Program error codes=
 +
 
 +
 
 +
The EINVOICING program has error handling checking the incoming Pivot XML stream. The checks are not exhaustive compared to the CII and UBL specifications but this helps eliminate some of the errors.
 +
 
  
Vous trouverez ci-dessous la liste des codes retours aujourd'hui gérés avec leur description :
+
Below you will find the list of return codes currently managed with their description:
  
 
{| class="wikitable"
 
{| class="wikitable"

Version actuelle datée du 7 janvier 2025 à 11:15

Autres langues :
English • ‎français

Introduction

The purpose of the e-Invoicing converter is to convert an 'XML Pivot' file (data format facilitating the integration of Efalia Compose) into an XML CII flow (for the creation of a factur-X pdf ) or UBL.
The converter takes as input a Pivot XML stream either finished, that is to say with all the information necessary for the generation of the CII or UBL (recommended) or either gives the developer the possibility of forcing the value of a field (either by a simple hard value or either via a calculation)


Prerequisites

  • The Connect key must be activated on the Efalia Compose server
  • The dates must be in the form YYYY-MM-DD (It is up to the program generating the Pivot XML to format them like this)
  • Numerics must not have a thousand separator and must have a point as a decimal separator (example: 11200.10)
  • Be informed of electronic invoicing standards (CII and UBL)
  • Have a fairly technical profile and know XML flows

Operating principle

The Pivot XML feed with or without all the necessary information is given at the connector input. The connector takes as parameters a configuration file (which can be empty if necessary), the output type (ubl or factur-x) and the name of the output CII or UBL file.



  • CII output (for factur-X)

"C:/MAPPING/M-Processing Server/Applications/maprunrpt" -rptname:EINVOICING -param:DB.data_file="C:\work\out_pivot.xml" -param:DB.param_file="C:\work\edi_param .xml" "-param:DB.output-type=factur-x" -outfile:"C:\work\out_cii.xml"

  • UBL output in invoice mode

"C:/MAPPING/M-Processing Server/Applications/maprunrpt" -rptname:EINVOICING -param:DB.data_file="C:\work\out_pivot.xml" -param:DB.param_file="C:\work\edi_param .xml" "-param:DB.output-type=factur-x" -outfile:"C:\work\out_cii.xml"

  • UBL output in invoice mode


There are 2 possibilities for having a credit note output.

  • "C:/MAPPING/M-Processing Server/Applications/maprunrpt" -rptname:EINVOICING -param:DB.data_file="C:\work\out_pivot.xml" -param:DB.param_file="C:\work\edi_param.xml" "-param:DB.output-type=ubl" "-param:DB.doc-type=creditnote" -outfile:"C:\work\out_ubl.xml"


  • Have the BT-3="381" field (Commercial credit) and not have -param:DB.doc-type="invoice"


Default values:

  • DB.output-type="fact-x"
  • DB.doc-type="invoice"


Settings file

Ideally, the input data stream should contain all the information necessary to generate the e-Invoicing file (UBL or CII). However, it is common to deal with non-exhaustive flows. Therefore, it is possible (to some extent) to initialize a field with a value (computed or hardcoded)


To do this, we will use a settings file.

Initialization of a field (non-list) with a hard value

If for example in the data flow (XML Pivot), the document typing field (BT-3) is absent, it can be initialized with a value:

<param>
 <field id="BT-3">380</field>
</param>


Its value will then be 380 in the output CII or UBL stream.

Note: If BT-3 was present but with a new value, then its new value will be 380.
Note: This functionality is only available for fields present at the <doc> level. However, there is the <translations> element which allows you to do the same thing with list fields. (see section below)


Initializing a field with the value of another field

It is also possible to initialize or overload the value of a field with the value of another field.


For example, if the due date (BT-9) is missing from the input flow then we can initialize it with the invoice issue date (BT-2)

<param>
 <field id="BT-9" xpath="/data/doc/field[@id='BT-2']"
</param>


In the UBL or CII file, the value of BT-9 will be the same as the BT-2 field.


Override the path of a list

It is also possible to override the default value of a list's path. (product list, VAT list or others)


For example, if the list of products is not /data/doc/list[@id='BG-25'], then it is possible to give it another name and path:

<param>
 <list id="BG-25" xpath="/*/doc/list[@id='produits']"/>
 <list id="BG-23" xpath="/*/doc/list[@id='tvas']"/>
</param>

In this example, the products (BG-25) are located in the "products" list and the VAT list (BG-23) in the "vast" list and all this at the <doc> level.

Recalculable fields

In V1.00 of the EINVOICING connector, we have a field that can be recalculated if necessary via the calculate="true" attribute. This field is BT-115 (Amount to pay) This field, on request, can take a value automatically recalculated with the BT-112, BT-113 and BT-114 according to the appropriate management rule, i.e.: BT-115 = BT-112 - BT-113 + BT-114 .
To request its recalculation, you must indicate this in the settings file:

<field id="BT-115" calculate="true"/>

Note: The default value is "false", which means that we take the value of the input file.

Tax management

Electronic invoicing requires the use of codes according to the different possible VAT rates and types. In the input flow, we may possibly have not the VAT code as expected in the CII or UBL flow but rather the VAT rate in percentage or others. It is then necessary to make a translation between the value present in the input file and the VAT Rate as well as the VAT Code expected by the CII and UBL standard.


Here is the list of different VAT codes expected by the CII and UBL standard:

"The following entries in UNTDID 5305 are used:
S = Standard VAT rate
Z = VAT rate equal to 0
E = Exempt from VAT
AE = VAT reverse charge
K = Reverse charge due to intra-community delivery
G = Exempt from VAT for Export outside the EU
O = Outside the scope of VAT application
L = Canary Islands
M = Ceuta and Mellila

To deal with this, we will use the <taxes> element block of the configuration file.

Example

<taxes>
  <codes>
   <value from="0" to="Z"/>
   <value from="1" to="S"/>
   <value from="2" to="S"/>
   <value from="3" to="S"/>
  </codes>
  <rates>
   <value from="0" to="0.00"/>
   <value from="1" to="20.00"/>
   <value from="2" to="8.50"/>
   <value from="3" to="4.00"/>
  </rates>		
 </taxes>


The values ​​in the "from" are those retrieved from the Pivot XML data flow. Their "to" correspondences will be the values ​​returned in the UBL or CII output file.

Table of correspondences of list field values

Like the management of taxes requiring the management of value correspondences between a value and a CII or UBL code, it can sometimes be useful to be able to give or overload a value from a field in a list (i.e. because that -this is absent or either because it requires a recalculation) To do this, we can use the <translations> block element of the configuration file.

Example

<translations>
 <field id="BT-129">
  <value from="" to="1.000"/>	
 </field>
 <field id="BT-146">
  <value from="*" to="calc()">
   <field op="" id="BT-148"/>
   <field op="-" id="BT-136"/>
  </value>
 </field>
 <field id="BT-131">
  <value from="*" to="calc()">
   <field op="" id="BT-146"/>
   <field op="*" id="BT-129"/>
  </value>
 </field>
</translations>	

In this example we have 3 custom recalculations:


  • Recalculation of BT-129 (invoiced quantity):

In the case where the "BT-129 is not present in the input stream, the output value will be "1.000"


  • Recalculation of BT-146 (excl. tax price of the item (unit)):

In this case, BT-146 (net price of the item) will be equal to BT-148 (gross price of the item) - BT-136 (amount of a discount excluding VAT) regardless of the present value in the input stream
(Using calc() attribute value)

  • Recalculation of BT-131 (net invoice line amount):

In this case, BT-131 (net invoice line amount) will be equal to BT-146 (net price of the item) * BT-129 (invoiced quantity) regardless of the value present in the input flow .
(Using the calc() attribute value)

Note: The order of elements in <translations> is, therefore, very important. The BT-129 and BT-146 values ​​will be the values ​​from the <translations> block because the BT-129 and BT-146 recalculation was done before the BT-131 recalculation.


Default values

Fields

In the event that the information is absent in the input data flow and in the configuration file, then the following values ​​would be used by default:

Champs valeurs par défaut
BT-3 380
BT-5 EUR
BT-9 BT-2
BT-30-1 0002
BT-31-0 (VA pour factur-X et VAT pour UBL)


Lists

Listes Chemins par défaut
BG-1 /data/doc/list[@id='BG-1']
BG-3 /data/doc/list[@id='BG-3']
BG-17 /data/doc/list[@id='BG-17']
BG-20 /data/doc/list[@id='BG-20']
BG-21 /data/doc/list[@id='BG-21']
BG-23 /data/doc/list[@id='BG-23']
BG-24 /data/doc/list[@id='BG-24']
BG-25 /data/doc/list[@id='BG-25']
BG-27 /data/doc/list[@id='BG-27']
BG-28 /data/doc/list[@id='BG-28']
BG-32 /data/doc/list[@id='BG-32']
BT-29-a /data/doc/list[@id='BT-29-a']
BT-29-b /data/doc/list[@id='BT-29-b']
BT-29-c /data/doc/list[@id='BT-29-c']
BT-46-a /data/doc/list[@id='BT-46-a']
BT-46-b /data/doc/list[@id='BT-46-b']
BT-46-c /data/doc/list[@id='BT-46-c']
BT-29-a /data/doc/list[@id='BT-29-a']
BT-29-a /data/doc/list[@id='BT-29-a']
BT-60 /data/doc/list[@id='BT-60']
BT-71 /data/doc/list[@id='BT-71']
BT-127-00 /data/doc/list[@id='BT-127-00']
BT-128 /data/doc/list[@id='BT-128']
BT-158 /data/doc/list[@id='BT-158']


note: All these fields and all these lists can be overloaded at the configuration file level


Examples

Full feed

The following flow can be processed by the converter with an empty configuration file.


Pivot XML data file

<?xml version="1.0" encoding="UTF-8"?>
  <data>
   <doc type="FACTURE">		
   <!--id type of the invoice : Default :380 for commercial invoices  (Code de type de facture)-->
    <field id="BT-3">380</field>
    <!--Invoice date (Date d'émission facture initiale / facture rectificative) - YYYY-MM-DD-->
    <field id="BT-2">2022-11-19</field>
    <!--Invoice number (Numéro de facture)-->
    <field id="BT-1">0024657</field>
    <!--Currency code of the invoice : Default :EUR  (Code de devise de la facture)-->
    <field id="BT-5">EUR</field>
    <!--Total amount before VAT of the invoice (Montant total de la facture HT)-->
    <field id="BT-109">35600.00</field>
    <!--Total amount of VAT of the invoice (Montant total de TVA de la facture)-->
    <field id="BT-110">7120.00</field>
    <!--Total amount after VAT of the invoice  (Montant total de la Facture, avec la TVA.)-->
    <field id="BT-112">42720.00</field>
    <!--Already paid amount  (Montant déjà payé)-->
    <field id="BT-113">0.00</field>
    <!--Total amount to pay  (Montant à payer TTC)-->
    <field id="BT-115">42720.00</field>
    <!--Sum of all the amounts before VAT of the invoice on the line level  (Somme des montants nets des lignes de facture HT)-->
    <field id="BT-106">35600.00</field>
    <!--Due date  (Date d'échéance) - YYYY-MM-DD-->
    <field id="BT-9">2022-12-19</field>
    <!--Seller name  (Raison sociale du vendeur)-->
    <field id="BT-27">Efalia</field>
    <!--Seller Country code  (Code de pays du vendeur)-->
    <field id="BT-40">FR</field>
    <!--Seller VAT identifier  (Identifiant à la TVA du vendeur)-->
    <field id="BT-31">FR9876543210</field>
    <!--Buyer name  (Raison sociale de l'acheteur)-->
    <field id="BT-44">M. Lenoir</field>
    <!--Buyer Country code  (Code de pays de l'acheteur)-->
    <field id="BT-55">FR</field>
    <!--Buyer VAT identifier  (Identifiant à la TVA de l'acheteur)-->
    <field id="BT-48">FR1234567890</field>
    <!--List of products-->
     <list id="BG-25">
      <item>			
       <!--Item line number identifier (Identifiant de la ligne de facture)-->
        <field id="BT-126">1</field>
        <!--Billed quantity  (quantité facturée)-->
        <field id="BT-129" unitCode="C62">1</field>
        <!--Invoiced quantity unit of measure code  (Unité de mesure de la quantité facturée)--> 
        <field id="BT-130">PAL</field>
        <!--Item unit price before VAT  (Prix HT de l’article (unitaire))-->
        <field id="BT-146">20050.00</field>
        <!--VAT code type of the billed item  (Code de type de TVA de l’artice facturé)-->
        <field id="BT-151">S</field>
        <!--Item description  (Nom de l’article)-->
        <field id="BT-153">Infoprint 20 IBM</field>
        <!--Total amount before VAT of the billed item  (Montant Total HT de ligne article)-->
        <field id="BT-131">20050.00</field>
        <!--VAT type of the billed item-->
        <field id="itemVatTypeCode">VAT</field>
        <!--VAT applicable rate of the billed item (% de l'article facturé)-->
        <field id="BT-152">20.00</field>
      </item>
      <item>
        <field id="BT-126">2</field>
        <field id="BT-129" unitCode="C62">1</field>
        <field id="BT-130">PAL</field>
        <field id="BT-146">15550.00</field>
        <field id="BT-151">S</field>
        <field id="BT-153">Infoprint 60 IBM</field>
        <field id="BT-131">15550.00</field>
        <field id="itemVatTypeCode">VAT</field>
        <field id="BT-152">20.00</field>
      </item>			
     </list>
     <list id="BG-23">
      <item>				
        <!--VAT basis amount for this type of VAT  (Base d'imposition du type de TVA)-->
        <field id="BT-116">35600.00</field>
        <!--VAT amount for this type of VAT  (Montant de la TVA pour chaque type de TVA)-->
        <field id="BT-117">7120.00</field>
        <!--VAT type code  (Code de type de TVA)-->
        <field id="BT-118">S</field>
        <!--VAT rate for this type of VAT  (Taux de type de TVA)-->
        <field id="BT-119">20.00</field>
      </item>     
     </list>
   </doc>
  </data>


Settings file

<param/>


CII flow generated

<rsm:CrossIndustryInvoice xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" 
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <rsm:ExchangedDocumentContext>
  <ram:GuidelineSpecifiedDocumentContextParameter> 
   <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic </ram:ID>
  </ram:GuidelineSpecifiedDocumentContextParameter>
 </rsm:ExchangedDocumentContext> 
 <rsm:ExchangedDocument> 
  <ram:ID>0024657 </ram:ID> 
  <ram:TypeCode>380 </ram:TypeCode> 
  <ram:IssueDateTime>
   <udt:DateTimeString format="102">20221119 </udt:DateTimeString>
  </ram:IssueDateTime> 
 </rsm:ExchangedDocument>
 <rsm:SupplyChainTradeTransaction>
  <ram:IncludedSupplyChainTradeLineItem> 
   <ram:AssociatedDocumentLineDocument>
    <ram:LineID>1 </ram:LineID> 
   </ram:AssociatedDocumentLineDocument> 
   <ram:SpecifiedTradeProduct> 
    <ram:Name>Infoprint 20 IBM </ram:Name>
   </ram:SpecifiedTradeProduct>
   <ram:SpecifiedLineTradeAgreement> 
    <ram:NetPriceProductTradePrice>
     <ram:ChargeAmount>20050.0000 </ram:ChargeAmount> 
     <ram:BasisQuantity>0.0000 </ram:BasisQuantity> 
    </ram:NetPriceProductTradePrice> 
   </ram:SpecifiedLineTradeAgreement>
   <ram:SpecifiedLineTradeDelivery>
    <ram:BilledQuantity unitCode="PAL">1.0000 </ram:BilledQuantity> 
   </ram:SpecifiedLineTradeDelivery> 
   <ram:SpecifiedLineTradeSettlement>
    <ram:ApplicableTradeTax> 
     <ram:TypeCode>VAT </ram:TypeCode>
     <ram:CategoryCode>S </ram:CategoryCode>
     <ram:RateApplicablePercent>20.00 </ram:RateApplicablePercent>
    </ram:ApplicableTradeTax>
    <ram:SpecifiedTradeSettlementLineMonetarySummation>
     <ram:LineTotalAmount>20050.00 </ram:LineTotalAmount> 
    </ram:SpecifiedTradeSettlementLineMonetarySummation> 
   </ram:SpecifiedLineTradeSettlement> 
  </ram:IncludedSupplyChainTradeLineItem>
  <ram:IncludedSupplyChainTradeLineItem> 
   <ram:AssociatedDocumentLineDocument>
    <ram:LineID>2 </ram:LineID> 
   </ram:AssociatedDocumentLineDocument> 
   <ram:SpecifiedTradeProduct> 
    <ram:Name>Infoprint 60 IBM </ram:Name>
   </ram:SpecifiedTradeProduct>
   <ram:SpecifiedLineTradeAgreement> 
    <ram:NetPriceProductTradePrice>
     <ram:ChargeAmount>15550.0000 </ram:ChargeAmount> 
     <ram:BasisQuantity>0.0000 </ram:BasisQuantity> 
    </ram:NetPriceProductTradePrice> 
   </ram:SpecifiedLineTradeAgreement>
   <ram:SpecifiedLineTradeDelivery>
    <ram:BilledQuantity unitCode="PAL">1.0000 </ram:BilledQuantity> 
   </ram:SpecifiedLineTradeDelivery> 
   <ram:SpecifiedLineTradeSettlement>
    <ram:ApplicableTradeTax> 
     <ram:TypeCode>VAT </ram:TypeCode>
     <ram:CategoryCode>S </ram:CategoryCode>
     <ram:RateApplicablePercent>20.00 </ram:RateApplicablePercent>
    </ram:ApplicableTradeTax>
    <ram:SpecifiedTradeSettlementLineMonetarySummation>
     <ram:LineTotalAmount>15550.00 </ram:LineTotalAmount> 
    </ram:SpecifiedTradeSettlementLineMonetarySummation> 
   </ram:SpecifiedLineTradeSettlement> 
  </ram:IncludedSupplyChainTradeLineItem>
  <ram:ApplicableHeaderTradeAgreement> 
   <ram:SellerTradeParty>
    <ram:Name>Efalia </ram:Name>
    <ram:SpecifiedLegalOrganization>
    </ram:SpecifiedLegalOrganization> 
    <ram:PostalTradeAddress>
     <ram:CountryID>FR </ram:CountryID>
    </ram:PostalTradeAddress> 
    <ram:SpecifiedTaxRegistration>
     <ram:ID schemeID="VA">FR9876543210 </ram:ID>
    </ram:SpecifiedTaxRegistration> 
   </ram:SellerTradeParty> 
   <ram:BuyerTradeParty> 
    <ram:Name>M. Lenoir </ram:Name> 
    <ram:PostalTradeAddress>
     <ram:CountryID>FR </ram:CountryID>
    </ram:PostalTradeAddress> 
    <ram:SpecifiedTaxRegistration>
     <ram:ID schemeID="VA">FR1234567890 </ram:ID>
    </ram:SpecifiedTaxRegistration> 
   </ram:BuyerTradeParty>
  </ram:ApplicableHeaderTradeAgreement>
  <ram:ApplicableHeaderTradeDelivery> 
  </ram:ApplicableHeaderTradeDelivery> 
  <ram:ApplicableHeaderTradeSettlement>
   <ram:InvoiceCurrencyCode>EUR </ram:InvoiceCurrencyCode>
   <ram:ApplicableTradeTax>
    <ram:CalculatedAmount>7120.00 </ram:CalculatedAmount> 
    <ram:TypeCode>VAT </ram:TypeCode> 
    <ram:BasisAmount>35600.00 </ram:BasisAmount>
    <ram:CategoryCode>S </ram:CategoryCode> 
    <ram:RateApplicablePercent>20.00 </ram:RateApplicablePercent> 
   </ram:ApplicableTradeTax> 
   <ram:SpecifiedTradePaymentTerms>
    <ram:DueDateDateTime>
     <udt:DateTimeString format="102">20221219 </udt:DateTimeString>
    </ram:DueDateDateTime> 
   </ram:SpecifiedTradePaymentTerms> 
   <ram:SpecifiedTradeSettlementHeaderMonetarySummation> 
    <ram:LineTotalAmount>35600.00 </ram:LineTotalAmount>
    <ram:TaxBasisTotalAmount>35600.00 </ram:TaxBasisTotalAmount>
    <ram:TaxTotalAmount currencyID="EUR">7120.00 </ram:TaxTotalAmount>
    <ram:GrandTotalAmount>42720.00 </ram:GrandTotalAmount>
    <ram:TotalPrepaidAmount>0.00 </ram:TotalPrepaidAmount>
    <ram:DuePayableAmount>42720.00 </ram:DuePayableAmount>
   </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
  </ram:ApplicableHeaderTradeSettlement> 
 </rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>


UBL flow generated

<Invoicexmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
 <cbc:CustomizationID>urn:oasis:names:specification:ubl:xpath:Invoice-3.0:sbs-1.0-draft </cbc:CustomizationID>
 <cbc:ProfileID> </cbc:ProfileID>
 <cbc:ID>0024657 </cbc:ID>
 <cbc:IssueDate>2022-11-19 </cbc:IssueDate>
 <cbc:DueDate>2022-12-19 </cbc:DueDate>
 <cbc:InvoiceTypeCode>380 </cbc:InvoiceTypeCode>
 <cbc:DocumentCurrencyCode>EUR </cbc:DocumentCurrencyCode>
 <cac:AccountingSupplierParty>
  <cac:Party>
   <cac:PostalAddress>
    <cac:Country>
     <cbc:IdentificationCode>FR </cbc:IdentificationCode>
    </cac:Country>
   </cac:PostalAddress>
   <cac:PartyTaxScheme>
    <cbc:CompanyID>FR9876543210 </cbc:CompanyID>
    <cac:TaxScheme>
     <cbc:ID>VAT </cbc:ID>
    </cac:TaxScheme>
   </cac:PartyTaxScheme>
   <cac:PartyLegalEntity>
    <cbc:RegistrationName>Efalia </cbc:RegistrationName>
   </cac:PartyLegalEntity>
  </cac:Party>
 </cac:AccountingSupplierParty>
 <cac:AccountingCustomerParty>
  <cac:Party>
   <cac:PostalAddress>
    <cac:Country>
     <cbc:IdentificationCode>FR </cbc:IdentificationCode>
    </cac:Country>
   </cac:PostalAddress>
   <cac:PartyTaxScheme>
    <cbc:CompanyID>FR1234567890 </cbc:CompanyID>
    <cac:TaxScheme>
     <cbc:ID>VAT </cbc:ID>
    </cac:TaxScheme>
   </cac:PartyTaxScheme>
   <cac:PartyLegalEntity>
    <cbc:RegistrationName>M.Lenoir </cbc:RegistrationName>
   </cac:PartyLegalEntity>
  </cac:Party>
 </cac:AccountingCustomerParty>
 <cac:Delivery>
 </cac:Delivery>
 <cac:TaxTotal>
  <cbc:TaxAmountcurrencyID="EUR">7120.00 </cbc:TaxAmount>
  <cac:TaxSubtotal>
   <cbc:TaxableAmountcurrencyID="EUR">35600.00 </cbc:TaxableAmount>
   <cbc:TaxAmountcurrencyID="EUR">7120.00 </cbc:TaxAmount>
   <cac:TaxCategory>
    <cbc:ID>S </cbc:ID>
    <cbc:Percent>20.00 </cbc:Percent>
    <cac:TaxScheme>
     <cbc:ID>VAT </cbc:ID>
    </cac:TaxScheme>
   </cac:TaxCategory>
  </cac:TaxSubtotal>
 </cac:TaxTotal>
 <cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmountcurrencyID="EUR">35600.00 </cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmountcurrencyID="EUR">35600.00 </cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmountcurrencyID="EUR">42720.00 </cbc:TaxInclusiveAmount>
  <cbc:PrepaidAmountcurrencyID="EUR">0.00 </cbc:PrepaidAmount>
  <cbc:PayableAmountcurrencyID="EUR">42720.00 </cbc:PayableAmount>
 </cac:LegalMonetaryTotal>
 <cac:InvoiceLine>
  <cbc:ID>1 </cbc:ID>
  <cbc:InvoicedQuantityunitCode="PAL">1.0000 </cbc:InvoicedQuantity>
  <cbc:LineExtensionAmountcurrencyID="EUR">20050.00 </cbc:LineExtensionAmount>
  <cac:Item>
   <cbc:Name>Infoprint20IBM </cbc:Name>
   <cac:ClassifiedTaxCategory>
    <cbc:ID>S </cbc:ID>
    <cbc:Percent>20.00 </cbc:Percent>
    <cac:TaxScheme>
     <cbc:ID>VAT </cbc:ID>
    </cac:TaxScheme>
   </cac:ClassifiedTaxCategory>
  </cac:Item>
  <cac:Price>
   <cbc:PriceAmountcurrencyID="EUR">0.0000 </cbc:PriceAmount>
  </cac:Price>
 </cac:InvoiceLine>
 <cac:InvoiceLine>
  <cbc:ID>2 </cbc:ID>
  <cbc:InvoicedQuantityunitCode="PAL">1.0000 </cbc:InvoicedQuantity>
  <cbc:LineExtensionAmountcurrencyID="EUR">15550.00 </cbc:LineExtensionAmount>
  <cac:Item>
   <cbc:Name>Infoprint60IBM </cbc:Name>
   <cac:ClassifiedTaxCategory>
    <cbc:ID>S </cbc:ID>
    <cbc:Percent>20.00 </cbc:Percent>
    <cac:TaxScheme>
     <cbc:ID>VAT </cbc:ID>
    </cac:TaxScheme>
   </cac:ClassifiedTaxCategory>
  </cac:Item>
  <cac:Price>
   <cbc:PriceAmountcurrencyID="EUR">0.0000 </cbc:PriceAmount>
  </cac:Price>
 </cac:InvoiceLine>
</Invoice>


Incomplete flow

The following flow is incomplete and needs to be enriched with the configuration file


Pivot XML data file

<data>
  <doc type="CII_FLUX200010">
   <field id="BT-1" title="Numéro de facture">F10207217</field>
   <field id="BT-2" title="Date Emission Facture">2023-09-21</field>
   <field id="BT-3" title="Code Type Facture">380</field>
   <field id="BT-5" title="Code Devise Facture">EUR</field>
   <field id="BT-109" title="Montant total facture hors TVA">1619.00</field>
   <field id="BT-112" title="Montant total facture  avec TVA">1915.80</field>
   <field id="BT-115" title="Montant  A payer">0.00</field>
   <field id="BT-110" title="Montant total de TVA de la facture">296.80</field>
   <field id="BT-106" title="Somme des montants nets lig fac">1619.00</field>
   <field id="BT-40" title="Code de pays du vendeur">FR</field>
   <field id="BT-55" title="Code de pays de l'acheteur">FR</field>
   <field id="BT-27" title="Raison sociale du vendeur">EFALIA EXPERTISE</field>
   <field id="BT-31" title="TVA intercommunautaire vendeur">FR59552108722</field>
   <field id="BT-44" title="Raison social acheteur">M EFA JEAN-JACQUES</field>
   <field id="BT-9_BT-9-DISP_1_BT-9">2023-09-25</field>
   <list id="BG-25">
    <item type="BG-25">
     <field id="BT-153" title="Nom Article">ASSISTANCE EFALIA 07 A 09/22</field>
     <field id="BT-130" title="Code de l'unité de mesure de la quantité facturée">E48</field>
     <field id="BT-131" title=" montant net ligne facture"></field>
     <field id="BT-151">1</field>
     <field id="BT-152" title="Taux Tva">1</field>
     <field id="BT-129" title="Quantité facturée"></field>
     <field id="BT-148" title="prix brut article">1686.00</field>
     <list id="BG-27">
      <item type="BG-27">
       <field id="BT-139">   REMISE APPLIQUEE</field>
       <field id="BT-136">-337.00</field>
      </item>
     </list>
    </item>
    <item type="BG-25">
     <field id="BT-153" title="Nom Article">COMPOSE</field>
     <field id="BT-130" title="Code de l'unité de mesure de la quantité facturée">E48</field>
     <field id="BT-131" title=" montant net ligne facture"></field>
     <field id="BT-151">1</field>
     <field id="BT-152" title="Taux Tva">1</field>
     <field id="BT-129" title="Quantité facturée"></field>
     <field id="BT-148" title="prix brut article">135.00</field>
    </item>
    <item type="BG-25">
     <field id="BT-153" title="Nom Article">COMPOSE - DOSSIER SUIVI A. GED</field>
     <field id="BT-130" title="Code de l'unité de mesure de la quantité facturée">E48</field>
     <field id="BT-131" title=" montant net ligne facture"></field>
     <field id="BT-151">0</field>
     <field id="BT-152" title="Taux Tva">0</field>
     <field id="BT-129" title="Quantité facturée"></field>
     <field id="BT-148" title="prix brut article">135.00</field>
    </item>
   </list>
   <list id="BG-23">
    <item type="BG-23">
     <field id="BT-116">135.00</field>
     <field id="BT-117">0.00</field>
     <field id="BT-118">0</field>
     <field id="BT-119">0</field>
    </item>
    <item type="BG-23">
     <field id="BT-116">1484.00</field>
     <field id="BT-117">296.80</field>
     <field id="BT-118">1</field>
     <field id="BT-119">1</field>
    </item>
   </list>
   <list id="BT-29a">
    <item type="None">
     <field id="BT-29A" title="Identifiant Siren Asujetti">FR12345678911</field>
     <field id="BT-29A-1" title="Code Siren">0018</field>
    </item>
   </list>
  </doc>
  </data>
 </data>


Setting XML

<param>
  <field id="BT-113" xpath="/data/doc[1]/field[@id='BT-113_None_1_BT-113']"/>
  <field id="BT-9" xpath="/data/doc[1]/field[@id='BT-9_BT-9-DISP_1_BT-9']"/>	
  <!--calcule automatiquement le montant à payer : BT-115 = BT-112 - BT-113 + BT-114 -->
  <field id="BT-115" calculate="true"/>
  <list id="BG-23" xpath="/*/doc[1]/list[@id='BG-23']"/>
  <list id="BG-25" xpath="/*/doc[1]/list[@id='BG-25']"/> 
   <taxes>
    <codes>
     <value from="0" to="Z"/>
     <value from="1" to="S"/>
     <value from="2" to="S"/>
     <value from="3" to="S"/>
    </codes>
    <rates>
     <value from="0" to="0.00"/>
     <value from="1" to="20.00"/>
     <value from="2" to="8.50"/>
     <value from="3" to="4.00"/>
    </rates>		
    </taxes>	
   <translations>
    <field id="BT-129">
     <value from="" to="1.000"/>	
    </field>
    <field id="BT-146">
     <value from="*" to="calc()">
      <field op="" id="BT-148"/>
      <field op="-" id="BT-136"/>
     </value>
    </field>
    <field id="BT-131">
     <value from="*" to="calc()">
      <field op="" id="BT-146"/>
      <field op="*" id="BT-129"/>
     </value>
    </field>
   </translations>	
 </param>


CII flow generated

<rsm:CrossIndustryInvoice xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"   
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"    
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"    
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"     
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">   
 <rsm:ExchangedDocumentContext>    
  <ram:GuidelineSpecifiedDocumentContextParameter>
   <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic </ram:ID>        
  </ram:GuidelineSpecifiedDocumentContextParameter>          
 </rsm:ExchangedDocumentContext>   
 <rsm:ExchangedDocument>
  <ram:ID>F10207217 </ram:ID>   
  <ram:TypeCode>380 </ram:TypeCode>     
  <ram:IssueDateTime>          
   <udt:DateTimeString format="102">20230921 </udt:DateTimeString>
  </ram:IssueDateTime>         
 </rsm:ExchangedDocument>          
 <rsm:SupplyChainTradeTransaction> 
  <ram:IncludedSupplyChainTradeLineItem>          
   <ram:AssociatedDocumentLineDocument>       
    <ram:LineID>1 </ram:LineID> 
   </ram:AssociatedDocumentLineDocument>      
   <ram:SpecifiedTradeProduct>     
    <ram:Name>ASSISTANCE EFALIA 07 A 09/22 </ram:Name>
   </ram:SpecifiedTradeProduct>    
   <ram:SpecifiedLineTradeAgreement>          
    <ram:NetPriceProductTradePrice>       
     <ram:ChargeAmount>1349.0000 </ram:ChargeAmount>      
     <ram:BasisQuantity>0.0000 </ram:BasisQuantity>       
    </ram:NetPriceProductTradePrice>      
   </ram:SpecifiedLineTradeAgreement>         
   <ram:SpecifiedLineTradeDelivery>
    <ram:BilledQuantity unitCode="E48">1.0000 </ram:BilledQuantity>      
   </ram:SpecifiedLineTradeDelivery>          
   <ram:SpecifiedLineTradeSettlement>         
    <ram:ApplicableTradeTax>   
     <ram:TypeCode>VAT </ram:TypeCode> 
     <ram:CategoryCode>S </ram:CategoryCode>      
     <ram:RateApplicablePercent>20.00 </ram:RateApplicablePercent>   
    </ram:ApplicableTradeTax>  
    <ram:SpecifiedTradeAllowanceCharge>   
     <ram:ChargeIndicator> 
      <udt:Indicator>false </udt:Indicator>   
     </ram:ChargeIndicator>
     <ram:ActualAmount>337.00 </ram:ActualAmount> 
     <ram:Reason>   REMISE APPLIQUEE </ram:Reason>
    </ram:SpecifiedTradeAllowanceCharge>  
    <ram:SpecifiedTradeSettlementLineMonetarySummation>      
     <ram:LineTotalAmount>1349.00 </ram:LineTotalAmount>  
    </ram:SpecifiedTradeSettlementLineMonetarySummation>     
   </ram:SpecifiedLineTradeSettlement>        
  </ram:IncludedSupplyChainTradeLineItem>         
  <ram:IncludedSupplyChainTradeLineItem>          
   <ram:AssociatedDocumentLineDocument>       
    <ram:LineID>2 </ram:LineID> 
   </ram:AssociatedDocumentLineDocument>      
   <ram:SpecifiedTradeProduct>     
    <ram:Name>COMPOSE </ram:Name>          
   </ram:SpecifiedTradeProduct>    
   <ram:SpecifiedLineTradeAgreement>          
    <ram:NetPriceProductTradePrice>       
     <ram:ChargeAmount>135.0000 </ram:ChargeAmount>       
     <ram:BasisQuantity>0.0000 </ram:BasisQuantity>       
    </ram:NetPriceProductTradePrice>      
   </ram:SpecifiedLineTradeAgreement>         
   <ram:SpecifiedLineTradeDelivery>
    <ram:BilledQuantity unitCode="E48">1.0000 </ram:BilledQuantity>      
   </ram:SpecifiedLineTradeDelivery>          
   <ram:SpecifiedLineTradeSettlement>         
    <ram:ApplicableTradeTax>   
     <ram:TypeCode>VAT </ram:TypeCode> 
     <ram:CategoryCode>S </ram:CategoryCode>      
     <ram:RateApplicablePercent>20.00 </ram:RateApplicablePercent>   
    </ram:ApplicableTradeTax>  
    <ram:SpecifiedTradeSettlementLineMonetarySummation>      
     <ram:LineTotalAmount>135.00 </ram:LineTotalAmount>   
    </ram:SpecifiedTradeSettlementLineMonetarySummation>     
   </ram:SpecifiedLineTradeSettlement>        
  </ram:IncludedSupplyChainTradeLineItem>         
  <ram:IncludedSupplyChainTradeLineItem>          
   <ram:AssociatedDocumentLineDocument>       
    <ram:LineID>3 </ram:LineID> 
   </ram:AssociatedDocumentLineDocument>      
   <ram:SpecifiedTradeProduct>     
    <ram:Name>COMPOSE - DOSSIER SUIVI A. GED </ram:Name>      
   </ram:SpecifiedTradeProduct>    
   <ram:SpecifiedLineTradeAgreement>          
    <ram:NetPriceProductTradePrice>       
     <ram:ChargeAmount>135.0000 </ram:ChargeAmount>       
     <ram:BasisQuantity>0.0000 </ram:BasisQuantity>       
    </ram:NetPriceProductTradePrice>      
   </ram:SpecifiedLineTradeAgreement>         
   <ram:SpecifiedLineTradeDelivery>
    <ram:BilledQuantity unitCode="E48">1.0000 </ram:BilledQuantity>      
   </ram:SpecifiedLineTradeDelivery>          
   <ram:SpecifiedLineTradeSettlement>         
    <ram:ApplicableTradeTax>   
     <ram:TypeCode>VAT </ram:TypeCode> 
     <ram:CategoryCode>Z </ram:CategoryCode>      
     <ram:RateApplicablePercent>0.00 </ram:RateApplicablePercent>    
    </ram:ApplicableTradeTax>  
    <ram:SpecifiedTradeSettlementLineMonetarySummation>      
     <ram:LineTotalAmount>135.00 </ram:LineTotalAmount>   
    </ram:SpecifiedTradeSettlementLineMonetarySummation>     
   </ram:SpecifiedLineTradeSettlement>        
  </ram:IncludedSupplyChainTradeLineItem>         
  <ram:ApplicableHeaderTradeAgreement> 
   <ram:SellerTradeParty>  
    <ram:ID schemeID="0018">FR12345678911 </ram:ID>       
    <ram:Name>EFALIA EXPERTISE </ram:Name> 
    <ram:SpecifiedLegalOrganization> 
    </ram:SpecifiedLegalOrganization>
    <ram:PostalTradeAddress>         
     <ram:CountryID>FR </ram:CountryID>      
    </ram:PostalTradeAddress>        
    <ram:SpecifiedTaxRegistration>   
     <ram:ID schemeID="VA">FR59552108722 </ram:ID>   
    </ram:SpecifiedTaxRegistration>  
   </ram:SellerTradeParty> 
   <ram:BuyerTradeParty>   
    <ram:Name>M EFA JEAN-JACQUES </ram:Name>          
    <ram:PostalTradeAddress>         
     <ram:CountryID>FR </ram:CountryID>      
    </ram:PostalTradeAddress>        
   </ram:BuyerTradeParty>  
  </ram:ApplicableHeaderTradeAgreement>
  <ram:ApplicableHeaderTradeDelivery>   
  </ram:ApplicableHeaderTradeDelivery> 
  <ram:ApplicableHeaderTradeSettlement>
   <ram:InvoiceCurrencyCode>EUR </ram:InvoiceCurrencyCode>
   <ram:ApplicableTradeTax>
    <ram:CalculatedAmount>0.00 </ram:CalculatedAmount>
    <ram:TypeCode>VAT </ram:TypeCode>      
    <ram:BasisAmount>135.00 </ram:BasisAmount>        
    <ram:CategoryCode>Z </ram:CategoryCode>
    <ram:RateApplicablePercent>0.00 </ram:RateApplicablePercent>         
   </ram:ApplicableTradeTax>       
   <ram:ApplicableTradeTax>
    <ram:CalculatedAmount>296.80 </ram:CalculatedAmount>      
    <ram:TypeCode>VAT </ram:TypeCode>      
    <ram:BasisAmount>1484.00 </ram:BasisAmount>       
    <ram:CategoryCode>S </ram:CategoryCode>
    <ram:RateApplicablePercent>20.00 </ram:RateApplicablePercent>        
   </ram:ApplicableTradeTax>       
   <ram:SpecifiedTradePaymentTerms>
    <ram:DueDateDateTime>      
     <udt:DateTimeString format="102">20230925 </udt:DateTimeString> 
    </ram:DueDateDateTime>     
   </ram:SpecifiedTradePaymentTerms>          
   <ram:SpecifiedTradeSettlementHeaderMonetarySummation> 
    <ram:LineTotalAmount>1619.00 </ram:LineTotalAmount>       
    <ram:TaxBasisTotalAmount>1619.00 </ram:TaxBasisTotalAmount>          
    <ram:TaxTotalAmount currencyID="EUR">296.80 </ram:TaxTotalAmount>    
    <ram:GrandTotalAmount>1915.80 </ram:GrandTotalAmount>     
    <ram:DuePayableAmount>1915.80 </ram:DuePayableAmount>     
   </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
  </ram:ApplicableHeaderTradeSettlement>          
 </rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>


UBL flow generated

<Invoice xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" 
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"> 
 <cbc:CustomizationID>urn:oasis:names:specification:ubl:xpath:Invoice-3.0:sbs-1.0-draft </cbc:CustomizationID>    
 <cbc:ProfileID> </cbc:ProfileID> 
 <cbc:ID>F10207217 </cbc:ID> 
 <cbc:IssueDate>2023-09-21 </cbc:IssueDate>    
 <cbc:DueDate>2023-09-25 </cbc:DueDate>    
 <cbc:InvoiceTypeCode>380 </cbc:InvoiceTypeCode>   
 <cbc:DocumentCurrencyCode>EUR </cbc:DocumentCurrencyCode>  
 <cac:AccountingSupplierParty> 
  <cac:Party>  
  <cac:PartyIdentification>
   <cbc:ID schemeID="0018">FR12345678911 </cbc:ID>   
  </cac:PartyIdentification>
  <cac:PostalAddress> 
   <cac:Country> 
    <cbc:IdentificationCode>FR </cbc:IdentificationCode>    
   </cac:Country> 
  </cac:PostalAddress> 
  <cac:PartyTaxScheme> 
   <cbc:CompanyID>FR59552108722 </cbc:CompanyID> 
   <cac:TaxScheme> 
    <cbc:ID>VAT </cbc:ID>    
   </cac:TaxScheme> 
  </cac:PartyTaxScheme> 
  <cac:PartyLegalEntity>
   <cbc:RegistrationName>EFALIA EXPERTISE </cbc:RegistrationName>   
  </cac:PartyLegalEntity> 
  </cac:Party>  
 </cac:AccountingSupplierParty> 
 <cac:AccountingCustomerParty> 
  <cac:Party>  
  <cac:PostalAddress> 
   <cac:Country> 
    <cbc:IdentificationCode>FR </cbc:IdentificationCode>    
   </cac:Country> 
  </cac:PostalAddress> 
  <cac:PartyLegalEntity>
   <cbc:RegistrationName>M EFA JEAN-JACQUES </cbc:RegistrationName>   
  </cac:PartyLegalEntity> 
  </cac:Party>  
 </cac:AccountingCustomerParty> 
 <cac:Delivery>   
 </cac:Delivery>   
 <cac:TaxTotal>   
  <cbc:TaxAmount currencyID="EUR">296.80 </cbc:TaxAmount> 
  <cac:TaxSubtotal> 
   <cbc:TaxableAmount currencyID="EUR">135.00 </cbc:TaxableAmount>   
   <cbc:TaxAmount currencyID="EUR">0.00 </cbc:TaxAmount> 
   <cac:TaxCategory>
    <cbc:ID>Z </cbc:ID>    
    <cbc:Percent>0.00 </cbc:Percent>  
    <cac:TaxScheme>
<cbc:ID>VAT </cbc:ID>   
    </cac:TaxScheme>
   </cac:TaxCategory> 
  </cac:TaxSubtotal> 
  <cac:TaxSubtotal> 
   <cbc:TaxableAmount currencyID="EUR">1484.00 </cbc:TaxableAmount>   
   <cbc:TaxAmount currencyID="EUR">296.80 </cbc:TaxAmount>
   <cac:TaxCategory>
    <cbc:ID>S </cbc:ID>    
    <cbc:Percent>20.00 </cbc:Percent>  
    <cac:TaxScheme>
<cbc:ID>VAT </cbc:ID>   
    </cac:TaxScheme>
   </cac:TaxCategory> 
  </cac:TaxSubtotal> 
 </cac:TaxTotal>   
 <cac:LegalMonetaryTotal> 
  <cbc:LineExtensionAmount currencyID="EUR">1619.00 </cbc:LineExtensionAmount>   
  <cbc:TaxExclusiveAmount currencyID="EUR">1619.00 </cbc:TaxExclusiveAmount>   
  <cbc:TaxInclusiveAmount currencyID="EUR">1915.80 </cbc:TaxInclusiveAmount>   
  <cbc:PayableAmount currencyID="EUR">1915.80 </cbc:PayableAmount> 
 </cac:LegalMonetaryTotal> 
 <cac:InvoiceLine>  
  <cbc:ID>1 </cbc:ID>  
  <cbc:InvoicedQuantity unitCode="E48">1.0000 </cbc:InvoicedQuantity>    
  <cbc:LineExtensionAmount currencyID="EUR">1349.00 </cbc:LineExtensionAmount>   
  <cac:AllowanceCharge> 
  <cbc:ChargeIndicator>false </cbc:ChargeIndicator> 
  <cbc:AllowanceChargeReason> REMISE APPLIQUEE </cbc:AllowanceChargeReason>  
  <cbc:Amount currencyID="EUR">337.00 </cbc:Amount> 
  </cac:AllowanceCharge> 
  <cac:Item>   
  <cbc:Name>ASSISTANCE EFALIA 07 A 09/22 </cbc:Name> 
  <cac:ClassifiedTaxCategory>    
   <cbc:ID>S </cbc:ID> 
   <cbc:Percent>20.00 </cbc:Percent>   
   <cac:TaxScheme> 
    <cbc:ID>VAT </cbc:ID>    
   </cac:TaxScheme> 
  </cac:ClassifiedTaxCategory>    
  </cac:Item>  
  <cac:Price>  
  <cbc:PriceAmount currencyID="EUR">0.0000 </cbc:PriceAmount> 
  <cac:AllowanceCharge> 
   <cbc:ChargeIndicator>false </cbc:ChargeIndicator> 
   <cbc:Amount currencyID="EUR">0.0000 </cbc:Amount> 
   <cbc:BaseAmount currencyID="EUR">1686.0000 </cbc:BaseAmount>    
  </cac:AllowanceCharge>
  </cac:Price>  
 </cac:InvoiceLine>  
 <cac:InvoiceLine>  
  <cbc:ID>2 </cbc:ID>  
  <cbc:InvoicedQuantity unitCode="E48">1.0000 </cbc:InvoicedQuantity>    
  <cbc:LineExtensionAmount currencyID="EUR">135.00 </cbc:LineExtensionAmount>   
  <cac:Item>   
  <cbc:Name>COMPOSE </cbc:Name>    
  <cac:ClassifiedTaxCategory>    
   <cbc:ID>S </cbc:ID> 
   <cbc:Percent>20.00 </cbc:Percent>   
   <cac:TaxScheme> 
    <cbc:ID>VAT </cbc:ID>    
   </cac:TaxScheme> 
  </cac:ClassifiedTaxCategory>    
  </cac:Item>  
  <cac:Price>  
  <cbc:PriceAmount currencyID="EUR">0.0000 </cbc:PriceAmount> 
  <cac:AllowanceCharge> 
   <cbc:ChargeIndicator>false </cbc:ChargeIndicator> 
   <cbc:Amount currencyID="EUR">0.0000 </cbc:Amount> 
   <cbc:BaseAmount currencyID="EUR">135.0000 </cbc:BaseAmount>    
  </cac:AllowanceCharge>
  </cac:Price>  
 </cac:InvoiceLine>  
 <cac:InvoiceLine>  
  <cbc:ID>3 </cbc:ID>  
  <cbc:InvoicedQuantity unitCode="E48">1.0000 </cbc:InvoicedQuantity>    
  <cbc:LineExtensionAmount currencyID="EUR">135.00 </cbc:LineExtensionAmount>   
  <cac:Item>   
  <cbc:Name>COMPOSE - DOSSIER SUIVI A. GED </cbc:Name> 
  <cac:ClassifiedTaxCategory>    
   <cbc:ID>Z </cbc:ID> 
   <cbc:Percent>0.00 </cbc:Percent>   
   <cac:TaxScheme> 
    <cbc:ID>VAT </cbc:ID>    
   </cac:TaxScheme> 
  </cac:ClassifiedTaxCategory>    
  </cac:Item>  
  <cac:Price>  
  <cbc:PriceAmount currencyID="EUR">0.0000 </cbc:PriceAmount> 
  <cac:AllowanceCharge> 
   <cbc:ChargeIndicator>false </cbc:ChargeIndicator> 
   <cbc:Amount currencyID="EUR">0.0000 </cbc:Amount> 
   <cbc:BaseAmount currencyID="EUR">135.0000 </cbc:BaseAmount>    
  </cac:AllowanceCharge>
  </cac:Price>  
 </cac:InvoiceLine>  
</Invoice>


Program error codes

The EINVOICING program has error handling checking the incoming Pivot XML stream. The checks are not exhaustive compared to the CII and UBL specifications but this helps eliminate some of the errors.


Below you will find the list of return codes currently managed with their description:

Codes retours Descriptions
1 An Invoice shall have a Specification identifier (BT-24).
2 An Invoice shall have an Invoice number (BT-1).
3 ERROR BR-3 : An Invoice shall have an Invoice issue date (BT-2).
4 ERROR BR-4 : An Invoice shall have an Invoice type code (BT-3)."
5 ERROR BR-5 : An Invoice shall have an Invoice currency code (BT-5)."
6 ERROR BR-6 : An Invoice shall contain the Seller name (BT-27)."
7 ERROR BR-7 : An Invoice shall contain the Buyer name (BT-44)."
8 ERROR BR-9 : The Seller postal address (BG-5) shall contain a Seller country code (BT-40)."
9 ERROR BR-11 : The Buyer postal address shall contain a Buyer country code (BT-55)."
10 ERROR BR-12 : An Invoice shall have the Sum of Invoice line net amount (BT-106)."
11 ERROR BR-13 : An Invoice shall have the Invoice total amount without VAT (BT-109)."
12 ERROR BR-14 : An Invoice shall have the Invoice total amount with VAT (BT-112)."
13 ERROR BR-15 : An Invoice shall have the Amount due for payment (BT- 115)."
14 ERROR BR-16 : An Invoice shall have at least one Invoice line (BG-25)."
15 ERROR BR-18 : The Seller tax representative name (BT-62) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11). ERROR BR-20 : The Seller tax representative postal address (BG-12) shall contain a Tax representative country code (BT-69), if the Seller (BG-4) has a Seller tax representative party (BG-11)."
16 ERROR BR-22 : Each Invoice line (BG-25) shall have an Invoiced quantity (BT-129)."
17 ERROR BR-CO-13 Invoice total amount without VAT (BT-109) = Somme of all Invoice lines net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108)."
18 ERROR BR-CO-14 Invoice total VAT amount (BT-110) = Sum of all VAT category tax amount (BT-117)."
19 ERROR BR-CO-15 Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110)."
20 ERROR BR-CO-16 Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) + Rounding amount (BT-114)."
21 ERROR BR-CO-25 In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present."
22 ERROR BR-CO-26 In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present."
23 ERROR EXT_FR_FE_01_11 mandatory if ****BT_11**** present"
24 ERROR BR-22 : Each Invoice line (BG-25) shall have an Invoiced quantity (BT-129)."
25 ERROR BR-23 : An Invoice line (BG-25) shall have an Invoiced quantity unit of measure code (BT-130)."
26 ERROR BR-25 : Each Invoice line (BG-25) shall contain the Item name (BT- 153)."
27 ERROR BR-26 : Each Invoice line (BG-25) shall contain the Item net price (BT-146)."
28 ERROR BR-27 : The Item net price (BT-146) shall NOT be negative."
29 ERROR BR-28 : The Item net price (BT-148) shall NOT be negative."
30 ERROR BR-29 : If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73)."
31 ERROR BR-30 : If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134)."
32 ERROR BR-31 : Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92)."
33 ERROR BR-32 : Each Document level allowance (BG-20) shall have a Document level allowance VAT category code (BT-95)."
34 ERROR BR-33 : Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98)."
35 ERROR BR-36 : Each Document level charge (BG-21) shall have a Document level charge amount (BT-99)."
36 ERROR BR-37 : Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102)."
37 ERROR BR-38 : Each Document level charge (BG-21) shall have a Document level charge reason (BT-104) or a Document level charge reason code (BT-105)."
38 ERROR BR-41 : Each Invoice line allowance (BG-27) shall have an Invoice line allowance amount (BT-136)."
39 ERROR BR-42 : Each Invoice line allowance (BG-27) shall have an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140)."
40 ERROR BR-45 :Each VAT breakdown (BG-23) shall have a VAT category taxable amount (BT-116)."
41 ERROR BR-46 :Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117)."
42 ERROR BR-47 : Each VAT breakdown (BG-23) shall be defined through a VAT category code (BT-118)."
43 ERROR BR-48 : Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT. (Caution : Invoice not subject to VAT is not yet managed in Efalia Compose)"
44 ERROR BR-53 : If the VAT accounting currency code (BT-6) is present, then the Invoice total VAT amount in accounting currency (BT-111) shall be provided."
45 ERROR BR-S-1 : An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is \“Standard rated\” shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with \"Standard rated\"."
46 ERROR BR-S-2 : An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Standard rated\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).."
47 ERROR BR-S-3 : An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Standard rated\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63)."
48 ERROR BR-S-4 : An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Standard rated\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63)."
49 ERROR BR-S-5 : In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Standard rated\" the Invoiced item VAT rate (BT-152) shall be greater than zero."
50 ERROR BR-S-6 : In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Standard rated\" the Document level allowance VAT rate (BT-96) shall be greater than zero."
51 ERROR BR-S-7 : In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Standard rated\" the Document level charge VAT rate (BT-103) shall be greater than zero."
52 ERROR BR-S-8 : For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is \"Standard rated\", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is “Standard rated” and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119)."
53 ERROR BR-S-9 :The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is \"Standard rated\" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).."
54 ERROR BR-S-10 : A VAT Breakdown (BG-23) with VAT Category code (BT-118) \"Standard rate\" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120)."
55 ERROR BR-Z-1 : An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is \“Zero rated\” shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with \"Zero rated\"."
56 ERROR BR-Z-2 : An Invoice that contains an Invoice line where the Invoiced item VAT category code (BT-151) is “Zero rated” shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT- 63)."
57 ERROR BR-Z-3 : An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is “Zero rated” shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63)."
58 ERROR BR-Z-4 : An Invoice that contains a Document level charge where the Document level charge VAT category code (BT-102) is “Zero rated” shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63)."
59 ERROR BR-Z-5 : In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Zero rated\" the Invoiced item VAT rate (BT-152) shall be 0 (zero)."
60 ERROR BR-Z-6 : In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Zero rated\" the Document level allowance VAT rate (BT-96) shall be 0 (zero)."
61 ERROR BR-Z-7 : In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Zero rated\" the Document level charge VAT rate (BT-103) shall be 0 (zero)."
62 ERROR BR-Z-8 : In a VAT breakdown (BG-23) where VAT category code (BT-118) is \"Zero rated\" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amount (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are \"Zero rated\"."
63 ERROR BR-Z-9 : The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is \"Zero rated\" shall equal 0 (zero)."
64 ERROR BR-Z-10 : A VAT Breakdown (BG-23) with VAT Category code (BT-118) \"Zero rated\" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120)."
65 ERROR BR-O-1 : An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is “Not subject to VAT” shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to \"Not subject to VAT\"."
66 ERROR BR-O-2 : An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Not subject to VAT\" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-46)."
67 ERROR BR-O-3 : An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Not subject to VAT\" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48)."
68 ERROR BR-O-4 : An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Not subject to VAT\" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48)."
69 ERROR BR-O-5 : An Invoice line (BG-25) where the VAT category code (BT-151) is \"Not subject to VAT\" shall not contain an Invoiced item VAT rate (BT-152)."
70 ERROR BR-O-6 : A Document level allowance (BG-20) where VAT category code (BT-95) is \"Not subject to VAT\" shall not contain a Document level allowance VAT rate (BT-96)."
71 ERROR BR-O-7 : A Document level charge (BG-21) where the VAT category code (BT-102) is \"Not subject to VAT\" shall not contain a Document level charge VAT rate (BT-103)."
72 ERROR BR-O-8 : In a VAT breakdown (BG-23) where the VAT category code (BT-118) is \"Not subject to VAT\" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are \“Not subject to VAT\". "
73 ERROR BR-O-9 : The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is “Not subject to VAT” shall be 0 (zero)."
74 ERROR BR-O-10 : A VAT Breakdown (BG-23) with VAT Category code (BT-118) \"Not subject to VAT\" shall have a VAT exemption reason code (BT-121), meaning \"Not subject to VAT\" or a VAT exemption reason text (BT-120) \"Not subject to VAT\" (or the equivalent standard text in another language)."
75 ERROR BR-O-12 :An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) \"Not subject to VAT\" shall not contain an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is not \"Not subject to VAT\"."
76 ERROR BR-O-13 : An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) \"Not subject to VAT\" shall not contain Document level allowances (BG-20) where Document level allowance VAT category code (BT-95) is not \"Not subject to VAT\"."
77 ERROR BR-O-14 : An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) \"Not subject to VAT\" shall not contain Document level charges (BG-21) where Document level charge VAT category code (BT-102) is not \"Not subject to VAT\"."
78 ERROR BT-24 mandatory."