# NQFS-1.0 ## 1. Objet La NQFS définit un format simple pour encoder, dans un code QR, les données essentielles d’une 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 d’identification - 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 - l’archivage 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 d’arrondi 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" }