Skip to Content
  1. Home
  2. Systems
  3. E-invoicing (SUNAT/OSE)

Electronic invoices that come straight from the sale and do not bounce back

We find where your rejections come from, how many times a sale is keyed in and what to change in data, rules or system.

34 questions, result at the end, free of charge.

Stack of invoices and receipts with a calculator
6 dimensionsLevel, gaps and first step when you finish

E-invoicing: definition and use

It is the system that issues digitally signed invoices, receipts, credit and debit notes, and dispatch guides, validated by an OSE and by SUNAT.

When it is well integrated, each document is created from the sale or shipment, and the system checks its status without anyone logging into a portal.

Signs your invoicing needs a review

  • Some documents are rejected or still pending at SUNAT
  • Credit notes go out with the wrong type
  • Dispatch guides fail on district codes or carrier data
  • Void notices return errors
  • Documents are issued in an external tool and then keyed into the ERP
  • Nobody knows which documents never reached the customer

Who it is for and when it does not fit

A good fit for

  • Companies that issue invoices and receipts from the ERP and validate them through an OSE
  • Teams that key in twice: on the issuer portal and in the system
  • Businesses with frequent credit notes, debit notes and delivery guides
  • Companies about to change OSE or ERP version

Not a fit when

  • You issue fewer than ten documents a month: the free SUNAT portal may be enough
  • All sales go through a point of sale with its own issuer already integrated with accounting
  • Rejections come from bad master data: it is fixed before changing issuer

Cost of rejected e-invoices

Every rejection means a note, a call to the customer and a portal check. Work out the cost with your own figures.

Example: two billing assistants at S/ 22 an hour. Replace the values with yours.

Hours a month26 h
Cost a monthS/ 572
Cost a yearS/ 6,859

The estimate shows what the manual task costs today. It is not a savings promise.

How it works in Odoo 20

Document, document type and SUNAT status

In Odoo 20 the invoice carries the Document Type field, for example (01) Invoice, (03) Receipt, (07) Credit note or (08) Debit note, and the Operation Type, such as [0101] Internal sale. The series comes from the journal.

Once posted, the Electronic invoicing field moves from To Send to Sent when the OSE returns the receipt (CDR). Voiding goes through To Cancel and Cancelled, with the reason in the Peruvian e-invoicing tab.

E-document states with SUNAT

  1. Draft
  2. Posted · To Send
  3. Sent (CDR)
  4. To Cancel · Cancelled
Electronic receipt in Odoo 20 with Document Type (03), Operation Type [0101] and the Peruvian e-invoicing tab
Electronic receipt in Odoo 20 with Document Type (03), Operation Type [0101] and the Peruvian e-invoicing tab
Electronic receipt in Odoo 20 with Document Type (03), Operation Type [0101] and the Peruvian e-invoicing tab
Electronic receipt in Odoo 20 with Document Type (03), Operation Type [0101] and the Peruvian e-invoicing tab
Electronic receipt in Odoo 20 with Document Type (03), Operation Type [0101] and the Peruvian e-invoicing tab
Electronic receipt in Odoo 20 with Document Type (03), Operation Type [0101] and the Peruvian e-invoicing tab
Receipt with document and operation type
  1. SUNAT document type
  2. Operation type
  3. OSE submission data
Real screenshot of standard Odoo 20, demo instance with test data.
Customer invoice list in Odoo 20 with F and B series and their status
Customer invoice list in Odoo 20 with F and B series and their status
Customer invoice list in Odoo 20 with F and B series and their status
Customer invoice list in Odoo 20 with F and B series and their status
Customer invoice list in Odoo 20 with F and B series and their status
Customer invoice list in Odoo 20 with F and B series and their status
Documents by series and status
  1. Number with series
Real screenshot of standard Odoo 20, demo instance with test data.
DMG-RT method

The method applied to issuing electronic invoices and receipts

