diff --git a/addons/l10n_pe/__manifest__.py b/addons/l10n_pe/__manifest__.py
index 9898a9b3fd8cd88d5e61b2bb9b700f918406265c..ede6dc5f6dff88624542521e76cddaeddef37593 100644
--- a/addons/l10n_pe/__manifest__.py
+++ b/addons/l10n_pe/__manifest__.py
@@ -1,7 +1,7 @@
 # Part of Odoo. See LICENSE file for full copyright and licensing details.
 {
     'name': 'Peru - Accounting',
-    "version": "2.0",
+    "version": "3.0",
     'summary': "PCGE Simplified",
     'category': 'Accounting/Localizations/Account Charts',
     'author': 'Vauxoo, Odoo',
diff --git a/addons/l10n_pe/data/account_tax_data.xml b/addons/l10n_pe/data/account_tax_data.xml
index b5a159812dcb88e60786a5ef370e68e5ef2ee7e1..0de802662db6718c6efbfa2af4bfbec3024e4f93 100644
--- a/addons/l10n_pe/data/account_tax_data.xml
+++ b/addons/l10n_pe/data/account_tax_data.xml
@@ -223,6 +223,124 @@
             }),
         ]"/>
     </record>
+    <record id="sale_tax_igv_18g_ng" model="account.tax.template">
+        <field name="chart_template_id" ref="pe_chart_template"/>
+        <field name="name">18% Gravadas y No Gravadas</field>
+        <field name="description">IGV</field>
+        <field name="l10n_pe_edi_tax_code">1000</field>
+        <field name="l10n_pe_edi_unece_category">S</field>
+        <field name="amount">18.0</field>
+        <field name="type_tax_use">purchase</field>
+        <field name="sequence">1</field>
+        <field name="include_base_amount">1</field>
+        <field name="tax_group_id" ref="tax_group_igv_g_ng"/>
+        <field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'base',
+            }),
+
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'tax',
+                'account_id': ref('chart40117'),
+            }),
+            (0,0, {
+                'factor_percent': 0,
+                'repartition_type': 'tax',
+                'account_id': ref('chart6411'),
+            }),
+
+        ]"/>
+        <field name="refund_repartition_line_ids" eval="[(5, 0, 0),
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'base',
+            }),
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'tax',
+                'account_id': ref('chart40117'),
+            }),
+            (0,0, {
+                'factor_percent': 0,
+                'repartition_type': 'tax',
+                'account_id': ref('chart6411'),
+            }),
+        ]"/>
+    </record>
+    <record id="sale_tax_igv_18_ng" model="account.tax.template">
+        <field name="chart_template_id" ref="pe_chart_template"/>
+        <field name="name">18% No Gravadas</field>
+        <field name="description">IGV NG</field>
+        <field name="l10n_pe_edi_tax_code">1000</field>
+        <field name="l10n_pe_edi_unece_category">S</field>
+        <field name="amount">18.0</field>
+        <field name="type_tax_use">purchase</field>
+        <field name="sequence">1</field>
+        <field name="include_base_amount">1</field>
+        <field name="tax_group_id" ref="tax_group_igv_ng"/>
+        <field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'base',
+            }),
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'tax',
+                'account_id': ref('chart40116'),
+            }),
+
+        ]"/>
+        <field name="refund_repartition_line_ids" eval="[(5, 0, 0),
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'base',
+            }),
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'tax',
+                'account_id': ref('chart40116'),
+            }),
+        ]"/>
+    </record>
+    <record id="purchase_tax_exp_0" model="account.tax.template">
+        <field name="chart_template_id" ref="pe_chart_template"/>
+        <field name="name">0% EXP</field>
+        <field name="description">EXP</field>
+        <field name="l10n_pe_edi_tax_code">9995</field>
+        <field name="l10n_pe_edi_unece_category">S</field>
+        <field name="amount">0</field>
+        <field name="type_tax_use">purchase</field>
+        <field name="sequence">1</field>
+        <field name="include_base_amount">1</field>
+        <field name="tax_group_id" ref="tax_group_exp"/>
+        <field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'base',
+            }),
+
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'tax',
+                'account_id': ref('chart40115'),
+            }),
+
+        ]"/>
+        <field name="refund_repartition_line_ids" eval="[(5, 0, 0),
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'base',
+            }),
+
+            (0,0, {
+                'factor_percent': 100,
+                'repartition_type': 'tax',
+                'account_id': ref('chart40115'),
+            }),
+        ]"/>
+    </record>
     <record id="purchase_tax_exo" model="account.tax.template">
         <field name="chart_template_id" ref="pe_chart_template"/>
         <field name="name">0% Exonerated</field>
