Description du fichier XML généré

Ce chapitre décrit le fichier XML généré par Akuiteo qui pourrait être transmis via la plateforme CHORUS PRO.

Le type de flux attendu par la plateforme CHORUS PRO qui a été retenu pour la génération des fichiers XML par Akuiteo est le Flux structuré facture (E1). Toutes les données minimales nécessaires au traitement de factures par Chorus sont décrites dans des balises du fichier XML généré par Akuiteo. Les données attendues dans ce Flux structuré facture (E1) sont décrites dans l'Annexe EDI des spécifications externes fournies par CHORUS.

Un flux structuré facture peut contenir un ou plusieurs fichier XML. Chaque fichier correspond à une facture. Ce flux peut contenir au maximum 500 factures et a une taille maximale totale de 1 Go.

Un fichier XML contient :

Les types de factures qui peuvent être gérées par Akuiteo correspondent uniquement aux modes de facturation suivants :

Note

Les autres modes (A4, A7, A8, A9, A10, A12, A13, A14, A22) ne sont pas gérés dans Akuiteo.

: : Généralités de format de fichier

Tous les champs de type date sont sous le format AAAA-MM-JJ.

Les champs numériques sont exprimés par un nombre sur 19 positions, qui ne peut comporter plus de six décimales. Le séparateur utilisé pour les décimales est le "." point.

L'ordre des chapitres suivants représente l'ordre réel et la structure des balises du fichier XML.

: : Début du fichier - Généralités

<?xml version="1.0" encoding="UTF-8"?>

<Invoice xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
xmlns:ccts="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2"
xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:udt="urn:un:unece:uncefact:data:draft:UnqualifiedDataTypesSchemaModule:2"

xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"

xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">

<cec:UBLExtensions>

<cec:UBLExtension>

<cec:ExtensionContent>

<CategoryCode>A1</CategoryCode>

</cec:ExtensionContent>

</cec:UBLExtension>

</cec:UBLExtensions>

<cbc:UBLVersionID>2.1</cbc:UBLVersionID>

<cbc:ID>F1001_2016001</cbc:ID>

<cbc:IssueDate>2016-04-25</cbc:IssueDate>

<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>

<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>

<cac:InvoicePeriod>

<cbc:StartDate>2016-01-01</cbc:StartDate>

<cbc:EndDate>2016-12-31</cbc:EndDate>

</cac:InvoicePeriod>

Balise Règles
<?xml version="1.0" encoding="UTF-8"?> Première ligne.
Invoice Balise racine.
CategoryCode

Cadre (mode de facturation) :

  • Valeur "A1" si le montant à régler est différent de zéro
  • Valeur "A2" si le montant à régler est égal à zéro
ID Numéro de la facture.
IssueDate

Date de la facture.

La date d'émission de la facture doit être antérieure ou égale à la date de dépôt de la facture dans le système.

InvoiceTypeCode

Type de facture autorisé :

  • Valeur "380" s'il s'agit d'une facture
  • Valeur "381" s'il s'agit d'un avoir
DocumentCurrencyCode Devise de la facture
InvoicePeriod

StartDate : Date de début de la période. Cette date de début est déterminée en prenant la date la plus ancienne parmi toutes celles renseignées dans le champ Période du des lignes de la facture.

EndDate : Date de fin de la période. Cette date de fin est déterminée en prenant la date la plus récente parmi toutes celles renseignées dans le champ Au des lignes de la facture.

La balise InvoicePeriod n'est pas présente s'il n'y a aucune période renseignée sur la facture.

: : Engagement

<cac:ContractDocumentReference>

<cbc:ID>123456789123</cbc:ID>

<cbc:DocumentTypeCode>Contrat</cbc:DocumentTypeCode>

</cac:ContractDocumentReference>

<cac:ContractDocumentReference>

<cbc:ID>123456789123</cbc:ID>

<cbc:DocumentTypeCode>Marché</cbc:DocumentTypeCode>

</cac:ContractDocumentReference>

<cac:OrderReference>

<cbc:ID>1400000000</cbc:ID>

</cac:OrderReference>

En fonction de la donnée renseignée, les balises suivantes sont ajoutées. Si aucune de ces 3 valeurs alphanumériques n'est renseignée, aucune balise n'est affichée.

Balise Règles
ContractDocumentReference Numéro de contrat.
ContractDocumentReference > ID Donnée personnalisée sur les pièces de gestion vente (Séquence 9, Alphanum01).
ContractDocumentReference > DocumentTypeCode Valeur "Contrat".
ContractDocumentReference > IssueDate

Donnée personnalisée sur les pièces de gestion vente (Séquence 9, Date01).

