Aller au contenu

Quel logiciel de facturation est vraiment conforme DGI au Maroc ? Ce qu'on a vérifié dans le code — état vérifié au 29 juillet 2026

Aucun, et aucun ne peut l'être aujourd'hui. Le décret d'application de l'article 145-IX du Code Général des Impôts n'est pas publié, et la spécification technique de la plateforme de la DGI ne l'est pas davantage ; or la conformité au futur régime suppose de s'y connecter. Personne ne peut se conformer à un contrat d'interface qui n'existe pas publiquement — ni Odoo, ni ERPNext, ni Sage, ni SAP, ni un module vendu 289 $ sur une place de marché, ni Magentique.

Ce n'est pas une opinion. Le 29 juillet 2026, nous avons ouvert le code source des solutions les plus citées au Maroc et lu ce qu'elles contiennent réellement. Vous trouverez ci-dessous les fichiers, les commandes pour les relire vous-même, et les dates. Vous trouverez aussi l'aveu d'un éditeur qui vend un module « DGI e-Invoice » et écrit noir sur blanc, sur sa propre fiche produit, que le contrat d'API de production de la DGI « n'est pas encore publié ».

Et une bonne nouvelle, qui est la vraie information de cette page : il existe des logiciels utiles dès aujourd'hui. Simplement, ce qui les rend utiles n'est pas ce que la publicité vous vend.


Pourquoi la question « qui est conforme ? » n'a pas de réponse positive

Le futur régime marocain est un régime dit de clearance : la facture est transmise à une plateforme fiscale qui la valide avant qu'elle ne soit juridiquement valable. Un logiciel conforme doit donc, au minimum, savoir : produire la facture au format structuré exigé, la signer, l'envoyer à la bonne adresse, comprendre la réponse, conserver l'accusé, et bloquer l'émission tant que la validation n'est pas revenue.

Chacune de ces six briques dépend d'un document que la DGI n'a pas publié. Nous avons cherché le 28 juillet 2026 une documentation d'interface, un portail développeurs ou une adresse d'environnement de test, en restreignant la recherche à tax.gov.ma, portail.tax.gov.ma et finances.gov.ma : nous n'en avons trouvé aucun, et les téléservices SIMPL listés sur le portail de la DGI ne comportaient aucun service de facturation électronique entre entreprises. Le 29 juillet, c'est le versant éditeurs que nous avons revérifié — et il pointe dans la même direction, y compris sous la plume des vendeurs.

Tant que ce document ne sort pas, « conforme DGI » est une affirmation invérifiable — par vous, par nous, et par l'éditeur lui-même. C'est la raison pour laquelle cette page ne classe pas les logiciels par conformité, mais par ce qu'ils contiennent vraiment.

Sur l'absence de date et de décret, nous avons documenté la recherche en détail sur notre page consacrée au calendrier.

L'aveu qu'on ne lit nulle part : celui du vendeur

Commençons par le plus parlant, parce qu'il ne vient pas de nous.

Le module Morocco DGI e-Invoice (éditeur Pokutsoft, Odoo 19, 134,99 $) est vendu sur la place de marché officielle d'Odoo. Sa fiche annonce « UBL 2.1 pre-clearance for the DGI 2026 mandate ». Plus bas sur la même page, sous un intertitre Disclosure, on lit ceci — texte relevé le 29/07/2026 sur sa fiche produit :

« We are not an integrator, certified ASP or government intermediary: the DGI's 2026 e-invoicing rollout is phased and its final production clearance API contract is not yet published, so the endpoint defaults reflect the announced pilot hosts and remain fully editable. »

Traduction : nous ne sommes ni intégrateur, ni prestataire certifié, ni intermédiaire de l'administration ; le déploiement 2026 de la DGI est progressif et son contrat d'API de clearance de production n'est pas encore publié, si bien que les adresses par défaut reflètent les serveurs pilotes annoncés et restent entièrement modifiables.