diff --git a/addons/l10n_pe/data/account_tax_group_data.xml b/addons/l10n_pe/data/account_tax_group_data.xml
index 25646feb9f9b731290763f80d76919d112fcd7eb..51893c5bbe1bc44e3e040bd20b97f407420c06c3 100644
--- a/addons/l10n_pe/data/account_tax_group_data.xml
+++ b/addons/l10n_pe/data/account_tax_group_data.xml
@@ -5,6 +5,16 @@
             <field name="sequence">0</field>
             <field name="country_id" ref="base.pe"/>
         </record>
+        <record id="tax_group_igv_g_ng" model="account.tax.group">
+            <field name="name">IGV GyNG</field>
+            <field name="sequence">0</field>
+            <field name="country_id" ref="base.pe"/>
+        </record>
+        <record id="tax_group_igv_ng" model="account.tax.group">
+            <field name="name">IGV NG</field>
+            <field name="sequence">0</field>
+            <field name="country_id" ref="base.pe"/>
+        </record>
         <record id="tax_group_ivap" model="account.tax.group">
             <field name="name">IVAP</field>
             <field name="sequence">0</field>
@@ -50,5 +60,9 @@
             <field name="sequence">0</field>
             <field name="country_id" ref="base.pe"/>
         </record>
+        <record id="tax_group_ret" model="account.tax.group">
+            <field name="name">RET</field>
+            <field name="sequence">100</field>
+        </record>
     </data>
 </odoo>
diff --git a/addons/l10n_pe/data/l10n_latam_document_type_data.xml b/addons/l10n_pe/data/l10n_latam_document_type_data.xml
index 97c3821b9bf5ac60c01c99d8587ed4bf3ec07808..589f5ac7d41bb66c4d2fe3c0ed716c96b85152c5 100644
--- a/addons/l10n_pe/data/l10n_latam_document_type_data.xml
+++ b/addons/l10n_pe/data/l10n_latam_document_type_data.xml
@@ -9,6 +9,15 @@
         <field name='doc_code_prefix'>F</field>
         <field name='internal_type'>invoice</field>
     </record>
+    <record model='l10n_latam.document.type' id='document_type03'>
+        <field name='sequence'>10</field>
+        <field name='code'>02</field>
+        <field name='report_name'>Recibo por Honorarios</field>
+        <field name='name'>Recibo por Honorarios</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>R</field>
+        <field name='internal_type'>invoice</field>
+    </record>
     <record model='l10n_latam.document.type' id='document_type02'>
         <field name='sequence'>20</field>
         <field name='code'>03</field>
@@ -18,6 +27,33 @@
         <field name='doc_code_prefix'>B</field>
         <field name='internal_type'>invoice</field>
     </record>
+    <record model='l10n_latam.document.type' id='document_type04'>
+        <field name='sequence'>20</field>
+        <field name='code'>04</field>
+        <field name='report_name'>Liquidación de compra</field>
+        <field name='name'>Liquidación de compra</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>L</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type05'>
+        <field name='sequence'>20</field>
+        <field name='code'>05</field>
+        <field name='report_name'>Boletos de Transporte Aéreo que emiten las Compañías de Aviación Comercial por el servicio de transporte aéreo regular de pasajeros, emitido de manera manual, mecanizada o por medios electrónicos (BME)</field>
+        <field name='name'>Boletos de Transporte Aéreo que emiten las Compañías de Aviación Comercial por el servicio de transporte aéreo regular de pasajeros, emitido de manera manual, mecanizada o por medios electrónicos (BME)</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>B</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type06'>
+        <field name='sequence'>20</field>
+        <field name='code'>06</field>
+        <field name='report_name'>Carta de porte aéreo por el servicio de transporte de carga aérea</field>
+        <field name='name'>Carta de porte aéreo por el servicio de transporte de carga aérea</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>C</field>
+        <field name='internal_type'>invoice</field>
+    </record>
     <record model='l10n_latam.document.type' id='document_type07'>
         <field name='sequence'>40</field>
         <field name='code'>07</field>
@@ -54,6 +90,96 @@
         <field name='doc_code_prefix'>B</field>
         <field name='internal_type'>debit_note</field>
     </record>