Balise affichée uniquement si la date est renseignée.

ContractDocumentReference Numéro de marché.
ContractDocumentReference > ID Donnée personnalisée sur les pièces de gestion vente (Séquence 9, Alphanum02).
ContractDocumentReference > DocumentTypeCode Valeur "Marché".
ContractDocumentReference > IssueDate

Donnée personnalisée sur les pièces de gestion vente (Séquence 9, Date01).

Balise affichée uniquement si la date est renseignée.

OrderReference Numéro d’engagement.
OrderReference > ID Donnée personnalisée sur les pièces de gestion vente (Séquence 9, Alphanum03).
OrderReference > IssueDate

Donnée personnalisée sur les pièces de gestion vente (Séquence 9, Date01).

Balise affichée uniquement si la date est renseignée.

: : Fournisseur

<cac:AccountingSupplierParty>

<cac:Party>

<cac:PartyIdentification>

<cbc:ID schemeName="1">00000000000347</cbc:ID>

</cac:PartyIdentification>

<cac:PartyName>

<cbc:Name>REC005FOURNISSEUR</cbc:Name>

</cac:PartyName>

<cac:PartyLegalEntity>

<cbc:RegistrationName>REC005FOURNISSEUR</cbc:RegistrationName>

<cac:RegistrationAddress>

<cbc:StreetName>rue Fictive</cbc:StreetName>

<cbc:CityName>La Poste</cbc:CityName>

<cbc:PostalZone>87016</cbc:PostalZone>

<cac:Country>

<cbc:IdentificationCode>FR</cbc:IdentificationCode>

</cac:Country>

</cac:RegistrationAddress>

</cac:PartyLegalEntity>

</cac:Party>

</cac:AccountingSupplierParty>

Balise Règles
PartyIdentification > ID schemeName="1" Numéro SIRET de la société de la facture.
PartyName > Name Nom complet de la société.
PartyLegalEntity > RegistrationName Nom complet de la société.
PartyLegalEntity > RegistrationAddress > StreetName

Adresse de la société.

L’adresse de la société est obligatoire.

PartyLegalEntity > RegistrationAddress > PostalZone Code postal de la société.
PartyLegalEntity > RegistrationAddress > CityName Ville de la société.
PartyLegalEntity > RegistrationAddress > Country > IdentificationCode Pays de la société.

: : Débiteur (client)

<cac:AccountingCustomerParty>

<cac:Party>

<cac:PartyIdentification>

<cbc:ID schemeName="1">12345678200051</cbc:ID>

</cac:PartyIdentification>

<cac:PartyName>

<cbc:Name>CLI001CLIENT</cbc:Name>

</cac:PartyName>

<cac:PostalAddress>

<cbc:StreetName>1 rue Test</cbc:StreetName>

<cbc:CityName>Test</cbc:CityName>

<cbc:PostalZone>75000</cbc:PostalZone>

<cac:Country>

<cbc:IdentificationCode>FR</cbc:IdentificationCode>

</cac:Country>

</cac:PostalAddress>

</cac:Party>

<cac:AccountingContact>

<cbc:ID>SERVICE_DEST_EJ_OBL</cbc:ID>

<cbc:Name>nom du Service</cbc:Name>

</cac:AccountingContact>

</cac:AccountingCustomerParty>

Balise Règles
PartyIdentification > ID schemeName="1" Numéro SIRET du site de facturation.
PartyName > Name Nom complet du site de facturation.
PostalAddress > StreetName

Adresse 1 du site de facturation.

PostalAddress > CityName Ville du site de facturation.
PostalAddress > PostalZone Code postal du site de facturation.
PostalAddress > Country > IdentificationCode Pays du site de facturation.
AccountingContact

Code service.

Bloc affiché uniquement si le code service est renseigné.

AccountingContact > ID Donnée personnalisée sur les sites (Séquence 9, Alphanum01).
AccountingContact > Name

Donnée personnalisée sur les sites (Séquence 9, Alphanum02).

Balise affichée uniquement si le nom est renseigné.

: : Paiement

<cac:PaymentMeans>

<cbc:PaymentMeansCode listID="UN/ECE 4461 Subset"

listAgencyID="NES" listAgencyName="Northern European Subset"

listName="Payment Means">30</cbc:PaymentMeansCode>

<cbc:PaymentDueDate>2016-04-26</cbc:PaymentDueDate>

<cbc:PaymentChannelCode>FR7630001007941234567890185</cbc:PaymentChannelCode>

</cac:PaymentMeans>

Balise Règles
PaymentMeansCode

