nqfs/specification/nqfs-1.0.md

2.4 KiB
Raw Permalink Blame History

NQFS-1.0

1. Objet

La NQFS définit un format simple pour encoder, dans un code QR, les données essentielles dune facture afin de permettre leur ingestion automatique par un ERP ou un logiciel comptable.

2. Portée

La norme couvre :

  • le contenu logique minimal
  • le format JSON
  • le préfixe didentification
  • les règles de validation de base

La norme ne couvre pas :

  • les lignes détaillées de facture
  • les paiements
  • la signature cryptographique
  • la transmission réglementaire
  • larchivage documentaire

3. Préfixe de détection

Le contenu du QR DOIT commencer par :

NQFS:

Le texte qui suit DOIT être un document JSON valide encodé en UTF-8.

4. Champs obligatoires

  • spec
  • supplier_name
  • invoice_number
  • invoice_date
  • currency
  • subtotal
  • tps_rate
  • tps_amount
  • tvq_rate
  • tvq_amount
  • total

5. Champs recommandés

  • supplier_tax_id
  • supplier_email
  • supplier_phone
  • due_date
  • reference
  • description

6. Contraintes

6.1 spec

Chaîne. Exemple : NQFS-1.0

6.2 supplier_name

Chaîne non vide.

6.3 invoice_number

Chaîne non vide.

6.4 invoice_date

Date au format ISO 8601 : YYYY-MM-DD

6.5 due_date

Date au format ISO 8601 : YYYY-MM-DD

6.6 currency

Code alphabétique de devise sur trois caractères. Exemple : CAD

6.7 subtotal

Nombre décimal supérieur ou égal à 0.

6.8 tps_rate

Nombre décimal. Exemple : 0.05

6.9 tps_amount

Nombre décimal supérieur ou égal à 0.

6.10 tvq_rate

Nombre décimal. Exemple : 0.09975

6.11 tvq_amount

Nombre décimal supérieur ou égal à 0.

6.12 total

Nombre décimal supérieur ou égal à 0.

7. Règles de cohérence

  • total DEVRAIT être égal à subtotal + tps_amount + tvq_amount
  • tps_amount DEVRAIT être cohérent avec subtotal × tps_rate
  • tvq_amount DEVRAIT être cohérent avec subtotal × tvq_rate

Une tolérance darrondi de deux cents est acceptable.

8. Exemple

{ "spec": "NQFS-1.0", "supplier_name": "Chezlepro Inc", "supplier_tax_id": "1234567890", "supplier_email": "facturation@chezlepro.ca", "supplier_phone": "+1-450-555-1234", "invoice_number": "INV-2026-00312", "invoice_date": "2026-03-09", "due_date": "2026-04-08", "currency": "CAD", "subtotal": 1000.00, "tps_rate": 0.05, "tps_amount": 50.00, "tvq_rate": 0.09975, "tvq_amount": 99.75, "total": 1149.75, "reference": "BC-2026-0312", "description": "Services informatiques" }