Home / Blog / Tutorials / Odoo + SUNAT 2026 course
TutorialsPeru

Odoo + SUNAT 2026 course for Peruvian SMBs: program, penalties, and real cases

SIRE, GRE, and new CPE validations: what changes in January.
What stock l10n_pe covers, what you configure by hand, and which SMBs the course actually pays off for.

Sergei Filatov
Sergei FilatovFounder · data-metrics.pro · May 26, 2026
◷ 14 min read

One-minute summary

Lima has over 1.5 million registered SMBs, and more than half still close the month with Excel and a Nubefact subscription. That stops working in 2026 — not because SUNAT got "stricter," but because three parallel changes take effect at once and overload any system stitched together by hand.

This guide is the lay of the land before signing up for the Odoo + SUNAT 2026 for SMBs course. It covers what changes at SUNAT in raw numbers, what stock l10n_pe covers, what you have to configure by hand, and the five mistakes SMBs make trying to solve it alone. At the end, a real case of a Lima distributor where 4 weeks of audit cut invoice rejections from 8–12 per month to zero and month-end close from 4.5 days to 1.5.

  • Starting January 1, 2026, SIRE is mandatory for a new wave of PRICO/MEPECO taxpayers. RVIE and RCE replace PLE for VAT operations.
  • Starting February 2026, SUNAT enforces new CPE validations: rejects XML with outdated catalogs.
  • Physical waybills (guía de remisión) are allowed through June 30, 2026. From July 1, only electronic GRE.
  • Penalties tie to the UIT (around S/ 5,350 in 2026). A defective CPE starts at 25% UIT; a bad batch of receipts racks up 5–15 UIT fast.
  • Odoo with l10n_pe covers the invoicing base, but not SIRE export, GRE nuances, or credit notes against imports. That's the course's zone.
  • The course targets SMBs with USD 50k–1M revenue and 50–500 receipts or invoices per month. For a micro-business doing 5 receipts a day, Odoo is overkill — Nubefact and Excel do the job.

What changes at SUNAT in 2026: the regulatory context

SUNAT has been pushing toward fully electronic filing since 2014, but it's only now hitting the gas. Until recently the regulator handed out long transition periods and stacked 2–3 extensions in a row (the latest GRE extension is the clearest example). That phase ends in 2026.

#1. SIRE replaces PLE

The Sistema Integrado de Registros Electrónicos replaces PLE — the tool companies used since 2009 to import and export ledgers. Now the VAT ledgers (Registro de Ventas e Ingresos — RVIE — and Registro de Compras — RCE) are generated by SUNAT, and the company either accepts the proposal or replaces it with corrections. This flips the old "company → PLE → SUNAT" model into "SUNAT → company → confirmation."

!
If the company doesn't open the SIRE portal and react, SUNAT defaults to its own version of the ledger. For PRICO (principal taxpayers) and large MEPECO, SIRE is mandatory from January 2026; everyone else phases in across the year. This is the part that catches accountants used to the quarterly PLE rhythm completely off guard.

#2. New CPE validations from February

SUNAT publishes updated catalogs (51, 52, 17, and others) and tightens XML validation. Documents that cleared in 2025 start getting bounced en masse over trivial errors — outdated operation type code, wrong date format, missing VAT detail on exempt line items. Technically it isn't a "reform" but a tightening. The market effect is the same: PSE providers race to update templates, and companies that build XML by hand from old Excel macros break.

#3. GRE-only from July 1

Physical waybills are allowed through June 30. After that, electronic only. This is critical for anything that moves: wholesale distribution, imports, retail with a central warehouse, transport operators. If your process involves sending a driver out with a stack of physical waybills, you migrate to GRE-issuer or partner with an authorized GRE-carrier.

#4. Penalties: the real cost of getting it wrong

SUNAT ties sanctions to the UIT (Unidad Impositiva Tributaria — around S/ 5,350 in 2026). A few examples from the penalty schedule:

