OdooWiki OCA HUB

Paraguay - Accounting Extensions

l10n_py_account folder_open OCA/l10n-paraguay open_in_new
Accounting/Localizations License: LGPL-3

Paraguay - Accounting Extensions

This module extends the base Paraguayan accounting localization with specific functionality required for Paraguayan fiscal compliance.

Features

  • Journal Extensions: Enhanced journal configuration with Paraguayan-specific fields
  • Establishment (punto de expedición)
  • Point of Sale (punto de emisión)
  • Timbrado (tax stamp authorization)
  • Authorization Management: Complete timbrado lifecycle management
  • Authorization number tracking
  • Validity period control
  • Document number range management
  • Automatic sequence generation
  • Account Move Extensions: Enhanced invoice/bill features
  • Automatic timbrado assignment
  • Document number formatting
  • Fiscal validations
  • Fiscal Validations:
  • Valid timbrado verification
  • Document number range validation
  • Expiration date checking

Purpose

This module bridges the gap between Odoo's standard accounting and Paraguayan fiscal requirements, particularly focusing on timbrado management which is mandatory for all fiscal documents in Paraguay.

Dependencies

  • account: Odoo core accounting
  • l10n_py_base: Base Paraguayan localization

auto_awesome What this module does

AI-generated from the code · Odoo 20.0

Manage Paraguayan tax stamp authorizations (timbrados) and automatically number sales invoices and credit notes according to the authorized range, with fiscal validations and SIFEN IVA breakdown fields.

This module adds a new screen for Paraguayan tax stamp authorizations (timbrados) under Accounting Configuration > Paraguay > Timbrados. Each timbrado records the authorization number, validity dates, establishment, expedition point, series, document type and the authorized invoice number range. Odoo automatically shows whether it is valid, about to expire or expired, the next number to use, how many numbers are used and the usage percentage.

On sales journals you can set the establishment, expedition point and the timbrado; Odoo checks that the codes are 3 digits and that the timbrado matches the journal's establishment and point.

On customer invoices and credit notes you select the timbrado. When you confirm the invoice, Odoo assigns the next free number in the authorized range, blocks confirmation if no timbrado is selected, if the timbrado is expired or inactive, if the number is outside the range, or if the range is exhausted. The full number is shown as 001-001-0000001.

A new 'Información Fiscal Paraguay' tab shows the SIFEN IVA breakdown (exempt, 5% and 10% taxed totals, bases and IVA amounts, total operation), the exchange rate, the total in guaraníes and the total in words. Taxes also get an IVA affectation field (taxed, exempt, exonerated, partially taxed).

Depends on

accountl10n_pyl10n_py_basel10n_latam_invoice_document

Required by other modules

Menus it adds

ParaguayTimbrados
Models and fields (5)
  • account.tax · extends an existing modell10n_py_iva_affectation (Afectación IVA (SIFEN))
  • account.move · extends an existing modell10n_py_base_5 (Base Gravada 5% (F018)), l10n_py_base_10 (Base Gravada 10% (F019)), l10n_py_base_total (Total Base Gravada (F020)), l10n_py_amount_iva_5 (Liquidación IVA 5% (F015)), l10n_py_amount_exempt (Total Exento (F003)), l10n_py_amount_iva_10 (Liquidación IVA 10% (F016)), l10n_py_exchange_rate (Tipo de Cambio), l10n_py_invoice_number (Número de Factura), l10n_py_total_operation (Total Operación (F008)), l10n_py_amount_exonerado (Total Exonerado), l10n_py_amount_iva_total (Total IVA (F014)), l10n_py_amount_total_pyg (Total en Guaraníes (F023)), l10n_py_authorization_id (Timbrado), l10n_py_amount_subtotal_5 (Total Gravado 5% (F004)), l10n_py_amount_subtotal_10 (Total Gravado 10% (F005)), l10n_py_amount_total_words (Total en Letras), l10n_py_full_invoice_number (Número Completo)
  • account.journal · extends an existing modell10n_py_point (Punto de Expedición), l10n_py_establishment (Establecimiento), l10n_py_authorization_id (Timbrado), l10n_py_authorization_validity (Vencimiento del Timbrado)
  • account.authorization · new modelname (Número de Timbrado), state (Estado), active (Activo), series (Serie), date_to (Fecha de Vencimiento), date_from (Fecha de Inicio), company_id (Compañía), next_number (Próximo Número), used_numbers (Números Utilizados), establishment (Establecimiento), expedition_point (Punto de Expedición), usage_percentage (Porcentaje de Uso), invoice_number_to (Número Hasta), remaining_numbers (Números Disponibles), invoice_number_from (Número Desde), l10n_latam_document_type_id (Tipo de Documento)
  • account.fiscal.position · extends an existing model