Diego Muñoz leads every assessment: process and data first, then the tool, in short phases you approve.

  1. Sample of rejections

    We take recent rejections and warnings and group them by reason and by source data.

  2. From sale to document

    We follow a sale, a note and a dispatch guide from entry to SUNAT acceptance, counting every time data is keyed in.

  3. Full-case testing

    We test the failing cases in a test environment: notes by reason, voids, guides with carrier data and cancellations.

  4. Plan with one indicator

    We propose the changes to data, rules or system, tied to the rejection rate measured before and after.

See the full method

Deliverables

  • Rejections grouped by reason and by master record
  • Map of re-keying between sale and document
  • Test set covering notes, voids and dispatch guides
  • Change plan with owners and dates

Prerequisites and outputs

Prerequisites

  • Valid digital certificate loaded under Configuration › Peru › Certificates
  • Contract with an OSE or Odoo’s IAP service, with a secondary SOL user
  • Authorised series per journal and document type
  • Customers with a valid RUC or DNI and ubigeo for delivery guides
  • Products with VAT treatment code and SUNAT unit

Outputs: e-documents, CDRs and rejection reports

  • Signed XML and CDR attached to every document
  • Printed PDF version with QR code
  • Sales journal entry at the same time
  • Voiding notice and notes linked to the original document
  • Electronic delivery guide from the inventory delivery

Key settings

Standard Odoo 20 settings that change how the process behaves. They are set during the configuration phase, based on the assessment answers.

  1. Signing provider

    Where Settings › Accounting › Peruvian Electronic Invoicing

    Three options: IAP signs on the company’s behalf without its own certificate; SUNAT and Estela (formerly Digiflow) ask for the SOL user and password and a digital certificate.

  2. Test environment

    Where Settings › Accounting › Peruvian Electronic Invoicing

    Sends to the test service. It is switched on in the test copy before go-live and off in production.

  3. Journals with documents and series

    Where Accounting › Configuration › Journals › Use Documents

    Each sales journal issues its own invoice, receipt and note series. The document type comes from the customer and the journal.

Before
Peruvian e-invoicing block in Odoo 20 Settings with the IAP provider
Peruvian e-invoicing block in Odoo 20 Settings with the IAP provider
After
Peruvian e-invoicing block with the SUNAT provider, SOL credentials and certificate shown
Peruvian e-invoicing block with the SUNAT provider, SOL credentials and certificate shown
Before
Peruvian e-invoicing block in Odoo 20 Settings with the IAP provider
Peruvian e-invoicing block in Odoo 20 Settings with the IAP provider
After
Peruvian e-invoicing block with the SUNAT provider, SOL credentials and certificate shown
Peruvian e-invoicing block with the SUNAT provider, SOL credentials and certificate shown
Before
Peruvian e-invoicing block in Odoo 20 Settings with the IAP provider
Peruvian e-invoicing block in Odoo 20 Settings with the IAP provider
After
Peruvian e-invoicing block with the SUNAT provider, SOL credentials and certificate shown
Peruvian e-invoicing block with the SUNAT provider, SOL credentials and certificate shown
Signing provider: IAP versus SUNATReal screenshots of standard Odoo 20 in the demo instance. The setting was not saved.

What almost nobody uses

Standard features that come installed and are rarely configured. Each one shows where it sits in the menu and in the source code.

  • Catalogue 52 legends

    Where Invoice › Legend Code

    Free transfer, Amazon region sale, itinerant issuer or operation subject to SPOT are printed and sent in the XML.

    Code l10n_pe_edi/​models/​account_move.py:130

  • Credit and debit note reasons

    Where Note › Credit Reason or Debit Reason

    Catalogues 09 and 10 come preloaded. Choosing the right reason avoids rejection for a mistyped note.

    Code l10n_pe_edi/​models/​account_move.py:78

  • Void reason on the document

    Where Invoice › Cancel Reason

    The text travels in the voided-documents summary and stays on the document. Audit finds it without searching emails.

    Code l10n_pe_edi/​models/​account_move.py:86

Online assessment

Assessment dimensions

This analysis reviews the issuing of invoices, receipts, notes and delivery notes, from the order or shipment to the OSE and SUNAT response. The questions describe what the billing area does today with rejections, voids, series, certificate and contingency.

What you receive