+    <record model='l10n_latam.document.type' id='document_type10'>
+        <field name='sequence'>50</field>
+        <field name='code'>10</field>
+        <field name='report_name'>Recibo por Arrendamiento</field>
+        <field name='name'>Recibo por Arrendamiento</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>R</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type11'>
+        <field name='sequence'>50</field>
+        <field name='code'>11</field>
+        <field name='report_name'>Póliza emitida por las Bolsas de Valores, Bolsas de Productos o Agentes de Intermediación por operaciones realizadas en las Bolsas de Valores o Productos o fuera de las mismas, autorizadas por SMV</field>
+        <field name='name'>Póliza emitida por las Bolsas de Valores, Bolsas de Productos o Agentes de Intermediación por operaciones realizadas en las Bolsas de Valores o Productos o fuera de las mismas, autorizadas por SMV</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>P</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type12'>
+        <field name='sequence'>50</field>
+        <field name='code'>12</field>
+        <field name='report_name'>Ticket o cinta emitido por máquina registradora</field>
+        <field name='name'>Ticket o cinta emitido por máquina registradora</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>T</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type13'>
+        <field name='sequence'>50</field>
+        <field name='code'>13</field>
+        <field name='report_name'>Documentos emitidos por las empresas del sistema financiero y de seguros, y por las cooperativas de ahorro y crédito no autorizadas a captar recursos del público, que se encuentren bajo el control de la Superintendencia de Banca, Seguros y AFP.</field>
+        <field name='name'>Documentos emitidos por las empresas del sistema financiero y de seguros, y por las cooperativas de ahorro y crédito no autorizadas a captar recursos del público, que se encuentren bajo el control de la Superintendencia de Banca, Seguros y AFP.</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type14'>
+        <field name='sequence'>50</field>
+        <field name='code'>14</field>
+        <field name='report_name'>Recibo por servicios públicos de suministro de energía eléctrica, agua, teléfono, telex y telegráficos y otros servicios complementarios que se incluyan en el</field>
+        <field name='name'>Recibo por servicios públicos de suministro de energía eléctrica, agua, teléfono, telex y telegráficos y otros servicios complementarios que se incluyan en el</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>R</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type15'>
+        <field name='sequence'>50</field>
+        <field name='code'>15</field>
+        <field name='report_name'>Boletos emitidos por el servicio de transporte terrestre regular urbano de pasajeros y el ferroviario público de pasajeros prestado en vía férrea local.</field>
+        <field name='name'>Boletos emitidos por el servicio de transporte terrestre regular urbano de pasajeros y el ferroviario público de pasajeros prestado en vía férrea local.</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>B</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type16'>
+        <field name='sequence'>50</field>
+        <field name='code'>16</field>
+        <field name='report_name'>Boletos de viaje emitidos por las empresas de transporte nacional de pasajeros, siempre que cuenten con la autorización de la autoridad competente, en las rutas autorizadas. Vía terrestre o ferroviario público no emitido por medios electrónicos (BVME)</field>
+        <field name='name'>Boletos de viaje emitidos por las empresas de transporte nacional de pasajeros, siempre que cuenten con la autorización de la autoridad competente, en las rutas autorizadas. Vía terrestre o ferroviario público no emitido por medios electrónicos (BVME)</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>B</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type17'>
+        <field name='sequence'>50</field>
+        <field name='code'>17</field>
+        <field name='report_name'>Documento emitido por la Iglesia Católica por el arrendamiento de bienes inmuebles</field>
+        <field name='name'>Documento emitido por la Iglesia Católica por el arrendamiento de bienes inmuebles</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type18'>
+        <field name='sequence'>50</field>
+        <field name='code'>18</field>
+        <field name='report_name'>Documento emitido por las Administradoras Privadas de Fondo de Pensiones que se encuentran bajo la supervisión de la Superintendencia de Banca, Seguros y AFP</field>
+        <field name='name'>Documento emitido por las Administradoras Privadas de Fondo de Pensiones que se encuentran bajo la supervisión de la Superintendencia de Banca, Seguros y AFP</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type19'>
+        <field name='sequence'>50</field>
+        <field name='code'>19</field>
+        <field name='report_name'>Boleto o entrada por atracciones y espectáculos públicos</field>
+        <field name='name'>Boleto o entrada por atracciones y espectáculos públicos</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>B</field>
+        <field name='internal_type'>invoice</field>
+    </record>
     <record model='l10n_latam.document.type' id='document_type20'>
         <field name='sequence'>60</field>
         <field name='code'>20</field>
@@ -63,6 +189,150 @@
         <field name='doc_code_prefix'>R</field>
         <field name='internal_type'/>
     </record>
