json-schema/facture-schema.json

Facture:

Un document DATA-PRISME au format Json permettant de décrire une facture à destination des plateformes de dématérialisation, dont Chorus-Pro.

Definitions

ChargeRemise: object

Indicateur: object , x ∈ { CHARGE , REMISE }

Indique si l’entité porte une charge ou une remise.

CodeMotif: string (up to 3 chars)

Code motif de la charge ou de la remise, format autorisé : doit exister dans le référentiel UN/EDIFACT 4465.

Motif: string (up to 1024 chars)

Texte libre décrivant la raison de la charge ou de la remise.

Montant: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Montant total de la remise ou de la charge appliquée, format autorisé : 19 positions, 6 décimale, séparateur '.'

MontantBase: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Montant sur lequel s’applique la charge ou la remise, format autorisé : 19 positions, 6 décimale, séparateur '.'

DateIntervalle: object

Debut: string (date)

Date de début de la période de facturation, format autorisé : AAAA-MM-JJ

Fin: string (date)

Date de fin de la période de facturation, format autorisé : AAAA-MM-JJ

description: string (up to 1024 chars)

Facture: object

NumeroFacture: string (up to 20 chars)

Identifiant/Numéro de la demande de paiement émise par le Fournisseur (identifiant unique de la facture ou de l’avoir). Caractères autorisés : espace, tiret, plus, underscore et slash.

NumeroFactureOrigine: string (up to 20 chars)

En cas d’ avoir, numéro de la facture sur laquelle l’avoir est applicable.

DateEmission: string (date)

Date de la facture telle que spécifiée par le Fournisseur, format autorisé : AAAA-MM-JJ

DateEcheance: string (date)

Date à laquelle la facture doit être payée.

TypeFacture: object , x ∈ { Facture , Avoir }

Le type permet d’identifier s’il s’agit d’une facture ou d’un avoir

CategorieFacture: object , x ∈ { Standard , Co-traitance , Sous-traitance , Marches-Travaux }

Définit le mode de facturation correspondant à la réalisation des fournitures de biens et de services de la facture ou à leur règlement : Standard Co-traitant, Sous-traitant Marchés de travaux.

PeriodeFacturation:
Devise: string (3 to 3 chars)

Devise à laquelle se rapportent tous les montants de la facture conformément à la référence ISO 4217, euro = EUR

Notes: string[]

Texte(s) libre(s) associé(s) à la facture. Les mentions fiscales légalement obligatoires peuvent être indiquées ici.

string (up to 1024 chars)
MontantsTotal:

regroupement des informations sur les montants totaux

LignesFacturation: object[]
ReferenceContrat: string (up to 50 chars)

Référence le contrat chez le fournisseur.

ReferenceMarche: string (up to 50 chars)

Identifie le Marché (numéro de marché ou numéro de convention) chez le débiteur.

ReferenceCommande: string (up to 50 chars)

Identifie l’Engagement (bon de commande ou numéro de marché exécutable) chez le débiteur

CodeFournisseur: string (up to 255 chars)

Code identifiant le fournisseur.

CodeClient: string (up to 255 chars)

Code identifiant le client.

CodeMoyensDePaiement: string (up to 255 chars)

Code identifiant le moyen de paiement

CodeValidateur: string (up to 255 chars)
ChargesEtRemises: object[]
RecapitulatifTaxes: object[]
PiecesJointes: object[]

Liste des pièces jointes attachées à la présente facture

LigneFacturation: object

NumeroLigne: integer , { x ∈ ℤ | x ≤ 99999 }

Numéro de ligne (séquentiel), format autorisé : incrémentale, max 99999

TypeLigne: object , x ∈ { INFORMATION , DETAIL (default) , REGROUPEMENT }

Le type de ligne permet d’indiquer si la ligne contient des éléments de prix à prendre en compte (DETAIL) dans les totalisations, des données à valeur informative (INFORMATION) ou des sous totaux (REGROUPEMENT), format autorisé : par defaut : DETAIL

Quantite: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Nombre d’unités facturées, format autorisé : 19 positions, 6 décimale, séparateur ' . '

PrixUnitaire: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Prix unitaire (H.T.) avant remise par Unité de Livraison, format autorisé : 19 positions, 6 décimale, séparateur ' . '

MontantHT: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Montant Hors taxe de la ligne après remise , format autorisé : 19 positions, 6 décimale, séparateur ' . '

Note: string (up to 1024 chars)

Description générale de la fourniture ou de la fourniture de biens et de services: zone informative.

CodeArticle: string (up to 40 chars)

Référence, code de l’article ou de la fourniture de biens et de services : zone informative.

Libelle: string (up to 40 chars)

Nom (abrégé ou type) de l’article ou de la fourniture de bien et de services : zone informative.

Description: string[]

Texte(s) complémentaire(s) permettant de détailler le contenu d’une fourniture de biens et de services.

string (up to 1024 chars)
TauxTaxe: number , { x ∈ ℝ | x ≥ 0 }

Taux de TVA applicable. Le taux est exprimé en valeur sans % (ex. 20).

ChargesEtRemises: object[]

MontantsTotal: object

TotalHT: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Montant Total Hors Taxe des fournitures de biens et de services listées dans la facture après remises en ligne éventuelles, format autorisé : 19 positions, 6 décimale, séparateur ' . '

TotalTTC: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Montant Total Toutes Taxes Comprises des fournitures de biens et de services listées dans la facture après remises éventuelles , format autorisé : 19 positions, 6 décimale, séparateur ' . '

TotalAPayer: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Montant à payer, pouvant être inférieur au Montant TTC dans certains cas , format autorisé : 19 positions, 6 décimale, séparateur ' . '

TotalRemises: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Montant Total des remises éventuelles , format autorisé : 19 positions, 6 décimale, séparateur ' . '

TotalCharges: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Montant Total des charges éventuelles portées dans la ou les entités ' remise/charge ' , format autorisé : 19 positions, 6 décimale, séparateur ' . '

TotalDejaPaye: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Montant déjà payé à déduire du Montant TTC, format autorisé : 19 positions, 6 décimale, séparateur ' . '

PieceJointe: object

Nom: string (up to 50 chars) , must match ^PJC_.*$

Le nom du fichier doit commencer par PJC_ et se terminer par l'extension correspondant au format du fichier.

Format: object , x ∈ { BMP , GIF , FAX , ODT , PPT , TIFF , XLS , BZ2 , GZ , JPEG , P7S , RTF , TXT , XML , CSV , GZIP , JPG , PDF , SVG , XHTML , XLSX , DOC , HTM , ODP , PNG , TGZ , XLC , ZIP , DOCX , HTML , ODS , PPS , TIF , XLM , PPTX }
Contenu: string

Le contenu du fichier pièce jointe compressé au format ZIP et encondé en base64.

RecapitulatifTaxe: object

TypeTaxe: string TVA

Type de taxe applicable.

MontantTaxable: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Pour chaque taux de TVA applicable au sein de la facture, Total Hors Taxe des montants facturés associés au taux de TVA considéré , format autorisé : 19 positions, 6 décimale, séparateur '.'

Taux: number

Pour chaque taux de TVA applicable au sein de la facture, taux de TVA considéré, format autorisé : taux exprimé en valeur sans % (ex. 20)

MontantTaxe: string (up to 19 chars) , must match ^\d{1,19}(\.\d{1,6})?$

Pour chaque taux de TVA applicable au sein de la facture, montant total de la TVA appliquée., format autorisé : 19 positions, 6 décimale, séparateur '.'

MotifExoneration: string (up to 1024 chars)

Texte libre pour justifier de l'exonération de taxe.