When you finish you receive a level per dimension of your electronic issuing and the gaps ordered by priority. Each gap states the first correction you can verify on the following week's documents.

17 scored questions and 12 context questions (type of operation, size, current system). Context questions are not scored: they let us read the result against similar operations.

  1. Issuing from order and shipmentIt looks at whether the document is generated from the order or shipment, without retyping, and how long it takes to be issued.
  2. Tax data on the documentIt looks at whether tax ID, address, district code, unit of measure, series and perception come from validated master data and not from what each billing clerk types.
  3. OSE and SUNAT responseIt looks at whether each document has its receipt confirmation stored and whether flagged and rejected ones are fixed the same day.
  4. Credit notes and void noticesIt looks at whether credit and debit notes and voids follow the type, reason and deadline required by SUNAT, with approval by amount.
  5. Shipment delivery notesIt looks at whether the shipper or carrier delivery note is issued from the shipment with vehicle, driver, origin and destination already recorded.
  6. Issuing continuityIt looks at whether the company can keep issuing when the OSE is down or the digital certificate expires, and whether numbering stays without gaps.

Market options

Issuing can live in your ERP or with a specialist provider. We choose based on volume, document types and the systems you already have.

Odoo

Odoo with Peruvian localisation connected to an OSE: invoices, receipts, notes, guides, voids and status checks from the sale.

Odoo 20 technical modules

  • account
  • l10n_pe_edi
  • l10n_pe_edi_stock
  • l10n_pe_edi_pos

We implement it.

Other options

E-invoicing providers and OSEs that connect to the sales system by API, and SUNAT’s free system for low volumes.

  • SEE SUNAT (sistema gratuito)
  • Nubefact
  • Efact
  • Bizlinks
  • Facturador del contribuyente (SFS)

SUNAT-certified issuers and OSEs; the list implies no preference.

Selection criteria

  • OSE certification and CDR response time
  • Contingency plan tested with pending documents
  • Notes and voids without editing the XML by hand
  • Cost per document or per bundle, at your volume

Limits of the standard product

  • Contingency when the OSE or SUNAT does not respond

    How it is handled

    Documents stay To Send and are resent; paper contingency issuance is recorded separately

  • Custom printed layouts

    How it is handled

    The invoice template is adjusted with Studio or a clean add-on

  • Issuing from another sales system

    How it is handled

    It is integrated by API or a single issuer is kept; issuing from two places is not advisable

Peruvian localisation

  • Invoice, receipt, credit and debit notes in UBL 2.1
  • Legends, SPOT and operation type in the XML
  • Shipper electronic delivery guide
  • Withholding certificate with the withholding module

From assessment to implementation

01

Rejection review

Analysis of recent rejections and the data behind them.

02

Implementation with Odoo

Peruvian localisation, OSE connection, series per issuing point, notes, voids and guides.

03

Integration with your ERP

If you issue through an external provider, we connect the sale to issuing so nothing is keyed twice.

04

Testing before a change

Test set to change OSE or version without interrupting issuing.

Diego Muñoz, process and technology consultant
Scope, in Diego’s words

I implement e-invoicing with Odoo and its Peruvian localisation, connected to an OSE: invoices, receipts, credit and debit notes, dispatch guides, voids and status checks. If your invoicing lives in another system, I assess how to connect it to your ERP.

Systems that connect with issuing electronic invoices and receipts

The e-document is built from sales, point of sale or e-commerce data, and its entry flows to accounting and the sales register. The links lead to each system’s assessment.

Before you start

Diagram of systems connected to an ERP

Not necessarily. If the provider works, the job may be to connect it to sales and clean up master data.

The electronic service operator validates each document and reports it to SUNAT. The company contracts one and its system connects to it.

Yes. Changes are tested in a test environment with today’s failing cases before going live.

The online assessment and the 30-minute review are free. Later work is quoted by phase.

Only Diego Muñoz, to prepare the review. They are not shared with third parties.

Start with the online assessment

At the end you see your level and where to start. If you like, we review it in a 30-minute video call with Diego Muñoz.

WhatsApp +51 919 488 260 · damunoz@dmunozgroup.com