État 9421 en XML pour Simpl-IR — traitements et salaires
L’état 9421 tient dans un seul fichier XML : dix collections, neuf populations de bénéficiaires et l’état récapitulatif des versements. Voici comment ce fichier se fabrique, et ce qui le fait rejeter.
Source : Cahier des charges EDI de la déclaration des traitements et salaires (DTS) V5.1 — Annexe 1, correspondance des balises
- 10
- collections dans un même fichier, dont deux imbriquées.
- 1er mars
- l’échéance réelle (art. 79 du CGI), pas le 31 mars.
- 0
- schéma XSD publié : aucune validation de schéma n’est possible.
Ce que contient le fichier
La racine du document est TraitementEtSalaire. L’en-tête compte 38 balises : identifiant fiscal, raison sociale, dates d’ouverture et de clôture de l’exercice, code commune, numéros CNSS et RC, effectif au 31 décembre ventilé entre permanents, occasionnels et stagiaires, et seize totaux récapitulatifs.
Viennent ensuite dix collections, dans un ordre imposé. Le personnel permanent est la plus lourde — trente balises par salarié, du salaire de base annuel à l’IR prélevé — et porte une collection imbriquée, listElementsExonere. L’état récapitulatif des versements en porte une seconde, listDetailPaiement, qui détaille les quittances mois par mois.
Le tout se sérialise en utf-8, dates en AAAA-MM-JJ, décimales à point. Les entités XML sont échappées : « Dupont & Fils » ne produit pas un fichier invalide.
L’ordre des balises : l’exemple officiel fait foi
Le tableau de l’annexe 1 et l’exemple XML livré par la DGI divergent. L’annexe place listSalariesCFC hors de la balise racine — un artefact de mise en page — alors que l’exemple l’écrit juste après listPersonnelOccasionnel. Les champs de SalarieCFC diffèrent aussi, et dans PersonnelPermanent, numPPR s’intercale entre numCE et numCNSS, contrairement aux autres populations.
Notre règle : l’exemple fait foi, parce que c’est un fichier réellement produit par la DGI. Un ordre de séquence faux se solde par un rejet, même quand toutes les valeurs sont bonnes. Même logique pour les balises d’identité, que l’exemple émet vides — <nom></nom>, <numCE></numCE> — au lieu de les omettre.
Aucun schéma XSD n’est publié pour l’état 9421
L’exemple officiel référence traitementSalaire.xsd. Ce fichier n’est pas dans le paquet d’annexes : sur les 39 schémas diffusés, aucun ne couvre l’état 9421, ni d’ailleurs le relevé de déductions TVA.
Nous n’affichons donc pas de conformité au schéma sur cette déclaration, et ne promettons pas le « zéro rejet ». Ce que nous contrôlons est vérifiable hors ligne : structure, balises obligatoires, types, référentiels fermés, cohérence des montants, et douze règles propres à cette déclaration. Le portail vérifie en plus votre situation fiscale — période close, déclaration déjà déposée — que rien ne permet de reproduire à l’extérieur.
ES, CH, SIR — et non les entiers du relevé TVA
Chaque quittance porte un moyen de paiement dans <refMoyenPaiement><code>. Le référentiel de l’état 9421 est alphabétique : ES, CH, SIR. Le relevé de déductions TVA attend un entier de 1 à 7 dans <mp><id>, et aucun des deux cahiers des charges ne signale l’existence de l’autre. Une table écrite pour la TVA et réutilisée pour l’IR produit un rejet sans cause apparente : c’est ce que faisait l’application que nous avons remplacée.
Avant le 1er mars, et un fichier accepté n’est pas une déclaration déposée
L’article 79 du CGI fixe le dépôt « avant le 1er mars » de l’année suivante : dernier jour utile le 28 février, ou le 29 les années bissextiles. Plusieurs calendriers en ligne annoncent le 31 mars — un mois de retard, et la pénalité qui va avec.
Second malentendu : le mode EDI ne dépose rien. Un fichier accepté charge la déclaration à l’état brouillon ; il faut revenir sur Simpl-IR en mode EFI pour la valider. Contrôler un fichier déjà produit ne demande ni compte ni paiement : notre validateur est gratuit, reconnaît l’état 9421 à sa balise racine et travaille entièrement dans le navigateur.
Comment ça se passe
Partez de votre livre de paie
Déposez l’export annuel de votre logiciel de paie, en XLSX, XLS ou CSV. La ligne d’en-tête est repérée même sous un titre et des lignes vides.
Vérifiez la correspondance des colonnes
Ce qui n’est pas reconnu reste sans correspondance plutôt que deviné. Vous corrigez une fois, c’est mémorisé.
Ventilez par population
Chaque salarié rejoint sa collection : permanent, occasionnel, stagiaire, exonéré, CFC, doctorant, bénéficiaire d’options.
Lisez les contrôles avant de générer
Les erreurs bloquent : taux hors période, net supérieur au brut, paiement hors référentiel. Les avertissements ne bloquent jamais.
Générez, déposez, puis validez en mode EFI
Le fichier sort en XML, non compressé — contrairement au relevé de déductions TVA et à la liasse fiscale, qui se déposent zippés. Tant qu’elle n’est pas validée sur le portail, rien n’est déposé.
Deux référentiels de moyens de paiement, à ne pas confondre
La même notion, deux codifications sans rapport — cause de rejet fréquente.
| Déclaration | Balise | Valeurs admises |
|---|---|---|
| État 9421 (Simpl-IR) | <refMoyenPaiement><code> | ES, CH, SIR |
| Relevé de déductions TVA | <mp><id> | Entiers de 1 à 7 |
Les dix collections de l’état 9421
Ordre d’écriture de l’exemple officiel V5.1.
| Balise conteneur | Contenu | Champs |
|---|---|---|
| listPersonnelPermanent | Personnel permanent — listElementsExonere | 30 |
| listPersonnelExonere5725 | Exonérés — art. 247-XXXIII° | 17 |
| listPersonnelExonere | Exonérés — art. 57-20° | 15 |
| listPersonnelOccasionnel | Personnel occasionnel | 9 |
| listSalariesCFC | Salariés au statut CFC | 9 |
| listStagiaires | Stagiaires | 12 |
| listBeneficiaires | Bénéficiaires d’options | 19 |
| listBeneficiairesPlanEpargne | Abondement — plan d’épargne | 11 |
| listDoctorants | Doctorants | 6 |
| listVersements | Versements — listDetailPaiement | 3 |
Neuf populations, pas trois
Aux permanents, occasionnels et stagiaires s’ajoutent les salariés CFC, les doctorants, les deux catégories d’exonérés et les bénéficiaires d’options.
Le référentiel des taux est millésimé
TAS.01.2026 vaut 90 % pour le seul exercice 2026, puis 80 % en 2027 et ainsi de suite jusqu’en 2030 ; TPP.20.2009 est hors vigueur depuis fin 2022. Un référentiel figé casse au 1er janvier.
Un recalcul de l’IR qui ne bloque jamais
L’IR prélevé est comparé au barème appliqué au revenu net imposable, tolérance de 2 % ou 100 dirhams. Le contrôle se tait sous 360 jours : une retenue mensualisée ne se compare pas au barème annuel.
Charges de famille : un point de vigilance
L’annexe 1 intitule nbrReductions « nombre de réductions » et la type Integer ; l’annexe 2 la plafonne à 3 600 dès 2026, ce qui ressemble à un montant. Nous demandons le nombre de personnes à charge, et affichons la valeur émise.
Ce qui fait rejeter un fichier
| Le symptôme | La cause | Le remède |
|---|---|---|
| Fichier refusé sans message exploitable | Un moyen de paiement pris dans le référentiel TVA. | Employer ES, CH ou SIR ; le contrôle est bloquant. |
| Rejet dès l’ouverture du fichier | Esperluette ou chevron dans un nom, non échappés. | L’échappement est systématique. Un fichier produit ailleurs se vérifie dans le validateur gratuit. |
| Le code de taux est refusé | Code de frais professionnels hors période, TAS.90.2021 en 2026. | Prendre le code en vigueur à la clôture ; la liste est filtrée. |
| L’exercice est refusé | L’état 9421 porte sur l’année civile, quelle que soit la clôture. | Renseigner du 1er janvier au 31 décembre de l’année déclarée. |
| Revenu net imposable supérieur au revenu brut | Colonnes inversées à l’import, ou retenue en positif. | Le contrôle bloque et désigne la ligne. |
| Nombre de personnes à charge refusé | Plus de six personnes sur une ligne — le CGI en limite le nombre à six. | Le plafond appliqué est celui de l’année déclarée. |
Questions fréquentes
- Quelle est la date limite de dépôt de l’état 9421 ?
- Avant le 1er mars de l’année suivante (art. 79 du CGI) : le 28 février au plus tard, le 29 les années bissextiles. Plusieurs calendriers indiquent le 31 mars — c’est faux, et cela coûte une pénalité.
- Existe-t-il un schéma XSD pour valider un état 9421 ?
- Non. L’exemple officiel référence traitementSalaire.xsd, fichier non publié : aucun des 39 schémas diffusés ne couvre cette déclaration. Un outil qui y affiche une conformité au schéma affiche ce qu’il n’a pas vérifié.
- Le moyen de paiement, c’est 1 à 7 ou ES, CH, SIR ?
- ES, CH ou SIR pour l’état 9421. Les entiers de 1 à 7 appartiennent au relevé TVA : employer l’un à la place de l’autre produit un rejet.
- Un fichier accepté vaut-il dépôt de la déclaration ?
- Non. Le mode EDI la charge à l’état brouillon ; il faut la valider en mode EFI. C’est le malentendu le plus fréquent sur les téléservices.
- Faut-il compresser le fichier avant de le déposer ?
- Nous produisons un XML non compressé pour l’état 9421 — le cahier des charges n’impose d’archive que pour le relevé de déductions TVA et la liasse fiscale, qui se déposent zippés.
- Le barème IR 2026 est-il intégré ?
- Oui, avec sa base légale : tranches de l’article 73-I du CGI, frais professionnels de l’article 59-I, charges de famille de l’article 74 — relevées à 600 dirhams par personne, plafond 3 600, par la loi de finances 2026.
- Comment traiter un salarié entré ou parti en cours d’année ?
- Sa période en jours est renseignée telle quelle ; le recalcul de contrôle se désactive sous 360 jours, pour ne pas produire un faux positif.
- Les salariés au statut CFC sont-ils gérés ?
- Oui, dans listSalariesCFC : date de demande d’option, dates de recrutement et de fin de service, ancienneté en sociétés CFC, régime d’imposition. Ce dernier reste une saisie libre, faute de référentiel publié.
À lire aussi
- Valider un fichier XML DGI — gratuit, sans compteLe portail dit « fichier non conforme » sans dire où. L’analyse tourne dans votre navigateur.
- Calendrier fiscal et bases légalesL’état 9421 avant le 1er mars, la TVA mensuelle fin du mois suivant.
- Relevé de déductions TVA en XMLL’autre déclaration sans schéma publié, avec son propre référentiel.
- Liasse fiscale en XML — Simpl-ISQuatre modèles, des milliers de codes de cellule, une balise vide obligatoire.
- Registre public des spécificationsChaque version appliquée, sa source DGI, sa date d’entrée en vigueur.
Essayez sur votre propre fichier
30 jours, sans carte bancaire, compte actif immédiatement.