La fiche précise aussi le modèle de fonctionnement : Bring Your Own Key — « Editable sandbox and production DGI endpoints plus your own API token. Nothing is bundled. » Autrement dit : le module ne fournit ni l'adresse de la plateforme, ni les identifiants. Vous devez les apporter. Or ces identifiants ne sont, à ce jour, distribués par aucun canal public de la DGI.

Ce n'est pas une escroquerie, et nous ne le présentons pas comme telle : cet éditeur est, de tous ceux que nous avons lus, le plus honnête du lot, puisqu'il écrit lui-même la limite de son produit. Le problème n'est pas ce module. Le problème est l'écart entre cette phrase, enfouie en bas de fiche en anglais, et le discours des pages commerciales qui promettent un « connecteur direct à la plateforme SIMPL de la DGI ».

Quand le seul vendeur qui dit la vérité la dit en petits caractères, l'acheteur marocain n'a aucune chance.

Odoo : ce que contient réellement le module marocain

Odoo est la solution la plus citée au Maroc. Son code est public. Nous l'avons lu.

Le seul module marocain du dépôt officiel odoo/odoo est l10n_ma. Voici son manifeste intégral, branche 18.0, tel que renvoyé par l'API GitHub le 29/07/2026 (empreinte du fichier : 0e2131c21db53747edf296e25cb41046d39488f3, 742 octets) :

# Part of Odoo. See LICENSE file for full copyright and licensing details.

{
    'name': 'Morocco - Accounting',
    'icon': '/account/static/description/l10n.png',
    'countries': ['ma'],
    'author': 'Odoo SA',
    'category': 'Accounting/Localizations/Account Charts',
    'description': """
This is the base module to manage the accounting chart for Morocco.

This module has been built with the help of Caudigef.
""",
    'depends': [
        'base',
        'account',
    ],
    'auto_install': ['account'],
    'data': [
        'data/account_tax_report_data.xml',
        'views/res_partner_views.xml',
        'views/res_company_views.xml',
    ],
    'demo': [
        'demo/demo_company.xml',
    ],
    'license': 'LGPL-3',
}

Trois lectures immédiates :

  • 'depends': ['base', 'account']. Le module ne s'appuie sur aucune brique d'échange électronique. Un connecteur de facturation électronique dépendrait d'un socle technique — il n'y en a pas.
  • 'license': 'LGPL-3'. Le module est donc disponible dans Odoo Community, gratuitement. Ce n'est pas une fonctionnalité qu'on achète en passant à Enterprise.
  • 'author': 'Odoo SA'. Il est maintenu par l'éditeur lui-même, pas par un tiers. C'est un vrai point fort, et nous y revenons plus bas.

Ce que le module fait vraiment — et c'est plus que ce qu'on lit ailleurs

Nous avons ouvert les quatre fichiers Python du module, pas seulement son manifeste. Ce qu'ils contiennent :

Fichier Ce qu'il fait réellement
models/template_ma.py Charge le plan comptable marocain (comptes pcg_*, codes à 6 chiffres), fixe les taux de TVA par défaut (20 % en vente et en achat) et active le montant de la facture en toutes lettres
data/account_tax_report_data.xml L'état de déclaration de TVA marocain — 139 148 octets, c'est le gros du module
models/res_partner.py Contrôle l'ICE : exactement 15 chiffres, uniquement des chiffres
views/res_partner_views.xml Renomme le champ générique en « ICE » et masque le champ générique pour le Maroc
models/base_document_layout.py Ajoute automatiquement la ligne ICE: … sur l'en-tête de vos documents imprimés

Le contrôle de l'ICE mérite d'être cité intégralement, parce qu'il porte sur un point où les pages marocaines divergent beaucoup :

@api.constrains('company_registry', 'country_id')
def _check_company_registry_ma(self):
    for record in self:
        if record.country_code == 'MA' and record.company_registry and (len(record.company_registry) != 15 or not record.company_registry.isdigit()):
            raise ValidationError(_("ICE number should have exactly 15 digits."))

