Morocco E-Invoicing API Documentation

Keep your software. Just add compliance.

EFact is the electronic invoicing middleware for Morocco's DGI 2026 mandate. It sits between your existing application (ERP, SaaS, line-of-business software) and the Moroccan DGI platform: you send invoice data as JSON, EFact converts it to UBL 2.1 XML, signs it, and tracks clearance. Start with the quickstart, then explore the REST API reference and SDKs.

SDKs & Quickstart

Node.js

Node.js

TypeScript / JavaScript

Quick start
Python

Python

Python 3.9+

Coming soon
Java

Java

JVM / Spring Boot

Coming soon
PHP

PHP

Laravel / Symfony

Coming soon
.NET

.NET

C# / ASP.NET

Coming soon

Complete documentation

GETTING STARTED

  • Quickstart

    First DGI-compliant invoice in minutes: SDK installation, API key, invoice creation.

  • Authentication

    API key authentication (Authorization header), organization scope, key rotation.

  • Testing your integration

    EFact test environment: DGI simulator as default test mode, testable scenarios, and error handling.

API

  • Overview

    REST API overview: resources, invoice lifecycle, statuses, pagination, errors.

  • Invoices

    Create, retrieve, and cancel invoices; JSON input, signed UBL 2.1 XML output.

  • Webhooks

    Receive invoice status changes via webhooks: events, HMAC-SHA256 signature, retries, secret rotation.

SDK

  • Node SDK

    Official Node.js/TypeScript SDK (@itzenata/efact-node): installation, configuration, examples.

  • Python SDK

    Python SDK (efact, PyPI publication in progress): installation, configuration, examples.

PLATFORM

  • Security

    EFact security: encryption, qualified certificates, CNDP Law 09-08 compliance, 10-year archiving.

  • Architecture

    Platform architecture: UBL 2.1 normalization, XAdES signature, transmission, and DGI clearance.