Odoo L10n Compliance

Country-specific Odoo localization: tax configuration, e-invoicing (CFDI, FatturaPA, SAF-T), fiscal reporting, and country chart of accounts setup.

Published by @sickn33 and contributors·0 agent reads / 30d·0 saves·

Odoo Localization & Compliance (l10n)

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

  1. Activate: Mention @odoo-l10n-compliance and specify your country and Odoo version.
  2. Install: Get the exact localization module and configuration steps.
  3. Configure: Receive tax code setup, fiscal position rules, and reporting guidance.

Country Localization Modules

CountryModuleKey Features
🇺🇸 USAl10n_usGAAP CoA, Payroll (ADP bridge), 1099 reporting
🇲🇽 Mexicol10n_mx_ediCFDI 4.0 e-invoicing, SAT integration, IEPS tax
🇪🇸 Spainl10n_esSII real-time VAT, Modelo 303/390, AEAT
🇮🇹 Italyl10n_it_ediFatturaPA XML, SDI submission, reverse charge
🇵🇱 Polandl10n_plSAF-T JPK_FA, VAT-7 return
🇧🇷 Brazill10n_brNF-e, NFS-e, SPED, ICMS/PIS/COFINS
🇩🇪 Germanyl10n_deSKR03/SKR04 CoA, DATEV export, UStVA
🇨🇴 Colombial10n_co_ediDIAN 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.

Bundled with this artifact

2 files

Reference files that ship alongside this artifact. Agents pull these in only when the task needs them.

More on the bench

SKILL0

Zustand Store Ts

Create Zustand stores following established patterns with proper TypeScript types and middleware.

ai-prompt-engineering+3
0
SKILL0

Zoom Automation

Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.

ai-prompt-engineering+3
0
SKILL0

Zoho Crm Automation

Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.

ai-prompt-engineering+3
0