Le code d'Odoo refuse donc tout ICE qui ne fait pas exactement 15 chiffres, et n'accepte aucun tiret. C'est la même longueur que celle vers laquelle convergent toutes les sources que nous avons trouvées en construisant notre propre validateur.

Une précaution s'impose ici, et elle est la même que sur notre page consacrée aux mentions obligatoires : ceci décrit ce que fait un logiciel, pas ce qu'impose la loi. Le Code Général des Impôts exige que l'ICE figure sur la facture sans en décrire le format ; celui-ci relève du décret n° 2-11-63, que nous n'avons pas pu lire à la source. Nous ne publions donc pas de règle de format : nous constatons qu'un éditeur mondial a codé 15 chiffres, ce qui est une indication sérieuse et non une source de droit. Si vous avez lu quelque part que l'ICE comporte 20 chiffres ou des tirets, cette page ne le confirme pas — et le code d'Odoo non plus.

Ces éléments ne sont pas rien : l'article 145-VIII du Code Général des Impôts impose déjà de porter l'ICE sur les factures. Sur ce point, l10n_ma vous aide à respecter une obligation qui existe aujourd'hui. C'est exactement le genre de conformité qui compte, et personne n'en parle, parce qu'elle ne se vend pas.

Le contrôle de l'ICE est présent, au mot près, sur les branches 17.0, 18.0 et 19.0 : nous avons lu res_partner.py sur les trois, et la condition des 15 chiffres y est rigoureusement identique. Le reste des fichiers, en revanche, diffère légèrement d'une branche à l'autre — les empreintes Git ne coïncident pas : la méthode d'étiquetage du champ, par exemple, absente en 17.0, apparaît dès la 18.0. Nous le précisons parce que « même contrôle » et « mêmes fichiers » ne sont pas la même affirmation, et que seule la première est vraie.

Le contrôle de l'ICE a été introduit par un commit du 4 décembre 2025 intitulé [IMP] account,l10n_ma: Add ICE number to invoicing. C'est aussi la dernière modification du manifeste, ce qui signifie que le module n'a pas bougé entre notre vérification du 28 juillet et celle du 29 juillet 2026.

Ce que le module ne contient pas

Ni format structuré (UBL, CII), ni signature électronique, ni transmission, ni accusé de validation, ni blocage d'émission. Aucun des six éléments listés plus haut.

Et le module qui les porterait n'existe pas. Chez Odoo, les connecteurs nationaux de facturation électronique suivent une convention de nommage : l10n_<pays>_edi. Nous avons donc demandé à l'API GitHub le module l10n_ma_edi sur cinq branches vivantes. Résultat, le 29/07/2026 :

Branche addons/l10n_ma_edi
17.0 404 Not Found
18.0 404 Not Found
19.0 404 Not Found
saas-18.4 404 Not Found
master 404 Not Found

l10n_ma est d'ailleurs, en 18.0, le seul répertoire du dépôt commençant par l10n_ma. Il n'y a pas de module marocain caché ailleurs.

Ce n'est pas qu'Odoo néglige le sujet en général — au contraire. Toujours en 18.0, le dépôt contient 40 répertoires dont le nom correspond à l10n_*edi*. Trente-neuf d'entre eux sont rattachés à un pays (le quarantième est un module de tests générique), et ils couvrent 17 pays : Arabie Saoudite, Croatie, Égypte, Espagne, Grèce, Hongrie, Inde, Italie, Jordanie, Kenya, Malaisie, Pologne, Roumanie, Serbie, Turquie, Taïwan, Vietnam. L'Égypte, la Jordanie et le Kenya en font partie. Le Maroc, non.

Quand un éditeur a construit dix-sept connecteurs nationaux et pas le vôtre, l'explication la plus simple est aussi la bonne : il attend la spécification, comme tout le monde.

La documentation d'Odoo dit la même chose

Sur la page officielle des localisations fiscales d'Odoo 18 (odoo.com/documentation, récupérée le 29/07/2026, HTTP 200) : 43 pays disposent d'une page de documentation dédiée. Le mot « Morocco » y apparaît une seule fois, dans la liste — et il n'est associé à aucun lien.