InfractionFirst offenseRepeat
CPE not issued or defective25%–50% UIT per documentUp to 1 UIT
SIRE not filed or with errors0.6% of prior-period net revenueMin 10% UIT, max 25 UIT
Transport without a valid GRE (post Jun 30, 2026)50% UITGoods seizure in extreme cases

One day of defective XML at an average SMB equals 5–15 UIT in penalties. At the current UIT, that's USD 7,000–21,000. In a single batch, on a single day. That's why the course opens by walking through the SUNAT 2026 timeline with regulations and deadlines before touching Odoo.

Odoo configuration step by step for SUNAT 2026

The good news: Odoo with a well-built l10n_pe stack covers 80% of the base. The bad news: the remaining 20% is exactly the edge cases where companies break in production.

#1. Stock modules to install first

  • l10n_pe — chart of accounts, taxes (IGV 18%, exempt IGV, zero-rated), residents and non-residents.
  • l10n_pe_edi — CPE XML generation and integration with an authorized PSE.
  • l10n_pe_edi_stock — electronic waybill (issuer).
  • l10n_pe_pos — point-of-sale link, automatic electronic receipts.
  • account_ediaccount_edi_ubl_cii — general EDI mechanics, UBL format.

#2. What you configure by hand (and what the course pays for)

Six fronts that l10n_pe leaves served but not finished:

  1. PSE certificate. Odoo doesn't issue the CPE directly to SUNAT — you need an authorized PSE (NubeFact, Efact, Sumeria, OSE providers). The course walks through the Odoo ↔ PSE API link, how to test in SUNAT Beta before production, and how to roll back batches when an error code comes back.
  2. Series and numbering. SMBs try to use one F001 series for everything. In practice you need at least four series: invoice (F001), receipt (B001), credit notes (FC01/BC01), issuer waybill (T001). Multiple establishments multiply the series. The course shows the Odoo models per establishment and journal.
  3. Operation types per catalog 51. This is an XML field that determines how SUNAT books the operation. Domestic sale = 0101, export = 0200, collateralized operation = 0210, and so on. Most SMBs leave 0101 on everything and get periodic rejections.
  4. Credit and debit notes. This is where stock Odoo doesn't cover 30% of cases. Credit note on a partial return with VAT recalculation, credit note with reason code 13 (amount correction), debit note for an added penalty — each scenario needs its own reason mapping and link to the original document.
  5. SIRE export. Stock l10n_pe doesn't ship an out-of-the-box module that generates RVIE/RCE in SIRE format. The course shows a custom module that reads account.move and builds the structure for the SIRE API, or the alternative: export to TXT and import via the SIRE portal.
  6. GRE with carrier. If the SMB uses an external carrier, the carrier issues the GRE and the issuer only fills in carrier data. If the SMB transports itself, GRE-issuer. If the scenario varies by order, you need logic in stock.picking that picks the GRE type automatically.

The course doesn't teach Odoo custom development from scratch. It's not a Python/PostgreSQL bootcamp. It assumes Odoo is already running and needs to be stretched to SUNAT 2026. If Odoo isn't deployed yet, start with implementing Odoo for SUNAT compliance and add localization after.