+    <record model='l10n_latam.document.type' id='document_type21'>
+        <field name='sequence'>60</field>
+        <field name='code'>21</field>
+        <field name='report_name'>Conocimiento de embarque por el servicio de transporte de carga marítima</field>
+        <field name='name'>Conocimiento de embarque por el servicio de transporte de carga marítima</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>B</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type22'>
+        <field name='sequence'>60</field>
+        <field name='code'>22</field>
+        <field name='report_name'>Comprobante por Operaciones No Habituales</field>
+        <field name='name'>Comprobante por Operaciones No Habituales</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>C</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type23'>
+        <field name='sequence'>60</field>
+        <field name='code'>23</field>
+        <field name='report_name'>Pólizas de Adjudicación emitidas con ocasión del remate o adjudicación de bienes por venta forzada, por los martilleros o las entidades que rematen o subasten bienes por cuenta de terceros</field>
+        <field name='name'>Pólizas de Adjudicación emitidas con ocasión del remate o adjudicación de bienes por venta forzada, por los martilleros o las entidades que rematen o subasten bienes por cuenta de terceros</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>C</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type24'>
+        <field name='sequence'>60</field>
+        <field name='code'>24</field>
+        <field name='report_name'>Certificado de pago de regalías emitidas por PERUPETRO S.A</field>
+        <field name='name'>Certificado de pago de regalías emitidas por PERUPETRO S.A</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>C</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type25'>
+        <field name='sequence'>60</field>
+        <field name='code'>25</field>
+        <field name='report_name'>Documento de Atribución (Ley del Impuesto General a las Ventas e Impuesto Selectivo al Consumo, Art. 19º, último párrafo, R.S. N° 022-98-SUNAT).</field>
+        <field name='name'>Documento de Atribución (Ley del Impuesto General a las Ventas e Impuesto Selectivo al Consumo, Art. 19º, último párrafo, R.S. N° 022-98-SUNAT).</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type26'>
+        <field name='sequence'>60</field>
+        <field name='code'>26</field>
+        <field name='report_name'>Recibo por el Pago de la Tarifa por Uso de Agua Superficial con fines agrarios y por el pago de la Cuota para la ejecución de una determinada obra o actividad acordada por la Asamblea General de la Comisión de Regantes o Resolución expedida por el Jefe de la Unidad de Aguas y de Riego (Decreto Supremo N° 003-90-AG, Arts. 28 y 48)</field>
+        <field name='name'>Recibo por el Pago de la Tarifa por Uso de Agua Superficial con fines agrarios y por el pago de la Cuota para la ejecución de una determinada obra o actividad acordada por la Asamblea General de la Comisión de Regantes o Resolución expedida por el Jefe de la Unidad de Aguas y de Riego (Decreto Supremo N° 003-90-AG, Arts. 28 y 48)</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>R</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type27'>
+        <field name='sequence'>60</field>
+        <field name='code'>27</field>
+        <field name='report_name'>Seguro Complementario de Trabajo de Riesgo</field>
+        <field name='name'>Seguro Complementario de Trabajo de Riesgo</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>S</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type28'>
+        <field name='sequence'>60</field>
+        <field name='code'>28</field>
+        <field name='report_name'>Documentos emitidos por los servicios aeroportuarios prestados a favor de los pasajeros, mediante mecanismo de etiquetas autoadhesivas.</field>
+        <field name='name'>Documentos emitidos por los servicios aeroportuarios prestados a favor de los pasajeros, mediante mecanismo de etiquetas autoadhesivas.</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type29'>
+        <field name='sequence'>60</field>
+        <field name='code'>29</field>
+        <field name='report_name'>Documentos emitidos por la COFOPRI en calidad de oferta de venta de terrenos, los correspondientes a las subastas públicas y a la retribución de los servicios que presta</field>
+        <field name='name'>Documentos emitidos por la COFOPRI en calidad de oferta de venta de terrenos, los correspondientes a las subastas públicas y a la retribución de los servicios que presta</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type30'>
+        <field name='sequence'>60</field>
+        <field name='code'>30</field>
+        <field name='report_name'>Documentos emitidos por las empresas que desempeñan el rol adquirente en los sistemas de pago mediante tarjetas de crédito y débito, emitidas por bancos e instituciones financieras o crediticias, domiciliados o no en el país.</field>
+        <field name='name'>Documentos emitidos por las empresas que desempeñan el rol adquirente en los sistemas de pago mediante tarjetas de crédito y débito, emitidas por bancos e instituciones financieras o crediticias, domiciliados o no en el país.</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type32'>
+        <field name='sequence'>60</field>
+        <field name='code'>32</field>
+        <field name='report_name'>Documentos emitidos por las empresas recaudadoras de la denominada Garantía de Red Principal a la que hace referencia el numeral 7.6 del artículo 7° de la Ley N° 27133 – Ley de Promoción del Desarrollo de la Industria del Gas Natural</field>
+        <field name='name'>Documentos emitidos por las empresas recaudadoras de la denominada Garantía de Red Principal a la que hace referencia el numeral 7.6 del artículo 7° de la Ley N° 27133 – Ley de Promoción del Desarrollo de la Industria del Gas Natural</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type33'>
+        <field name='sequence'>60</field>
+        <field name='code'>33</field>
+        <field name='report_name'>Manifiesto de Pasajeros</field>
+        <field name='name'>Manifiesto de Pasajeros</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>M</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type34'>
+        <field name='sequence'>60</field>
+        <field name='code'>34</field>
+        <field name='report_name'>Documento del Operador</field>
+        <field name='name'>Documento del Operador</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type35'>
+        <field name='sequence'>60</field>
+        <field name='code'>35</field>
+        <field name='report_name'>Documento del Partícipe</field>
+        <field name='name'>Documento del Partícipe</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type36'>
+        <field name='sequence'>60</field>
+        <field name='code'>36</field>
+        <field name='report_name'>Recibo de Distribución de Gas Natural</field>
+        <field name='name'>Recibo de Distribución de Gas Natural</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>R</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type37'>
+        <field name='sequence'>60</field>
+        <field name='code'>37</field>
+        <field name='report_name'>Documentos que emitan los concesionarios del servicio de revisiones técnicas vehiculares, por la prestación de dicho servicio</field>
+        <field name='name'>Documentos que emitan los concesionarios del servicio de revisiones técnicas vehiculares, por la prestación de dicho servicio</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
     <record model='l10n_latam.document.type' id='document_type40'>
         <field name='sequence'>60</field>
         <field name='code'>40</field>