Autrement dit, l'éditeur ne documente aucune fonctionnalité de facturation électronique marocaine. C'est cohérent avec son code.

Les modules payants de la place de marché

La recherche « morocco » sur apps.odoo.com retourne 17 modules au 29/07/2026. Ceux qui portent sur la facturation électronique DGI :

Module Éditeur Version Odoo Prix affiché
Morocco DGI e-Invoice (l10n_ma_dgi_einvoice) Pokutsoft 19.0 134,99 $
Morocco E-Invoice (DGI) (l10n_ma_einvoice) HMPRO 18.0 289,11 $
Morocco DGI POS Invoice (l10n_ma_dgi_pos) Pokutsoft 19.0 89,01 $
Morocco DGI Inbound (l10n_ma_dgi_inbound) Pokutsoft 19.0 80,00 $
Account SimplTVA Morocco XML Declaration (ds_l10n_ma_account_simpltva) Doing Smart Technologies 18.0 987,21 $

Quatre remarques, dans l'ordre d'importance.

1. Aucun n'est publié par Odoo SA. Ce sont des éditeurs tiers, et nous avons relevé la licence de chacun sur sa fiche le 29/07/2026 : les quatre modules « DGI » sont sous OPL-1, la licence propriétaire d'Odoo. Leur code n'est donc pas auditable de l'extérieur : nous ne pouvons pas vous dire ce qu'ils font réellement, et vous non plus. Une exception mérite d'être signalée, parce qu'elle joue en faveur de son éditeur : le module Account SimplTVA est sous AGPL-3, donc libre — son code, lui, peut être lu.

2. Ils sont vendus contre une spécification non publiée — et le plus disert des éditeurs l'écrit lui-même (voir plus haut). Le prix n'est pas le problème : 135 $ n'est pas une somme. Le problème est le calendrier. Une dépense faite trop tôt se périme ; la même dépense faite après publication ne se périme pas.

3. Attention au contrôle de l'ICE par « clé modulo 97 ». La fiche du module Pokutsoft annonce valider l'ICE avec « the official 15-digit modulo-97 check-key algorithm » — texte relevé le 29/07/2026. Nous avons cherché cet algorithme : nous ne l'avons trouvé dans aucune publication officielle que nous ayons pu atteindre. Nous ne disons pas qu'il est faux ; nous disons qu'une règle de clé de contrôle qualifiée d'« officielle » devrait pouvoir se rattacher à un texte, et que nous n'y sommes pas parvenus. Notez aussi qu'Odoo, dans son propre code cité plus haut, ne contrôle que la longueur et le caractère numérique — pas de clé.

L'enjeu n'est pas théorique. Dans un formulaire de facturation, rejeter à tort l'ICE réel d'un vrai client coûte beaucoup plus cher qu'accepter un ICE malformé : le premier bloque une facture, le second se corrige. Si vous activez un module qui applique ce contrôle, testez-le sur votre base clients existante avant de le laisser barrer la route à une émission.

4. Aucun module de facturation électronique DGI n'est proposé pour Odoo 17. L'offre commence en 18.0 et se concentre en 19.0. Démarrer un projet en Odoo 17 aujourd'hui, c'est se placer hors du seul écosystème qui bouge sur ce sujet.

Le dépôt communautaire dédié au Maroc est vide

Restait une piste : la communauté. L'Odoo Community Association (OCA) maintient un dépôt par pays pour les localisations développées hors de l'éditeur. Celui du Maroc existe — OCA/l10n-morocco, créé le 10 décembre 2015, licence AGPL-3.0, douze branches de 8.0 à 19.0, dernier envoi de code le 30 septembre 2025.

Nous avons listé le contenu de chacune des douze branches le 29/07/2026, en cherchant les répertoires de modules :