Which SMBs the course works for (and which it doesn't)

Not every company in Peru needs an Odoo + SUNAT course. Three distinct situations, and it pays to spot yours before paying tuition.

#1. When the course works

SMBs with USD 50k–1M annual revenue, 50–500 receipts or 20–200 invoices per month, an in-house accountant or external contador with system access. Odoo already installed (Community 17 or Enterprise 18) or a decision made to migrate from QuickBooks, Defontana, or a home-built system. A warehouse or multiple points of sale — so the GRE question is concrete, not theoretical. In this segment, the course pays for itself in 3–4 months by avoiding 5–15 UIT in penalties and freeing 8–12 hours a week of manual reconciliation.

#2. When the course helps but isn't enough

Companies with USD 1M–5M revenue, multiple RUC numbers (e.g., import + retail), active export operations. The course covers the base, but production also needs IGV credit-balance export tuning, multi-currency invoicing, and intercompany flows across RUC. The course is the foundation; on top of it you layer an Odoo audit or an extended implementation.

#3. When the course doesn't fit at all

Micro-businesses doing 1–5 receipts a day, under USD 50k/year, one person doing everything. Odoo is oversized for them — NubeFact or MiFact plus an Excel sheet does the job. Paying USD 300–800 for a course on a system that costs USD 0–50/month in its cloud alternative makes no financial sense. The same applies at the other end: a large PRICO (revenue above USD 20M) where SUNAT compliance is the job of an entire department doesn't need a course — it needs an audit and an 800+ hour custom development engagement.

Simple filter: look at 2025 annual revenue. Below PEN 200,000, the course is over-engineered. Above PEN 4,000,000, it falls short. Between those numbers is the target zone.

5 common mistakes when configuring Odoo+SUNAT on your own

These mistakes show up in audits of 8 out of 10 SMBs that come in with the complaint "SUNAT isn't working for us." They're standard and predictable. If you find three of five in your setup, you don't need a course — you need an audit consultation first.

#1. Custom XML template instead of l10n_pe

Companies arriving at Odoo from other ERPs sometimes wire in home-built XML generators. It works the first month; then SUNAT updates a catalog and documents get rejected en masse with codes 2000–3000. Tell: PSE logs show rejections referencing "valor inválido en catálogo." Fix: go back to l10n_pe_edi, drop the custom template, port customizations to Python extensions — never to XML templates.

#2. A single series for every document type

The accountant sets up one Sales Journal with F001 series and pushes invoices, receipts, and notes through it. SUNAT starts rejecting one in two documents — because a credit note against a receipt has to go through BC01, not FC01. You see it via error codes 1033/1034. Fix: split journals by document type and issuance point.

#3. Ignoring the "Operation type" field

Catalog 51 shows up in Odoo as an optional dropdown, and many users leave the default 0101 (domestic sale). The problem surfaces with exports (need 0200), free-issue with self-VAT (0401), or warranty operations (0210). SUNAT's ledger books by this field — wrong code means wrong VAT books means a mismatch on the return. Fix: configure product templates with the right default operation_type.

#4. Manual PLE reconciliation through year-end, then panic

SMBs got used to closing PLE once a quarter. SIRE doesn't allow that: ledgers are proposed monthly, and if you skip January, by February SUNAT locks in its version and the company files corrections. After six months, five concurrent corrections and audit exposure. Fix: build a monthly close in Odoo with a hard deadline by the 12th.

#5. Credit notes without reason and reference

In Odoo, creating a return invoice looks like a refund — a standard operation. But for SUNAT every refund is a credit note with a mandatory "reason" field (catalog 9) and a mandatory link to the original document. Without the reason, SUNAT rejects. With the wrong reason it accepts but the note doesn't net against the original on the ledger, and phantom VAT shows up on the return. Fix: customize the refund form in Odoo so reason is required and selected by rules.

Anonymous case: cosmetics distributor in Lima, 4 weeks after audit

Anonymized example from the portfolio. Wholesale cosmetics distributor in Lima, 12 employeesUSD 800,000 annual revenue, ~180 invoices per month + ~40 receipts + ~120 GRE per month (delivery in Lima and provinces).

Pre-audit state. Running Odoo Community 16 with basic l10n_pe (no EDI modules), plus a standalone PSE. XML was generated by a custom template bolted onto Odoo. Every month, 8–12 invoices fell into rejection over catalog errors; the accountant downloaded them manually, fixed them in an external editor, and resubmitted. GRE was half on paper, half loaded directly into the SUNAT portal (no Odoo integration). Month-end close took the accountant 3.5 days plus 1 day from the CFO.

What we did in 4 weeks.

  1. Configuration audit: 14 findings4 critical (wrong operation types on 6 product templates, missing debit-notes journal, wrong refund series, GRE-issuer unconfigured).
  2. Migration from the custom XML template to l10n_pe_edi (Odoo 16 backport, since the 17 upgrade was deferred for other reasons).
  3. GRE-issuer wired up with rules based on stock.picking.type: internal transfers = GRE T001, external = T002 with carrier.
  4. Custom SIRE export: monthly job that generates RVIE and RCE in TXT format for the SIRE portal.
  5. Accountant and CFO training in 2 × 90-minute sessions plus checklist.

Result after 2 months.

  • Invoice rejections: from 8–12/month → 0–1/month.
  • Month-end close time: from 4.5 days → 1.5 days.
  • Penalties on projected SUNAT 2024 audit: were ~4.2 UIT (≈ USD 5,800), now 0.
  • Margin accuracy in financial statements: +9 pp (because unrejected VAT no longer "hangs" in pending documents).

That's the typical profile of what the course delivers: not magic, but a tight procedure and the right modules in the right places. For similar cases across other verticals, see the Chile counterpart on SII compliance.

Month-end stopped being an event. It became a routine from day 8 to day 12, and by day 13 we're reading margins.

Course program and next steps

The Odoo + SUNAT 2026 for SMBs course runs 6 weeks18 video modules + 4 live 90-minute sessions + a PDF checklist + a private Telegram channel for quick questions. Taught by Sergei Filatov — Forbes 30 Under 30 LATAM, working with companies in Peru, Chile, and Colombia; previously led data engineering for Estée Lauder, Aeroflot, and NLMK. The program covers the five sections above plus a dedicated module on SIRE export and GRE with carriers.

i
The course ships through Hotmart at USD 349–549 depending on the season. Versus a custom implementation with an Odoo Gold partner in Peru (USD 4,500–12,000), it works as a primer for teams that want to know what to ask the partner for — it doesn't replace the partner on large projects.

Two steps to take before the course:

Frequently asked questions

Does the course work if I use QuickBooks, Defontana, or a home-built system instead of Odoo?

No. The course is specifically about Odoo configuration. If you're on a different system, solve the migration first; see the Odoo implementation reference to scope the project.

What does the course cost and how does it compare to alternatives?

The course sells through Hotmart at USD 349–549 depending on the season. A custom implementation with an Odoo Gold partner in Peru runs USD 4,500–12,000 depending on scope (see the Odoo Partners Directory).

Reading the l10n_pe docs on your own is free, but averages 80–120 hours of accountant or admin time.

What's the UIT in 2026?

SUNAT publishes the exact 2026 UIT via Supreme Decree in December of each year. In recent years the UIT rose 3–5% steadily: the 2025 UIT was S/ 5,350. The final 2026 value is locked in by course start date; in the course materials, all formulas are recomputed against the current UIT.

If I already have an Odoo partner, do I need the course?

If the partner covers all six items in the "what you configure by hand" section — no. If they cover only the base (l10n_pel10n_pe_edi) and tell you "the rest is on you" — yes. The course closes that gap and gives the accountant an understanding of what the partner should have done.

Can I take the course without an accounting background?

You can, but you'll get less out of it. The course assumes you know what VAT (IGV) is, what the sales ledger is, and the difference between an invoice and a receipt. If accounting is brand new, start with a Peruvian tax fundamentals course and come back after.

Does the course cover GRE for large-scale transport?

It covers GRE-issuer and GRE-carrier within a single company. Large transport scenarios (multi-leg, consolidated, intermodal) are out of scope. They require custom development and usually a separate engagement.

How long does it take to bring Odoo into full SUNAT 2026 compliance after the course?

Student average — 3–5 weeks of 1–2 hours per day. With focus and an available team, 4 weeks is realistic. If another critical operation is running in parallel, plan for 8 weeks.

What happens to electronic invoicing if the PSE goes down?

The taxpayer must issue the CPE within 24 hours of the operation. If the PSE stays down past 24 hours, notify SUNAT via the help desk and switch to contingency issuance. The course walks through how to wire a backup PSE into Odoo for automatic fallback.