Odoo Localization & Compliance (l10n)
Selective Reading Rule
Start with:
references/senior-master-standard.md
references/usage-routing.md
references/quality-checklist.md
Then load only the inherited docs, scripts, assets, or examples that match the user's actual task.
Overview
Odoo provides localization modules (l10n_*) for 80+ countries that configure the correct chart of accounts, tax types, and fiscal reporting. This skill helps you install and configure the right localization, set up country-specific e-invoicing (Mexico CFDI, Italy FatturaPA, Poland SAF-T), and ensure fiscal compliance.
When to Use This Skill
- Setting up Odoo for a company in a specific country (Mexico, Italy, Spain, US, etc.).
- Configuring country-required e-invoicing (electronic invoice submission to tax authorities).
- Setting up VAT/GST/IVA tax rules with correct fiscal positions.
- Generating required fiscal reports (VAT return, SAF-T, DIAN report).
How It Works
- Activate: Mention
@odoo-l10n-compliance and specify your country and Odoo version.
- Install: Get the exact localization module and configuration steps.
- Configure: Receive tax code setup, fiscal position rules, and reporting guidance.
Country Localization Modules
| Country |
Module |
Key Features |
| 🇺🇸 USA |
l10n_us |
GAAP CoA, Payroll (ADP bridge), 1099 reporting |
| 🇲🇽 Mexico |
l10n_mx_edi |
CFDI 4.0 e-invoicing, SAT integration, IEPS tax |
| 🇪🇸 Spain |
l10n_es |
SII real-time VAT, Modelo 303/390, AEAT |
| 🇮🇹 Italy |
l10n_it_edi |
FatturaPA XML, SDI submission, reverse charge |
| 🇵🇱 Poland |
l10n_pl |
SAF-T JPK_FA, VAT-7 return |
| 🇧🇷 Brazil |
l10n_br |
NF-e, NFS-e, SPED, ICMS/PIS/COFINS |
| 🇩🇪 Germany |
l10n_de |
SKR03/SKR04 CoA, DATEV export, UStVA |
| 🇨🇴 Colombia |
l10n_co_edi |
DIAN e-invoicing, UBL 2.1 |
Examples
Example 1: Configure Mexico CFDI 4.0
Step 1: Install module
Apps → Search "Mexico" → Install "Mexico - Accounting"
Also install: "Mexico - Electronic Invoicing" (l10n_mx_edi)
Step 2: Configure Company
Settings → Company → [Your Company]
Country: Mexico
RFC: Your RFC number (tax ID)
Company Type: Moral Person or Physical Person
Step 3: Upload SAT Certificates
Accounting → Configuration → Certificates → New
CSD Certificate (.cer file from SAT)
Private Key (.key file from SAT)
Password: Your FIEL password
Step 4: Issue a CFDI Invoice
Create invoice → Confirm → CFDI XML generated automatically
Sent to SAT → Receive UUID (folio fiscal)
PDF includes QR code + UUID for buyer verification
Example 2: EU Intra-Community VAT Setup (Any EU Country)
Menu: Accounting → Configuration → Taxes → New
Tax Name: EU Intra-Community Sales (0%)
Tax Type: Sales
Tax Scope: Services or Goods
Tax Computation: Fixed
Amount: 0%
Tax Group: Intra-Community
Label on Invoice: "Intra-Community Supply - VAT Exempt per Art. 138 VAT Directive"
Fiscal Position (created separately):
Name: EU B2B Intra-Community
Auto-detect: Country Group = Europe + VAT Required = YES
Tax Mapping: Standard VAT Rate → 0% Intra-Community
Example 3: Install and Validate a Localization
# Install via CLI (if module not in Apps)
./odoo-bin -d mydb --stop-after-init -i l10n_mx_edi
# Verify in Odoo:
# Apps → Installed → Search "l10n_mx" → Should show as Installed
Best Practices
- ✅ Do: Install the localization module before creating any accounting entries — it sets up the correct accounts.
- ✅ Do: Use Fiscal Positions to automate tax switching for international customers (B2B vs B2C, domestic vs export).
- ✅ Do: Test e-invoicing in the SAT/tax authority test environment before going live.
- ❌ Don't: Manually create a chart of accounts if a localization module exists for your country.
- ❌ Don't: Mix localization tax accounts with custom accounts — it breaks fiscal reports.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
1---2name: odoo-l10n-compliance3description: ALWAYS use this when the request matches Odoo L10n Compliance: Country-specific Odoo localization: tax configuration, e-invoicing (CFDI, FatturaPA, SAF-T), fiscal reporting, and country chart of accounts setup.4---56# Odoo Localization & Compliance (l10n)78## Selective Reading Rule910Start with:1112- `references/senior-master-standard.md`13- `references/usage-routing.md`14- `references/quality-checklist.md`1516Then load only the inherited docs, scripts, assets, or examples that match the user's actual task.1718## Overview1920Odoo provides localization modules (`l10n_*`) for 80+ countries that configure the correct chart of accounts, tax types, and fiscal reporting. This skill helps you install and configure the right localization, set up country-specific e-invoicing (Mexico CFDI, Italy FatturaPA, Poland SAF-T), and ensure fiscal compliance.2122## When to Use This Skill2324- Setting up Odoo for a company in a specific country (Mexico, Italy, Spain, US, etc.).25- Configuring country-required e-invoicing (electronic invoice submission to tax authorities).26- Setting up VAT/GST/IVA tax rules with correct fiscal positions.27- Generating required fiscal reports (VAT return, SAF-T, DIAN report).2829## How It Works30311. **Activate**: Mention `@odoo-l10n-compliance` and specify your country and Odoo version.322. **Install**: Get the exact localization module and configuration steps.333. **Configure**: Receive tax code setup, fiscal position rules, and reporting guidance.3435## Country Localization Modules3637| Country | Module | Key Features |38|---|---|---|39| 🇺🇸 USA | `l10n_us` | GAAP CoA, Payroll (ADP bridge), 1099 reporting |40| 🇲🇽 Mexico | `l10n_mx_edi` | CFDI 4.0 e-invoicing, SAT integration, IEPS tax |41| 🇪🇸 Spain | `l10n_es` | SII real-time VAT, Modelo 303/390, AEAT |42| 🇮🇹 Italy | `l10n_it_edi` | FatturaPA XML, SDI submission, reverse charge |43| 🇵🇱 Poland | `l10n_pl` | SAF-T JPK_FA, VAT-7 return |44| 🇧🇷 Brazil | `l10n_br` | NF-e, NFS-e, SPED, ICMS/PIS/COFINS |45| 🇩🇪 Germany | `l10n_de` | SKR03/SKR04 CoA, DATEV export, UStVA |46| 🇨🇴 Colombia | `l10n_co_edi` | DIAN e-invoicing, UBL 2.1 |4748## Examples4950### Example 1: Configure Mexico CFDI 4.05152```53Step 1: Install module54 Apps → Search "Mexico" → Install "Mexico - Accounting"55 Also install: "Mexico - Electronic Invoicing" (l10n_mx_edi)5657Step 2: Configure Company58 Settings → Company → [Your Company]59 Country: Mexico60 RFC: Your RFC number (tax ID)61 Company Type: Moral Person or Physical Person6263Step 3: Upload SAT Certificates64 Accounting → Configuration → Certificates → New65 CSD Certificate (.cer file from SAT)66 Private Key (.key file from SAT)67 Password: Your FIEL password6869Step 4: Issue a CFDI Invoice70 Create invoice → Confirm → CFDI XML generated automatically71 Sent to SAT → Receive UUID (folio fiscal)72 PDF includes QR code + UUID for buyer verification73```7475### Example 2: EU Intra-Community VAT Setup (Any EU Country)7677```78Menu: Accounting → Configuration → Taxes → New7980Tax Name: EU Intra-Community Sales (0%)81Tax Type: Sales82Tax Scope: Services or Goods83Tax Computation: Fixed84Amount: 0%85Tax Group: Intra-Community8687Label on Invoice: "Intra-Community Supply - VAT Exempt per Art. 138 VAT Directive"8889Fiscal Position (created separately):90 Name: EU B2B Intra-Community91 Auto-detect: Country Group = Europe + VAT Required = YES92 Tax Mapping: Standard VAT Rate → 0% Intra-Community93```9495### Example 3: Install and Validate a Localization9697```bash98# Install via CLI (if module not in Apps)99./odoo-bin -d mydb --stop-after-init -i l10n_mx_edi100101# Verify in Odoo:102# Apps → Installed → Search "l10n_mx" → Should show as Installed103```104105## Best Practices106107- ✅ **Do:** Install the localization module **before** creating any accounting entries — it sets up the correct accounts.108- ✅ **Do:** Use **Fiscal Positions** to automate tax switching for international customers (B2B vs B2C, domestic vs export).109- ✅ **Do:** Test e-invoicing in the **SAT/tax authority test environment** before going live.110- ❌ **Don't:** Manually create a chart of accounts if a localization module exists for your country.111- ❌ **Don't:** Mix localization tax accounts with custom accounts — it breaks fiscal reports.112113## Limitations114- Use this skill only when the task clearly matches the scope described above.115- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.116- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.