Text generated by AI (DeepSeek) from reading the Odoo 20.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 4 confirmed, 5 with no information of 9 versions.

Sources · Odoo 16.0

Confirmed on 2026-11-03 in branch 16.0 of OCA/l10n-paraguay.

terminal Installation and usage

OCA documentation · Odoo 20.0

Installation

Prerequisites

  • Odoo 16.0
  • account module (core Odoo)
  • l10n_py_base module installed
  • Valid timbrado from SET (for production use)

Installation Steps

  • Install Base Module: Ensure l10n_py_base is installed first
  • Install Module:
  • Go to Apps
  • Click Update Apps List
  • Search for "Paraguay - Accounting Extensions"
  • Click Install
  • Verify Installation: Check that new menus appear:
  • Accounting > Configuration > Timbrados
  • Enhanced journal configuration options

Post-Installation Setup

Step 1: Configure Company

Ensure company fiscal data is complete in l10n_py_base

Step 2: Create First Timbrado

  • Go to Accounting > Configuration > Timbrados
  • Click Create
  • Enter your SET-provided authorization:
  • Authorization number
  • Validity dates
  • Document number range
  • Establishment and point of sale codes

Step 3: Configure Sales Journal

  • Go to Accounting > Configuration > Journals
  • Edit your sales journal
  • Set:
  • Establishment code
  • Point of sale code
  • Link to timbrado
  • Save

Step 4: Test Invoice Creation

  • Create a test invoice
  • Verify document number format: XXX-XXX-NNNNNNN
  • Check timbrado information appears correctly
  • Cancel test invoice if in production

Demo Data

The module includes demo data:

  • Sample timbrados
  • Configured journals

Note: Delete demo data before using in production:

  • Go to Settings > Technical > Database Structure > Demo Data
  • Remove demo timbrados and journal configurations

Configuration Checklist

Before going live:

  • [ ] Company fiscal data complete
  • [ ] Valid timbrado from SET
  • [ ] Timbrado record created in system
  • [ ] Sales journals configured
  • [ ] Purchase journals configured (if needed)
  • [ ] Document number sequences tested
  • [ ] User permissions configured

Required Information from SET

Before you can use this module in production, obtain from SET:

  • Timbrado Number: Authorization number
  • Validity Period: Start and end dates
  • Document Range: From/to numbers authorized
  • Establishment Code: Your establishment code
  • Point of Sale Code: Your point of emission code

Dependencies

This module requires:

  • account: Core accounting functionality
  • l10n_py_base: Paraguayan base localization

Optional Modules

For complete functionality, consider:

  • l10n_py: Paraguayan chart of accounts
  • l10n_py_edi_base: Electronic invoicing

Troubleshooting Installation

Menu Items Not Appearing

If configuration menus don't show:

  • Refresh browser
  • Check user permissions (Accounting / Manager)
  • Verify module is fully installed

Timbrado Fields Not in Journal

If timbrado fields don't appear in journals:

  • Update module
  • Restart Odoo server
  • Clear browser cache

Configuration

Journal Configuration

Configure journals for Paraguayan fiscal documents:

  • Navigate to Accounting > Configuration > Journals
  • Select or create a sales/purchase journal
  • Configure Paraguayan fields:
  • Establishment (Punto de Expedición): e.g., "001"
  • Point of Sale (Punto de Emisión): e.g., "001"
  • Link to active Timbrado

Timbrado (Authorization) Management

Creating a New Timbrado

  • Go to Accounting > Configuration > Timbrados
  • Click Create
  • Fill in required information:
  • Authorization Number (Timbrado): e.g., "12345678"
  • Start Date: Authorization start date
  • End Date: Authorization expiration date
  • Document Range: From and To numbers
  • Establishment: e.g., "001"
  • Point of Sale: e.g., "001"
  • Click Save