@@ -72,4 +342,202 @@
         <field name='doc_code_prefix'>P</field>
         <field name='internal_type'/>
     </record>
+    <record model='l10n_latam.document.type' id='document_type41'>
+        <field name='sequence'>70</field>
+        <field name='code'>41</field>
+        <field name='report_name'>Comprobante de Percepción - Venta interna</field>
+        <field name='name'>Comprobante de Percepción - Venta interna</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>C</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type42'>
+        <field name='sequence'>70</field>
+        <field name='code'>42</field>
+        <field name='report_name'>Documentos emitidos por las empresas que desempeñan el rol adquiriente en los sistemas de pago mediante tarjetas de crédito emitidas por ellas mismas</field>
+        <field name='name'>Documentos emitidos por las empresas que desempeñan el rol adquiriente en los sistemas de pago mediante tarjetas de crédito emitidas por ellas mismas</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type43'>
+        <field name='sequence'>70</field>
+        <field name='code'>43</field>
+        <field name='report_name'>Boletos emitidos por las Compañías de Aviación Comercial que prestan servicios de transporte aéreo no regular de pasajeros y transporte aéreo especial de pasajeros.</field>
+        <field name='name'>Boletos emitidos por las Compañías de Aviación Comercial que prestan servicios de transporte aéreo no regular de pasajeros y transporte aéreo especial de pasajeros.</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>B</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type44'>
+        <field name='sequence'>70</field>
+        <field name='code'>44</field>
+        <field name='report_name'>Billetes de lotería, rifas y apuestas. </field>
+        <field name='name'>Billetes de lotería, rifas y apuestas. </field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>B</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type45'>
+        <field name='sequence'>70</field>
+        <field name='code'>45</field>
+        <field name='report_name'>Documentos emitidos por centros educativos y culturales, universidades, asociaciones y fundaciones, en lo referente a actividades no gravadas con tributos administrados por la SUNAT.</field>
+        <field name='name'>Documentos emitidos por centros educativos y culturales, universidades, asociaciones y fundaciones, en lo referente a actividades no gravadas con tributos administrados por la SUNAT.</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type46'>
+        <field name='sequence'>70</field>
+        <field name='code'>46</field>
+        <field name='report_name'>Formulario de Declaración - pago o Boleta de pago de tributos Internos</field>
+        <field name='name'>Formulario de Declaración - pago o Boleta de pago de tributos Internos</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>F</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type48'>
+        <field name='sequence'>70</field>
+        <field name='code'>48</field>
+        <field name='report_name'>Comprobante de Operaciones - Ley N° 29972</field>
+        <field name='name'>Comprobante de Operaciones - Ley N° 29972</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>C</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type49'>
+        <field name='sequence'>70</field>
+        <field name='code'>49</field>
+        <field name='report_name'>Constancia de Depósito - IVAP (Ley 28211)</field>
+        <field name='name'>Constancia de Depósito - IVAP (Ley 28211)</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>C</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type50'>
+        <field name='sequence'>70</field>
+        <field name='code'>50</field>
+        <field name='report_name'>Declaración Única de Aduanas - Importación definitiva</field>
+        <field name='name'>Declaración Única de Aduanas - Importación definitiva</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type51'>
+        <field name='sequence'>70</field>
+        <field name='code'>51</field>
+        <field name='report_name'>Póliza o DUI Fraccionada</field>
+        <field name='name'>Póliza o DUI Fraccionada</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>P</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type52'>
+        <field name='sequence'>70</field>
+        <field name='code'>52</field>
+        <field name='report_name'>Despacho Simplificado - Importación Simplificada</field>
+        <field name='name'>Despacho Simplificado - Importación Simplificada</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type53'>
+        <field name='sequence'>70</field>
+        <field name='code'>53</field>
+        <field name='report_name'>Declaración de Mensajería o Courier</field>
+        <field name='name'>Declaración de Mensajería o Courier</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>D</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type54'>
+        <field name='sequence'>70</field>
+        <field name='code'>54</field>
+        <field name='report_name'>Liquidación de Cobranza</field>
+        <field name='name'>Liquidación de Cobranza</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>L</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type55'>
+        <field name='sequence'>70</field>
+        <field name='code'>55</field>
+        <field name='report_name'>BVME para transporte ferroviario de pasajeros</field>
+        <field name='name'>BVME para transporte ferroviario de pasajeros</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>B</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type56'>
+        <field name='sequence'>70</field>
+        <field name='code'>56</field>
+        <field name='report_name'>Comprobante de pago SEAE</field>
+        <field name='name'>Comprobante de pago SEAE</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>C</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type87'>
+        <field name='sequence'>70</field>
+        <field name='code'>87</field>
+        <field name='report_name'>Nota de Crédito Especial</field>
+        <field name='name'>Nota de Crédito Especial</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>N</field>
+        <field name='internal_type'>credit_note</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type88'>
+        <field name='sequence'>70</field>
+        <field name='code'>88</field>
+        <field name='report_name'>Nota de Débito Especial</field>
+        <field name='name'>Nota de Débito Especial</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>N</field>
+        <field name='internal_type'>debit_note</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type89'>
+        <field name='sequence'>70</field>
+        <field name='code'>89</field>
+        <field name='report_name'>Nota de Ajuste de Operaciones - Ley N° 29972</field>
+        <field name='name'>Nota de Ajuste de Operaciones - Ley N° 29972</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>N</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type91'>
+        <field name='sequence'>70</field>
+        <field name='code'>91</field>
+        <field name='report_name'>Comprobante de No Domiciliado</field>
+        <field name='name'>Comprobante de No Domiciliado</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>C</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type96'>
+        <field name='sequence'>70</field>
+        <field name='code'>96</field>
+        <field name='report_name'>Exceso de crédito fiscal por retiro de bienes</field>
+        <field name='name'>Exceso de crédito fiscal por retiro de bienes</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>E</field>
+        <field name='internal_type'>invoice</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type97'>
+        <field name='sequence'>70</field>
+        <field name='code'>97</field>
+        <field name='report_name'>Nota de Crédito - No Domiciliado</field>
+        <field name='name'>Nota de Crédito - No Domiciliado</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>N</field>
+        <field name='internal_type'>credit_note</field>
+    </record>
+    <record model='l10n_latam.document.type' id='document_type98'>
+        <field name='sequence'>70</field>
+        <field name='code'>98</field>
+        <field name='report_name'>Nota de Débito - No Domiciliado</field>
+        <field name='name'>Nota de Débito - No Domiciliado</field>
+        <field name='country_id' ref='base.pe' />
+        <field name='doc_code_prefix'>N</field>
+        <field name='internal_type'>debit_note</field>
+    </record>
 </odoo>
