Déclaration des délais de paiement en XML — loi 69-21
La déclaration de la loi 69-21 telle que le schéma de la DGI l’exige réellement : trente et une balises par facture, un contrôle facture par facture, et le changement de régime de 2026.
Source : Cahier des charges EDI Délais de paiement V1.0 — annexes 1 à 4
- 31
- balises par facture, aucune omissible : vérifié en retirant chaque balise d’un document complet.
- 4
- déclarations par an dès 2026 au-dessus de 2 MDH de chiffre d’affaires, contre une en 2025.
- 15
- caractères exactement pour l’ICE : le seul endroit du produit où sa longueur bloque la génération.
À compter de 2026, quatre déclarations par an au lieu d’une
Le régime dépend du chiffre d’affaires de l’année précédente. Au-dessus de 50 MDH, le trimestriel s’applique depuis 2023 ; les tranches de 10 à 50 MDH et de 2 à 10 MDH sont entrées au régime annuel, en 2024 et 2025.
Dès 2026, la distinction disparaît : au-dessus de 2 000 000 de dirhams, tout le monde déclare trimestriellement. Une PME qui a déposé une déclaration annuelle au titre de 2025 en dépose quatre au titre de 2026 — et ce sont les deux tranches les plus nombreuses qui basculent.
L’information ne se lit que dans un tableau au milieu d’un guide PDF de la DGI. Notre calendrier la déduit du chiffre d’affaires N-1 du dossier.
Trente et une balises par facture, aucune omissible
La DGI publie ici un schéma XSD, avec la liasse fiscale la seule déclaration pour laquelle elle le fait. Vérifié balise par balise : aucune n’est facultative, ni dans l’en-tête (sept), ni dans une facture (trente et une).
Son propre exemple XML n’en donne que treize et ne valide pas contre ce schéma : il écrit « activite » là où celui-ci attend « activiteNormale ». Le schéma fait foi ; recopier l’exemple produit un fichier rejeté.
Quatre de ces trente et une balises décrivent un contentieux, exigées même sans le moindre litige. C’est probablement pour cela que si peu d’éditeurs proposent ce module.
Le schéma n’admet qu’une facture par déclaration. L’exemple officiel en contient deux
« FactureHorsDelai » ne porte pas d’attribut « maxOccurs » : le défaut XSD étant 1, le schéma n’autorise littéralement qu’une facture par déclaration, quand l’exemple de la même annexe en contient deux. C’est le seul point où nous ne le suivons pas : nous émettons autant de factures que le dossier en compte, et deux tests gardent la contradiction visible.
D’où un contrôle facture par facture : valider le fichier entier le déclarerait invalide dès la deuxième et n’apprendrait rien de la troisième.
L’ICE : quinze caractères, et ici seulement c’est bloquant
Ailleurs, « ICE à 15 chiffres » est chez nous un avertissement : les annexes DGI typent la balise en « String » sans contrainte, et l’exemple officiel porte un ICE à douze chiffres. Bloquer y refuserait des fichiers valides.
Ce schéma-ci impose « minLength=15 » et « maxLength=15 » : un ICE d’une autre longueur y est une erreur bloquante, parce que le dépôt le refusera. C’est le schéma de chaque déclaration qui fait foi, pas une règle générale.
Ce qui se compte, et ce que nous ne chiffrerons pas
L’échéance vaut date d’émission plus délai du secteur : 60 jours par défaut dans le silence des parties, et au plus 120 lorsqu’un accord le prévoit. Les mois de retard se comptent depuis cette échéance ; ce sont eux qui fixent l’indemnité.
Le barème des amendes ne sera pas chiffré ici : il vient de sources secondaires concordantes, pas du Bulletin officiel.
Comment ça se passe
Renseignez le chiffre d’affaires de l’année précédente
Lui seul détermine le régime, donc le nombre de déclarations et leurs dates.
Importez la balance âgée
XLSX, XLS, CSV ou fichier délimité. Sage, Odoo et Ciel sont reconnus à leurs en-têtes ; ailleurs, les colonnes sont détectées. Chaque ligne écartée porte son motif.
Laissez la complétion remplir les trente et une balises
Échéances calculées, mois de retard comptés, bloc judiciaire à zéro. Ce que vous avez saisi n’est jamais écrasé.
Lisez les contrôles, puis générez
Bloquent : ICE hors quinze caractères, montants supérieurs au TTC, période invalide, jugement hors période. Le fichier sort en utf-8.
Déposez sur le téléservice de la DGI
Nous produisons le fichier, nous ne déposons pas à votre place. Le téléchargement passe par une URL signée expirant en quinze minutes ; l’historique garde l’empreinte et la version de spécification.
Régime déclaratif selon le chiffre d’affaires de l’année précédente
Source : guide SIMPL — Délais de paiement (DGI), paragraphe 3.
| Chiffre d’affaires N-1 | 2023 | 2024 | 2025 | Dès 2026 |
|---|---|---|---|---|
| Plus de 50 000 000 MAD | Trimestriel | Trimestriel | Trimestriel | Trimestriel |
| De 10 000 001 à 50 000 000 MAD | — | Annuel | Annuel | Trimestriel |
| De 2 000 001 à 10 000 000 MAD | — | — | Annuel | Trimestriel |
| 2 000 000 MAD ou moins | — | — | — | Non assujetti |
Périodes et dates limites de dépôt
Trimestriel : avant l’expiration du mois qui suit le trimestre. Annuel : avant le 1er avril suivant.
| Période déclarée | Balise periode | Date limite |
|---|---|---|
| 1er trimestre | 1 | 30 avril |
| 2e trimestre | 2 | 31 juillet |
| 3e trimestre | 3 | 31 octobre |
| 4e trimestre | 4 | 31 janvier de l’année suivante |
| Déclaration annuelle | 5 | 31 mars de l’année suivante |
Le régime se déduit, il ne se retient pas
Un chiffre d’affaires N-1 suffit : le calendrier place les quatre trimestres ou l’annuelle, avec leurs dates.
Trente et une balises, remplies une fois
Échéances, compteurs de retard et bloc judiciaire déduits. Rien de vide là où le schéma exige une valeur.
Un contrôle qui dit la vérité
Schéma officiel embarqué, appliqué facture par facture puisqu’il n’en admet qu’une. Trois états de conformité, jamais deux.
L’exposition, en dirhams
Indemnités calculées depuis les mois de retard comptés, amende encourue selon la tranche.
Ce qui fait rejeter un fichier
| Le symptôme | La cause | Le remède |
|---|---|---|
| « Element 'activite': This element is not expected » | Le fichier reprend la balise de l’exemple officiel, inconnue du schéma. | Émettre « activiteNormale », valeur 1 ou 2. |
| Rejet sur l’ICE d’un fournisseur | Le schéma impose quinze caractères ; ailleurs, un ICE plus court passe. | Corriger l’ICE au répertoire fournisseurs. |
| Erreur dès la deuxième facture | « FactureHorsDelai » n’a pas de « maxOccurs » : le schéma n’en admet qu’une. | Contrôler chaque facture isolément : le fichier entier dirait toujours « non conforme ». |
| Balise de facture absente | Trente et une balises par facture, champs judiciaires compris. | Bloc judiciaire à zéro, dates reprises de l’émission. |
| Balise de date vide refusée | Les dates sont typées « xs:date » : vide vaut absent. | Une date réelle en AAAA-MM-JJ, à défaut celle de l’émission. |
| Jugement postérieur à la période | « dateJugementOuvrProc » doit précéder la fin de la période déclarée. | Corriger la date, ou déclarer sur la période du jugement. |
Questions fréquentes
- Qui doit déposer la déclaration des délais de paiement ?
- Toute entreprise dont le chiffre d’affaires de l’année précédente dépasse 2 000 000 de dirhams ; en dessous, aucune obligation déclarative. C’est le chiffre d’affaires N-1 qui commande le régime, pas celui de l’exercice déclaré.
- Je déposais une déclaration par an. Qu’est-ce qui change en 2026 ?
- Le nombre de dépôts : les tranches de 2 à 10 MDH et de 10 à 50 MDH passent de l’annuel au trimestriel — quatre dates limites, quatre arrêtés de balance âgée.
- Pour une télédéclaration « Néant », faut-il une attestation ? Le dépôt est bloqué.
- Ce que dit le schéma : « listeFacturesHorsDelai » et l’unique « FactureHorsDelai » qu’il contient sont obligatoires l’un et l’autre. Le format XML n’offre donc aucune forme pour une déclaration sans facture, et notre génération refuse d’en produire une vide. Ce que nous ignorons : ni le cahier des charges V1.0, ni ses annexes, ni le guide SIMPL ne mentionnent d’attestation. Aucune source officielle sur ce blocage, et nous n’en inventerons pas : la question se pose à la subdivision dont dépend le dossier.
- Peut-on déclarer plusieurs factures dans un même fichier ?
- Nous en émettons autant que nécessaire : c’est le seul point où nous nous écartons du schéma, qui faute de « maxOccurs » n’en admet littéralement qu’une, quand l’exemple de la DGI en contient deux.
- Faut-il remplir les champs judiciaires sans litige ?
- Oui : le schéma les exige pour chaque facture, et une date vide y est refusée comme une balise absente. Montants à zéro, dates reprises de l’émission — le fichier passe et la déclaration reste exacte.
- Comment les mois de retard sont-ils comptés ?
- Depuis la date prévue selon le délai du secteur, à défaut la date convenue. Deux compteurs distincts : la facture impayée court jusqu’à la fin de la période, celle payée en retard s’arrête au paiement.
- Que risque-t-on à ne pas déclarer ?
- Deux choses qui s’additionnent : l’indemnité de retard due au fournisseur et une amende pour défaut de déclaration, fonction de la tranche de chiffre d’affaires. Nous chiffrons l’exposition, mais le barème vient de sources secondaires concordantes, pas du Bulletin officiel : vérifiez-le avant toute décision engageante.
- Un fichier conforme au schéma sera-t-il accepté au dépôt ?
- Le schéma contrôle une forme — balises, ordre, types — pas l’exactitude de vos montants. Notre indicateur a donc trois valeurs et jamais deux : conforme, non conforme, ou aucun schéma publié.
À lire aussi
- Relevé de déductions TVA en XMLMême répertoire fournisseurs, mais l’ICE y est un simple avertissement.
- Liasse fiscale en XML — Simpl-ISL’autre déclaration dont la DGI publie un schéma, et dont les exemples ne valident pas.
- Calendrier fiscal marocainLes échéances de 2026, avec deux dates que la plupart des calendriers donnent fausses.
- Registre public des spécificationsChaque cahier des charges, sa date d’effet, son document DGI archivé.
- Validateur XML DGI, gratuit« Fichier non conforme » : l’outil nomme la balise fautive.
Essayez sur votre propre fichier
30 jours, sans carte bancaire, compte actif immédiatement.