Valeur déterminée en fonction de la valeur du mode de règlement :

  • "01" si non renseigné ou si AU (Autres)
  • "10" si ES (Espèce)
  • "20" si CH ou LC (Chèque)
  • "30" si VI ou VD (Virement)
  • "48" si CB (Prélèvement)
  • "49" si PR, CB ou TR (Prélèvement)
  • "97" si le montant à régler est égal à zéro (Report) dans le cas d'une facture ou d'un avoir déjà soldé(e)
PaymentDueDate

Première date de règlement prévue parmi les lignes d'échéance (lignes non réglées).

Balise affichée uniquement si la date est renseignée.

PaymentChannelCode

Numéro IBAN. Ce numéro est obligatoire.

PayeeFinancialAccount > ID

Code du journal de trésorerie renseigné dans la donnée personnalisée du site de facturation (Séquence 9, Alphanum03) qui permet de déterminer le numéro IBAN.

La valeur de la balise est la concaténation des 3 champs : PAY_CODE, BPR_CLE_IBAN, BPR_NUMCPTE_IBAN.

PayeeFinancialAccount > FinancialInstitutionBranch > ID Code du journal de trésorerie renseigné dans la donnée personnalisée du site de facturation (Séquence 9, Alphanum03) qui permet de déterminer le code BIC.

: : Montants

<cac:LegalMonetaryTotal>

<cbc:TaxExclusiveAmount currencyID="USD">83.4000</cbc:TaxExclusiveAmount>

<cbc:TaxInclusiveAmount currencyID="USD">100.0800</cbc:TaxInclusiveAmount>

<cbc:PayableAmount currencyID="USD">100.0800</cbc:PayableAmount>

</cac:LegalMonetaryTotal>

La balise CategoryCode (voir Début du fichier - Généralités) peut avoir deux valeurs :

En fonction de cette valeur, la balise PayableAmount doit toujours être inférieure ou égale à TaxInclusiveAmount.

Balise Règles
TaxExclusiveAmount currencyID="???"

Devise (en dur dans la balise) et valeur du montant hors taxe.

Le signe du montant est inversé s'il s'agit d'un avoir (dans Akuiteo, un avoir est négatif alors qu'il est positif dans Chorus).

TaxInclusiveAmount currencyID="???"

Devise (en dur dans la balise) et valeur du montant avec taxe.

Le signe du montant est inversé s'il s'agit d'un avoir (dans Akuiteo, un avoir est négatif alors qu'il est positif dans Chorus).

PayableAmount currencyID="???"

Devise (en dur dans la balise) et valeur du montant des échéances non réglées.

Le signe du montant est inversé s'il s'agit d'un avoir (dans Akuiteo, un avoir est négatif alors qu'il est positif dans Chorus).

: : Lignes

<cac:InvoiceLine>

<cbc:ID>1</cbc:ID>

<cbc:InvoicedQuantity unitCode="EA">1</cbc:InvoicedQuantity>

<cbc:LineExtensionAmount currencyID="USD">

83.4000</cbc:LineExtensionAmount>

<cac:Item>

<cbc:Description>Descriptif de la ligne de facture</cbc:Description>

<cbc:Name>Prestation intellectuelle</cbc:Name>

<cac:ClassifiedTaxCategory>

<cbc:Percent>20</cbc:Percent>

</cac:ClassifiedTaxCategory>

</cac:Item>

<cac:Price>

<cbc:PriceAmount currencyID="USD">83.4000</cbc:PriceAmount>

<cbc:BaseQuantity unitCode="EA">1</cbc:BaseQuantity>

</cac:Price>

</cac:InvoiceLine>

</Invoice>

Balise Règles
ID

Numéro de ligne.

Les lignes sont numérotées par ordre croissant.

InvoicedQuantity Quantité de la ligne, toujours fixée à "1".
LineExtensionAmount currencyID="???"

Devise (en dur dans la balise) et valeur du montant de la ligne.

Le signe du montant est inversé s'il s'agit d'un avoir (dans Akuiteo, un avoir est négatif alors qu'il est positif dans Chorus).

Item > Description Suite du libellé de la ligne, tronquée à 1000 caractères.
Item > Name Libellé de la ligne, tronqué à 40 caractères.
Item > ClassifiedTaxCategory > Percent Taux de taxe.
Price > PriceAmount currencyID="???"

Devise (en dur dans la balise) et valeur du montant de la ligne (prix unitaire).

Le signe du montant est inversé s'il s'agit d'un avoir (dans Akuiteo, un avoir est négatif alors qu'il est positif dans Chorus).

Price > BaseQuantity Quantité associée au prix unitaire, toujours fixée à "1".