diff --git a/addons/l10n_pe/demo/account_demo.py b/addons/l10n_pe/demo/account_demo.py
index 289e6ce07e08bddd010160a141a8a1f421b8a9c8..bf874296958f438e31ef73aec7c3638e48dd4b16 100644
--- a/addons/l10n_pe/demo/account_demo.py
+++ b/addons/l10n_pe/demo/account_demo.py
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 
-from odoo import api, models
+from datetime import datetime, timedelta
+from odoo import api, Command, models
 
 
 class AccountChartTemplate(models.Model):
@@ -9,17 +10,141 @@ class AccountChartTemplate(models.Model):
     @api.model
     def _get_demo_data_move(self):
         cid = self.env.company.id
+
+        def _get_tax_by_code(code, type_tax='sale'):
+            taxes = self.env['account.tax'].search([
+                ('company_id', '=', cid), ('type_tax_use', '=', type_tax), ('l10n_pe_edi_tax_code', '=', code)], limit=1)
+            return [Command.set(taxes.ids)]
+
         model, data = super()._get_demo_data_move()
+        ref = self.env.ref
+        last_month_date = datetime.strptime(data[f'{cid}_demo_invoice_1']['invoice_date'], '%Y-%m-%d') - timedelta(days=1)
         if self.env.company.account_fiscal_country_id.code == "PE":