branche 8.0   : l10n_ma_state
branche 9.0   : l10n_ma_state
branche 10.0  : l10n_ma_state
branche 11.0  → 16.0 : aucun module (seul un répertoire de packaging, vide de modules)
branche 17.0  : AUCUN module — fichiers de configuration et README uniquement
branche 18.0  : AUCUN module — fichiers de configuration et README uniquement
branche 19.0  : AUCUN module — fichiers de configuration et README uniquement

Le seul module que ce dépôt ait jamais porté est l10n_ma_state, qui se contente de peupler la base avec les douze régions du Maroc. Il s'est arrêté à la branche 10.0, et son manifeste porte 'installable': False — il est marqué non installable dans sa dernière version publiée.

Détail qui achève le tableau : le README de la branche 18.0 affiche encore, au 29/07/2026, le texte que l'OCA remplace automatiquement par la table des modules quand il y en a :

« This part will be replaced when running the oca-gen-addons-table script from OCA/maintainer-tools. »

Ni l'éditeur, ni la communauté n'ont donc publié quoi que ce soit qui relève de la facturation électronique marocaine.

ERPNext : la localisation marocaine n'existe pratiquement pas

ERPNext est l'autre solution libre régulièrement proposée au Maroc. Le produit amont est excellent et très vivant : 37 388 étoiles sur GitHub, dernier envoi de code le 29 juillet 2026 à 10h17 UTC — le jour même de cette vérification. Licence GPL-3.0 pour ERPNext, MIT pour le socle Frappe.

Sa localisation marocaine, en revanche, tient dans un seul fichier. Vérifié le 29/07/2026 via l'API GitHub sur la branche develop :

  • Dans le répertoire des plans comptables vérifiés (verified/) : zéro fichier marocain.
  • Dans le répertoire des plans comptables non vérifiés (unverified/) : un seul fichier, ma_l10n_kzc_temp_chart.json, 83 447 octets.

Son historique complet compte deux commits, et les voici :

2016-05-13T10:26:11Z  Cleaned up chart of accounts
2015-03-03T08:37:21Z  verified chart of accounts

L'unique élément de localisation marocaine d'ERPNext est donc un plan comptable classé « non vérifié », dont le nom de fichier contient littéralement le mot temp, et qui n'a pas été modifié depuis mai 2016 — il y a plus de dix ans.

Deux intégrateurs marocains (Sypr, ERPify) annoncent des localisations ERPNext prêtes à l'emploi — TVA, ICE, CNSS. C'est peut-être vrai. Mais aucun des deux ne publie de dépôt Git public : ces briques sont propriétaires et non auditables. Le paradoxe mérite d'être posé, car il est coûteux : vous choisissez un logiciel libre pour ne pas dépendre d'un fournisseur unique, et vous en dépendez malgré tout, sans réversibilité, parce que la partie marocaine est fermée.

Alors sur quoi choisir, si la conformité ne se juge pas ?

C'est la vraie question, et elle a une réponse. Un logiciel qui vous servira le jour où le décret paraîtra est un logiciel qui, dès aujourd'hui, coche ces six points. Aucun ne dépend de la DGI ; tous se vérifient en une démonstration.

  1. Il vous fait respecter les obligations déjà en vigueur. Numérotation en série continue sans trou ni doublon, ICE du client sur la facture, TVA distincte. C'est l'article 145 du CGI, il s'applique maintenant.
  2. Il tient un champ ICE propre — 15 chiffres, contrôlé, sur le client comme sur votre société. Sans cela, aucun format structuré futur ne pourra être produit.
  3. Il exporte vos factures dans un fichier structuré, sans ressaisie. Peu importe le format aujourd'hui : ce qui compte est que la donnée soit sortie de l'écran et manipulable.
  4. Il vous laisse partir avec vos données. Export complet des clients, factures et écritures, dans un format lisible. C'est votre seule protection contre un mauvais choix.
  5. Il est maintenu par quelqu'un que vous pouvez joindre, avec une version qui suit les mises à jour de l'éditeur amont.
  6. Il ne vous facture pas aujourd'hui une conformité future. Un contrat qui vous fait payer un « module DGI » avant publication de la spécification vous fait payer un pari, pas un produit.