Timbrado Fields Explained

  • Authorization Number: The timbrado number issued by SET
  • Start/End Date: Validity period of the authorization
  • From Number: Starting document number (e.g., 1)
  • To Number: Ending document number (e.g., 50000)
  • Establishment: Physical location code (001, 002, etc.)
  • Point of Sale: Point of emission code (001, 002, etc.)

Activating a Timbrado

  • Timbrados are automatically active if:
  • Current date is between start and end dates
  • Document numbers are not exhausted
  • System shows active status with indicators

Linking Timbrado to Journal

  • Go to Accounting > Configuration > Journals
  • Edit the journal
  • Select the active timbrado from the dropdown
  • System will use this timbrado for all documents in this journal

Document Number Sequences

The module automatically manages sequences:

  • Sequences are created based on timbrado configuration
  • Format: XXX-XXX-NNNNNNN (Establishment-Point of Sale-Number)
  • Numbers increment automatically
  • System warns when approaching limit

Automatic Validations

The system validates:

  • Timbrado is active and not expired
  • Document numbers are within authorized range
  • Establishment and point of sale match
  • Date is within authorization period

Multiple Timbrados

You can have multiple timbrados:

  • Different establishments
  • Different points of sale
  • Overlapping periods (for transition)

Best practice:

  • Create new timbrado before current one expires
  • Activate new timbrado when ready
  • Old timbrado becomes inactive automatically

Usage

Creating Invoices with Timbrado

Standard Invoice Flow

  • Go to Accounting > Customers > Invoices
  • Click Create
  • Select customer and add invoice lines
  • The system automatically:
  • Assigns the active timbrado from the journal
  • Generates the next document number
  • Validates timbrado status
  • Click Confirm

Invoice Number Format

Invoices will have the format:

XXX-XXX-NNNNNNN
  • XXX: Establishment (e.g., 001)
  • XXX: Point of Sale (e.g., 001)
  • NNNNNNN: Sequential number (e.g., 0000001)

Example: 001-001-0000123

Managing Timbrados

Checking Timbrado Status

  • Go to Accounting > Configuration > Timbrados
  • View list of all timbrados
  • Status indicators show:
  • Active: Green (currently valid and in range)
  • Expired: Red (past end date)
  • Exhausted: Orange (all numbers used)

When Timbrado is Expiring

The system will warn you when:

  • End date is approaching (configurable threshold)
  • Document numbers are running low (e.g., <100 remaining)

Action required:

  • Request new timbrado from SET
  • Create new timbrado record in system
  • Update journal to use new timbrado when ready

Switching Between Timbrados

To change timbrado on a journal:

  • Go to Accounting > Configuration > Journals
  • Edit the journal
  • Change the Timbrado field
  • Save
  • New documents will use the new timbrado

Vendor Bills

For vendor bills:

  • Create bill as usual
  • Enter vendor's timbrado information if required
  • System validates format and structure

Reports and Monitoring

Timbrado Usage Report

Monitor timbrado usage:

  • Go to Accounting > Reporting > Timbrado Report
  • View:
  • Numbers used
  • Numbers remaining
  • Expiration status
  • Document count

Fiscal Period Closing

When closing fiscal periods:

  • Verify all timbrados for the period are valid
  • Check document number sequences are complete
  • Generate required fiscal reports

Common Scenarios

Scenario 1: Starting a New Establishment

  • Create new timbrado with new establishment code
  • Create or update journal with new establishment
  • Link timbrado to journal
  • Start issuing documents

Scenario 2: Renewing Expired Timbrado

  • Obtain new authorization from SET
  • Create new timbrado record
  • Set start date (can overlap with old one)
  • Switch journal to new timbrado
  • Old timbrado remains for historical reference

Scenario 3: Multiple Points of Sale

  • Create timbrado for each point of sale
  • Create separate journal for each
  • Each journal uses its own timbrado
  • Users select appropriate journal when creating documents

Troubleshooting

Error: "Timbrado Expired"

Solution:

  • Create new timbrado
  • Update journal configuration
  • Try creating document again

Error: "Document Number Out of Range"

Solution:

  • Request new timbrado from SET with higher range
  • Create new timbrado record
  • Switch journal to new timbrado

Warning: "Timbrado Expiring Soon"

Action:

  • Request renewal from SET
  • Create new timbrado in system
  • Plan transition date
  • Update journal when ready
info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.