-            document_type = self.env.ref('l10n_pe.document_type01')
-            data[f'{cid}_demo_invoice_1']['l10n_latam_document_type_id'] = document_type.id
-            data[f'{cid}_demo_invoice_1']['l10n_latam_document_number'] = 'FFI-000001'
-            data[f'{cid}_demo_invoice_2']['l10n_latam_document_type_id'] = document_type.id
-            data[f'{cid}_demo_invoice_2']['l10n_latam_document_number'] = 'FFI-000002'
-            data[f'{cid}_demo_invoice_3']['l10n_latam_document_type_id'] = document_type.id
-            data[f'{cid}_demo_invoice_3']['l10n_latam_document_number'] = 'FFI-000003'
-            data[f'{cid}_demo_invoice_followup']['l10n_latam_document_type_id'] = document_type.id
-            data[f'{cid}_demo_invoice_followup']['l10n_latam_document_number'] = 'FFI-000004'
-            data[f'{cid}_demo_invoice_5']['l10n_latam_document_number'] = '1'
-            data[f'{cid}_demo_invoice_equipment_purchase']['l10n_latam_document_number'] = 'INV-000089'
+            data[f'{cid}_demo_invoice_1']['invoice_date'] = last_month_date
+            data[f'{cid}_demo_invoice_1']['l10n_latam_document_number'] = 'FFF-0000001'
+            data[f'{cid}_demo_invoice_1']['invoice_line_ids'] = [
+                Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 25000.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('9997')}),
+            ]
+            data[f'{cid}_demo_invoice_2']['invoice_date'] = last_month_date
+            data[f'{cid}_demo_invoice_2']['l10n_latam_document_number'] = 'FFF-0000002'
+            data[f'{cid}_demo_invoice_2']['invoice_line_ids'] = [
+                Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 12500.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('1000')}),
+                Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 1000.0, 'tax_ids': _get_tax_by_code('9997')}),
+                Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 1500.0, 'tax_ids': _get_tax_by_code('9998')}),
+                Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 12500.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('1000')}),
+            ]
+            data[f'{cid}_demo_invoice_3']['invoice_date'] = last_month_date
+            data[f'{cid}_demo_invoice_3']['l10n_latam_document_type_id'] = ref('l10n_pe.document_type08').id,
+            data[f'{cid}_demo_invoice_3']['l10n_latam_document_number'] = 'NDI-0000001'
+            data[f'{cid}_demo_invoice_3']['invoice_line_ids'] = [
+                Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 12500.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('1000')}),
+                Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 1000.0, 'tax_ids': _get_tax_by_code('9997')}),
+                Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 1500.0, 'tax_ids': _get_tax_by_code('9998')}),
+                Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 12500.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('1000')}),
+            ]
+            data[f'{cid}_demo_invoice_followup']['move_type'] = 'in_invoice'
+            data[f'{cid}_demo_invoice_followup']['partner_id'] = ref('base.res_partner_2').id
+            data[f'{cid}_demo_invoice_followup']['invoice_date'] = last_month_date
+            data[f'{cid}_demo_invoice_followup']['l10n_latam_document_number'] = 'FFF-100001'
+            data[f'{cid}_demo_invoice_followup']['invoice_line_ids'] = [
+                Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 500.0}),
+            ]
+            data[f'{cid}_demo_invoice_5']['partner_id'] = ref('base.res_partner_2').id
+            data[f'{cid}_demo_invoice_5']['invoice_date'] = last_month_date
+            data[f'{cid}_demo_invoice_5']['l10n_latam_document_number'] = 'FFF-100002'
+            data[f'{cid}_demo_invoice_5']['invoice_line_ids'] = [
+                Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 500.0, 'tax_ids': _get_tax_by_code('1000', 'purchase')}),
+            ]
+            igv_gyng_tax = self.env['account.tax'].search([('company_id', '=', cid), ('type_tax_use', '=', 'purchase'), ('tax_group_id.name', '=', 'IGV GyNG')], limit=1)
+            data[f'{cid}_demo_invoice_equipment_purchase']['partner_id'] = ref('base.res_partner_2').id
+            data[f'{cid}_demo_invoice_equipment_purchase']['invoice_date'] = last_month_date
+            data[f'{cid}_demo_invoice_equipment_purchase']['l10n_latam_document_number'] = 'FFF-100003'
+            data[f'{cid}_demo_invoice_equipment_purchase']['invoice_line_ids'] = [
+                Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 500.0, 'quantity': 1, 'tax_ids': [Command.set(igv_gyng_tax.ids)]}),
+            ]
+            data[f'{cid}_demo_invoice_6'] = {
+                'move_type': 'in_invoice',
+                'partner_id': ref('base.res_partner_2').id,
+                'invoice_user_id': ref('base.user_demo').id,
+                'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
+                'invoice_date': last_month_date,
+                'l10n_latam_document_number': 'FFF-100004',
+                'invoice_line_ids': [
+                    Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 500.0, 'quantity': 1, 'tax_ids': _get_tax_by_code('9997', 'purchase')}),
+                    Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 1000.0, 'quantity': 1, 'tax_ids': _get_tax_by_code('1000', 'purchase')}),
+                    Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 1500.0, 'quantity': 2, 'tax_ids': _get_tax_by_code('9996', 'purchase')}),
+                    Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 2000.0, 'quantity': 1, 'tax_ids': _get_tax_by_code('9998', 'purchase')}),
+                    Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 2500.0, 'quantity': 1, 'tax_ids': _get_tax_by_code('1000', 'purchase')}),
+                ],
+            }
+            data[f'{cid}_demo_invoice_7'] = {
+                'move_type': 'in_invoice',
+                'partner_id': ref('base.res_partner_12').id,
+                'invoice_user_id': ref('base.user_demo').id,
+                'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
+                'invoice_date': last_month_date,
+                'l10n_latam_document_number': 'FFF-000005',
+                'l10n_latam_document_type_id': ref('l10n_pe.document_type91').id,
+                'invoice_line_ids': [
+                    Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 25000.0, 'quantity': 3, 'tax_ids': _get_tax_by_code('9995', 'purchase')}),
+                ],
+            }
+            data[f'{cid}_demo_invoice_8'] = {
+                'move_type': 'in_invoice',
+                'partner_id': ref('base.res_partner_12').id,
+                'invoice_user_id': ref('base.user_demo').id,
+                'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
+                'invoice_date': last_month_date,
+                'l10n_latam_document_number': '118-145266',
+                'l10n_latam_document_type_id': ref('l10n_pe.document_type50').id,
+                'invoice_line_ids': [
+                    Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 3, 'quantity': 25000.0, 'tax_ids': _get_tax_by_code('9995', 'purchase')}),
+                ],
+            }
+            data[f'{cid}_demo_invoice_9'] = {
+                'move_type': 'in_invoice',
+                'partner_id': ref('base.res_partner_12').id,
+                'invoice_user_id': ref('base.user_demo').id,
+                'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
+                'invoice_date': last_month_date,
+                'l10n_latam_document_number': 'FFF-100009',
+                'l10n_latam_document_type_id': ref('l10n_pe.document_type91').id,
+                'invoice_line_ids': [
+                    Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 3, 'quantity': 25000.0, 'tax_ids': _get_tax_by_code('9995', 'purchase')}),
+                ],
+            }
+            data[f'{cid}_demo_invoice_10'] = {
+                'move_type': 'out_refund',
+                'partner_id': ref('base.res_partner_12').id,
+                'invoice_user_id': ref('base.user_demo').id,
+                'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
+                'invoice_date': last_month_date,
+                'l10n_latam_document_number': 'CNE-0000001',
+                'invoice_line_ids': [
+                    Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 25000.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('9997')}),
+                ],
+            }
+            data[f'{cid}_demo_invoice_11'] = {
+                'move_type': 'in_refund',
+                'partner_id': ref('base.res_partner_12').id,
+                'invoice_user_id': ref('base.user_demo').id,
+                'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
+                'invoice_date': last_month_date,
+                'l10n_latam_document_number': 'FFF-100005',
+                'invoice_line_ids': [
+                    Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 500.0}),
+                ],
+            }
+            data[f'{cid}_demo_invoice_12'] = {
+                'move_type': 'in_invoice',
+                'partner_id': ref('base.res_partner_12').id,
+                'invoice_user_id': ref('base.user_demo').id,
+                'l10n_latam_document_type_id': ref('l10n_pe.document_type08').id,
+                'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
+                'invoice_date': last_month_date,
+                'l10n_latam_document_number': 'FFF-100006',
+                'invoice_line_ids': [
+                    Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 500.0}),
+                ],
+            }
         return model, data