Sur ces six critères, l10n_ma en Odoo Community s'en sort bien pour un coût de licence nul : plan comptable marocain maintenu par l'éditeur, état de TVA, contrôle d'ICE à 15 chiffres, ICE imprimé sur les documents, montant en toutes lettres. C'est un bon outil de facturation marocain. Ce n'est pas un outil de conformité au futur régime, et il ne prétend pas l'être. La distinction est toute la page.

Refaites nos vérifications vous-même

Aucune de ces vérifications ne demande de compétence particulière, et toutes se relisent en quelques minutes. Avec l'outil en ligne de commande de GitHub :

# Le manifeste du module marocain d'Odoo, branche 18.0
gh api "repos/odoo/odoo/contents/addons/l10n_ma/__manifest__.py?ref=18.0" \
  --jq '.content' | base64 -d

# Le contrôle de l'ICE à 15 chiffres
gh api "repos/odoo/odoo/contents/addons/l10n_ma/models/res_partner.py?ref=18.0" \
  --jq '.content' | base64 -d

# Le connecteur de facturation électronique marocain — 404 sur toutes les branches
for b in 17.0 18.0 19.0 master saas-18.4; do
  gh api "repos/odoo/odoo/contents/addons/l10n_ma_edi?ref=$b"
done

# Les connecteurs nationaux qui, eux, existent
gh api "repos/odoo/odoo/contents/addons?ref=18.0" \
  --jq '.[] | select(.type=="dir") | .name' | grep -E '^l10n_.*edi'

# Le dépôt communautaire marocain — aucun module sur les branches en cours
for b in 17.0 18.0 19.0; do
  gh api "repos/OCA/l10n-morocco/contents/?ref=$b" --jq '.[] | select(.type=="dir") | .name'
done

# Le plan comptable marocain d'ERPNext et ses deux commits
gh api "repos/frappe/erpnext/commits?path=erpnext/accounts/doctype/account/chart_of_accounts/unverified/ma_l10n_kzc_temp_chart.json" \
  --jq '.[] | "\(.commit.committer.date)  \(.commit.message | split("\n")[0])"'

Sans ligne de commande, tout se lit aussi dans un navigateur : ouvrez https://github.com/odoo/odoo/tree/18.0/addons/l10n_ma (le module existe), puis https://github.com/odoo/odoo/tree/18.0/addons/l10n_ma_edi (page d'erreur), puis https://github.com/OCA/l10n-morocco en changeant de branche avec le sélecteur en haut à gauche.

Si l'une de ces commandes vous renvoie un jour autre chose que ce que dit cette page, c'est que la situation a changé — et nous voulons le savoir.

La règle vaut pour nous aussi

Une page qui vérifie les autres se doit d'être vérifiable à son tour. Alors disons-le sans détour.

Au 29 juillet 2026, aucun décret d'application de l'article 145-IX du Code Général des Impôts n'a été publié, et aucune spécification technique de la plateforme nationale n'est publique. Il en découle une conséquence qui ne souffre aucune exception : aucune conformité au futur régime n'est vérifiable, pour aucun outil, chez aucun éditeur — Magentique compris.

Si nous vous annoncions demain que nos automatisations sont « conformes à la réforme », nous commettrions exactement l'erreur que cette page documente, et vous auriez raison de nous demander l'URL et la date. Ce que nous pouvons faire, et ce que nous faisons, c'est vous aider à facturer selon les règles déjà en vigueur et à préparer vos données pour le jour où le décret paraîtra. C'est moins vendeur, et c'est déjà beaucoup de travail.

Selon votre statut, il se peut d'ailleurs que vous soyez purement et simplement hors du champ du texte : nous le détaillons statut par statut sur notre page « qui est concerné ».

Ce que cette page n'établit pas

