ICE, IF, RC: Complete Guide to Moroccan Tax Identifiers
Understanding Morocco's business tax identifiers - ICE (Identifiant Commun de l'Entreprise), IF (Identifiant Fiscal), and RC (Registre de Commerce). Formats, validation, and compliance requirements.
Hisab Team
Updated 12/9/2025
ICE, IF, RC: Complete Guide to Moroccan Tax Identifiers
Every business operating in Morocco must have several official identifiers for tax and legal purposes. Understanding these numbers is crucial for compliance, invoicing, and official communications. This guide explains everything you need to know.
Overview of Moroccan Tax Identifiers
Morocco uses three primary business identifiers:
| Identifier | Full Name | Purpose | Format |
|---|---|---|---|
| ICE | Identifiant Commun de l'Entreprise | Universal business ID | 15 digits |
| IF | Identifiant Fiscal | Tax administration ID | 8 digits |
| RC | Registre de Commerce | Commercial registration | Variable |
ICE - Identifiant Commun de l'Entreprise
What is ICE?
The ICE (Common Enterprise Identifier) is Morocco's universal business identification number, introduced in 2016 to create a single, unified identifier for all businesses.
ICE Format
The ICE consists of 15 digits divided into three parts:
[000000000] [00000] [00]
└─ 9 digits ─┘└ 5 digits ┘└ 2 digits ┘
Company ID Unit ID Check digits
Example: 001234567000089
ICE Breakdown
| Part | Digits | Description |
|---|---|---|
| Company ID | 1-9 | Unique company identifier |
| Unit ID | 10-14 | Branch or establishment (00000 for main) |
| Check Digits | 15 | Validation checksum |
Where to Find Your ICE
- Tax registration certificate (Attestation d'inscription)
- Commercial register extract
- ICE verification portal: www.ice.gov.ma
ICE on Invoices
The ICE is mandatory on all invoices under Morocco's commercial code. Both supplier and customer ICE must appear on:
- Sales invoices
- Credit notes
- Debit notes
- Quotations (recommended)
IF - Identifiant Fiscal
What is IF?
The IF (Fiscal Identifier) is assigned by the Direction Générale des Impôts (DGI) and is used for all tax-related matters.
IF Format
The IF consists of 8 digits:
12345678
Example: 40678234
IF Usage
The IF is required for:
- Tax declarations (IS, IR, TVA)
- DGI correspondence
- Tax certificates
- E-invoicing submission
- Annual financial statements
Where to Find Your IF
- DGI SIMPL portal account
- Tax registration certificate
- Previous tax returns
- Tax payment receipts
RC - Registre de Commerce
What is RC?
The RC (Commercial Register) is your registration number with the local commercial court (Tribunal de Commerce).
RC Format
The RC format varies by city and includes:
[City Code]-[Number]
Examples:
- Casablanca:
123456orRC-CASA-123456 - Rabat:
RC-RABAT-78901 - Marrakech:
RC-MRK-45678
RC Components
| Component | Description |
|---|---|
| City Code | Tribunal jurisdiction |
| Sequential Number | Registration sequence |
RC Usage
The RC is required for:
- Legal contracts
- Company letterhead
- Official communications
- Bank account opening
- Some invoice requirements
Other Important Identifiers
CNSS Number
| Detail | Description |
|---|---|
| Full Name | Caisse Nationale de Sécurité Sociale |
| Purpose | Social security registration |
| Format | 7-8 digits |
| Usage | Payroll, social declarations |
Patent Number
| Detail | Description |
|---|---|
| Full Name | Taxe Professionnelle |
| Purpose | Local business tax |
| Format | Variable (commune-specific) |
| Usage | Local tax payments, some permits |
TP Number
| Detail | Description |
|---|---|
| Full Name | Taxe Professionnelle (Business Tax) |
| Purpose | Municipal business registration |
| Format | Varies by municipality |
Validation Rules
ICE Validation
To validate an ICE number:
- Length Check: Must be exactly 15 digits
- Numeric Check: Only numbers 0-9
- Unit Check: Digits 10-14 must be valid
- Checksum: Last digit validates the number
// Simple ICE validation
function validateICE(ice) {
// Remove spaces and check length
const clean = ice.replace(/\s/g, '');
if (clean.length !== 15) return false;
// Check if all digits
if (!/^\d{15}$/.test(clean)) return false;
return true;
}
IF Validation
To validate an IF number:
- Length Check: Must be exactly 8 digits
- Numeric Check: Only numbers 0-9
- DGI Registry: Can be verified on SIMPL portal
// Simple IF validation
function validateIF(ifNumber) {
const clean = ifNumber.replace(/\s/g, '');
return /^\d{8}$/.test(clean);
}
Where Each Identifier is Required
| Document/Process | ICE | IF | RC |
|---|---|---|---|
| Sales Invoice | ✅ Required | ✅ Required | ✅ Required |
| Credit Note | ✅ Required | ✅ Required | ✅ Required |
| Tax Declaration | ❌ | ✅ Required | ❌ |
| DGI E-Invoice | ✅ Required | ✅ Required | ✅ Required |
| Quotation | ✅ Recommended | ✅ Recommended | ✅ Recommended |
| Contract | ✅ Required | ❌ | ✅ Required |
| Bank Documents | ✅ Sometimes | ✅ Sometimes | ✅ Required |
Common Issues and Solutions
Issue 1: Customer Doesn't Have ICE
Solution: For individual customers (B2C), you may use:
- National ID (CIN) as alternative
- Or note "Particulier" without ICE
Issue 2: ICE Validation Fails
Common Causes:
- Typo in the number
- Using old/outdated ICE
- Company not yet registered
Solution: Verify on ice.gov.ma
Issue 3: Multiple ICE for One Company
This is normal for:
- Companies with multiple branches
- Different business units
- Separate legal entities within a group
Issue 4: IF Changed After Reorganization
Action Required:
- Update all systems with new IF
- Notify customers and suppliers
- Update DGI records
Getting Your Identifiers
For New Businesses
- Step 1: Register with Tribunal de Commerce → Get RC
- Step 2: Register with DGI → Get IF
- Step 3: ICE is auto-generated after registration
- Step 4: Register with CNSS → Get CNSS number
Timeline
| Step | Timeframe |
|---|---|
| RC Registration | 1-3 days |
| IF Assignment | 1-5 days |
| ICE Generation | Automatic (1-2 days) |
| CNSS Registration | 3-7 days |
How Hisab Handles Tax Identifiers
Hisab makes managing tax identifiers easy:
For Your Company
- Store ICE, IF, RC in organization settings
- Auto-populate on all invoices
- Validation ensures correct format
For Customers
- Customer database stores all identifiers
- Validation on entry prevents errors
- Bulk import with validation
For E-Invoicing
- Automatic inclusion in UBL XML
- DGI-compliant formatting
- Validation before submission
Best Practices
- Verify Before Adding: Always verify customer identifiers on official portals
- Keep Updated: Regularly check for changes
- Store Securely: Treat identifiers as sensitive data
- Validate Automatically: Use software validation
- Train Staff: Ensure team knows identifier requirements
Quick Reference
| Identifier | Format | Where to Find | Verification |
|---|---|---|---|
| ICE | 15 digits | ice.gov.ma | Online portal |
| IF | 8 digits | SIMPL portal | DGI records |
| RC | Variable | Tribunal de Commerce | Court registry |
| CNSS | 7-8 digits | CNSS portal | CNSS records |
Conclusion
Understanding Moroccan tax identifiers is essential for business compliance. The ICE, IF, and RC each serve specific purposes and are required in different contexts. Using a platform like Hisab ensures these identifiers are properly validated and included on all your business documents.
Ready to streamline your invoicing? Start with Hisab and let us handle the compliance details automatically.