diff --git a/addons/l10n_pe/models/account_move.py b/addons/l10n_pe/models/account_move.py
index b763cb2875b6934d46326da11fea990c0bb5fb0d..a0a143ed983882158a0338c917277235060efc89 100644
--- a/addons/l10n_pe/models/account_move.py
+++ b/addons/l10n_pe/models/account_move.py
@@ -1,8 +1,37 @@
 # Part of Odoo. See LICENSE file for full copyright and licensing details.
-from odoo import models, fields
+from odoo import api, models, fields
 from odoo.tools.sql import column_exists, create_column
 
 
+class AccountMove(models.Model):
+    _inherit = "account.move"
+
+    def _get_l10n_latam_documents_domain(self):
+        self.ensure_one()
+        result = super()._get_l10n_latam_documents_domain()
+        if self.company_id.country_id.code != "PE" or not self.journal_id.l10n_latam_use_documents:
+            return result
+        if self.journal_id.type == "sale":
+            result.append(("code", "in", ("01", "03", "07", "08", "20", "40")))
+        return result
+
+    @api.onchange('l10n_latam_document_type_id', 'l10n_latam_document_number')
+    def _inverse_l10n_latam_document_number(self):
+        """Inherit to complete the l10n_latam_document_number with the expected 8 characters after that a '-'
+        Example: Change FFF-32 by FFF-00000032, to avoid incorrect values on the reports"""
+        super()._inverse_l10n_latam_document_number()
+        to_review = self.filtered(
+            lambda x: x.journal_id.type == "purchase"
+            and x.l10n_latam_document_type_id.code in ("01", "03", "07", "08")
+            and x.l10n_latam_document_number
+            and "-" in x.l10n_latam_document_number
+            and x.l10n_latam_document_type_id.country_id.code == "PE"
+        )
+        for rec in to_review:
+            number = rec.l10n_latam_document_number.split("-")
+            rec.l10n_latam_document_number = "%s-%s" % (number[0], number[1].zfill(8))
+
+
 class AccountMoveLine(models.Model):
     _inherit = "account.move.line"