Par discipline, et parce que ces éléments n'ont pas pu être vérifiés à la source :

  • Ce que contient une distribution Odoo Enterprise non publique. Nous avons lu le dépôt public odoo/odoo. Nous ne pouvons ni confirmer ni infirmer ce qu'un dépôt fermé contiendrait. Nous constatons seulement que la documentation publique d'Odoo ne décrit aucune fonctionnalité de facturation électronique marocaine, et que le module public ne contient pas de connecteur.
  • Ce que font réellement les modules payants de la place de marché. Leur code est propriétaire et sans dépôt public. Nous rapportons ce que leurs éditeurs écrivent sur leurs fiches, rien de plus.
  • La qualité du contrôle « modulo 97 » de l'ICE. Nous disons que l'algorithme n'est publié par aucune source officielle que nous ayons trouvée, pas qu'il est faux.
  • Ce que contiennent les localisations marocaines des intégrateurs ERPNext. Faute de dépôt public, nous n'avons rien pu lire.
  • Les cas de Sage, SAP, Divalto ou des solutions marocaines fermées. Leur code n'est pas public : la méthode de cette page ne s'y applique pas. Ce qui vaut pour tous, en revanche, c'est l'absence de spécification publiée.
  • Toute date d'obligation, tout seuil de chiffre d'affaires. Aucun n'est publié.

Mis à jour le 29/07/2026 — un dépôt bouge, cette page est redatée à chaque vérification

État à cette date : le module l10n_ma d'Odoo contient un plan comptable, un état de TVA, un contrôle d'ICE à 15 chiffres et l'impression de l'ICE sur les documents — aucun connecteur, aucun format structuré, aucune signature électronique ; l10n_ma_edi renvoie 404 sur les branches 17.0, 18.0, 19.0, saas-18.4 et master, alors que 17 pays disposent d'un connecteur équivalent ; le Maroc ne dispose d'aucune page de documentation de localisation chez Odoo, contre 43 pays qui en ont une ; le dépôt communautaire OCA/l10n-morocco ne contient aucun module sur les branches 17.0, 18.0 et 19.0 ; la localisation marocaine d'ERPNext se réduit à un plan comptable « non vérifié » inchangé depuis mai 2016 ; aucun décret d'application publié n'a été trouvé, et aucune spécification technique publique de la plateforme nationale non plus — ce que l'éditeur d'un module payant confirme sur sa propre fiche produit.

Nous formulons cela comme une recherche, pas comme une certitude absolue : nous affirmons ne pas l'avoir trouvée, après lecture du dépôt public d'Odoo et de celui de Frappe/ERPNext via l'API GitHub le 29/07/2026, et après recherche restreinte aux domaines officiels (tax.gov.ma, portail.tax.gov.ma, finances.gov.ma) le 28/07/2026. Si vous êtes éditeur et que votre produit contredit cette page, écrivez-nous avec le lien du code ou de la spécification : elle sera corrigée le jour même, et vous serez cité.

Prochaine vérification : au plus tard le 29 août 2026, et immédiatement si la DGI publie ses spécifications techniques. Ce jour-là, cette page dira quel logiciel s'y conforme réellement — en relisant le code, comme aujourd'hui.


Note de méthode

Toutes les vérifications de code ont été faites le 29 juillet 2026 via l'API GitHub, pas via l'interface web : on lit ainsi le contenu exact d'un fichier sur une branche nommée, avec son empreinte, sans dépendre du rendu d'une page. Le manifeste reproduit plus haut est intégral et non retouché ; son empreinte Git est donnée pour que vous puissiez confirmer que nous avons lu le même fichier que vous.

Les branches interrogées sont celles qu'Odoo maintient (17.0, 18.0, 19.0, master) plus une branche de service (saas-18.4), afin qu'on ne puisse pas nous objecter d'avoir regardé au mauvais endroit. Un 404 de l'API GitHub sur un chemin de répertoire signifie que ce répertoire n'existe pas sur cette branche.

Les pages de la place de marché Odoo et de la documentation Odoo ont été récupérées en HTTP le 29/07/2026 ; les citations d'éditeurs sont recopiées telles quelles, en anglais dans le texte, avec notre traduction signalée comme telle. Ce qui n'est pas entre guillemets est notre formulation, pas celle des éditeurs.

Une précision d'honnêteté : cette page corrige et complète notre propre travail, sur trois points.

D'abord, une première lecture faite le 28 juillet décrivait l10n_ma comme « un plan comptable et un état de TVA, rien d'autre ». C'était incomplet : le module contrôle aussi l'ICE et l'imprime sur les documents. Le fichier n'avait pas changé — sa dernière modification date du 4 décembre 2025 —, c'est notre lecture qui était trop rapide.

Ensuite, cette première lecture n'avait pas trouvé le dépôt communautaire OCA/l10n-morocco, qui existe bel et bien. Nous l'avons ouvert le 29 juillet et l'avons ajouté ci-dessus — son contenu, en l'occurrence, ne modifie pas la conclusion.

Enfin, nous avions d'abord écrit que les quatre fichiers Python du module étaient identiques sur les branches 17.0, 18.0 et 19.0. Les empreintes Git montrent que non : c'est le contrôle de l'ICE qui est identique, pas les fichiers. La nuance change peu de choses au fond, mais une page qui reproche aux autres leurs approximations n'a pas le droit d'en laisser passer.

Sources

Code source, lu via l'API GitHub le 29/07/2026

  • Manifeste du module l10n_ma d'Odoo, branche 18.0 (empreinte 0e2131c21db53747edf296e25cb41046d39488f3) — GitHub
  • Contrôle de l'ICE, addons/l10n_ma/models/res_partner.py, branche 18.0 — GitHub
  • Plan comptable et taux de TVA, addons/l10n_ma/models/template_ma.py, branche 18.0 — GitHub
  • Impression de l'ICE, addons/l10n_ma/models/base_document_layout.py, branche 18.0 — GitHub
  • addons/l10n_ma_edi : 404 Not Found sur les branches 17.0, 18.0, 19.0, master et saas-18.4
  • Dépôt communautaire OCA/l10n-morocco (AGPL-3.0) — douze branches listées ; aucun module en 17.0, 18.0 et 19.0 ; l10n_ma_state arrêté en 10.0 et marqué 'installable': False
  • Plan comptable marocain d'ERPNext, branche developGitHub — 83 447 octets, deux commits, le dernier du 13/05/2016
  • Dépôts frappe/erpnext (GPL-3.0) et frappe/frappe (MIT)

Pages d'éditeurs, récupérées le 29/07/2026

Textes et portails officiels

  • Code Général des Impôts 2026, article 145 (III, VIII, IX) — PDF, portail DGI. Le texte a été lu à la source le 29/07/2026 pour notre page sur le calendrier, qui le cite intégralement ; il est repris ici sans nouvelle lecture.
  • Téléservices SIMPL, portail de la DGI — consultés le 28/07/2026, aucun service de facturation électronique B2B
  • Décret n° 2-11-63 instituant l'ICE, Bulletin officiel n° 5952 du 16 juin 2011 — référence du format à 15 chiffres. Référence rapportée, non lue à la source : elle est cohérente avec le contrôle appliqué par le code d'Odoo cité plus haut, qui lui a été vérifié.

Cette page est une information générale, pas un avis juridique, fiscal ou comptable. Pour une décision engageant votre entreprise, faites-la valider par votre expert-comptable.

Magentique

Magentique est un studio d'automatisation IA à Casablanca. Nous relions entre eux les outils que vous utilisez déjà — WhatsApp, votre messagerie, vos fichiers, votre logiciel métier — pour que le travail de recopie disparaisse.

Onze agents sont déjà construits, chacun documenté page par page. Le Classeur, notre service de classement de reçus par WhatsApp, tourne aujourd'hui. Et nos pages de conformité citent le Code Général des Impôts article par article, avec le numéro de page et la date de lecture.

Ce que vous venez de lire est vérifiable ligne à ligne. C'est aussi la façon dont nous travaillons quand vous nous confiez votre facturation.