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.0Manage 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
Required by other modules
Menus it adds
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-03Confirmation status: 4 confirmed, 5 with no information of 9 versions.
Sources · Odoo 20.0
Confirmed on 2026-11-03 in branch 20.0 of OCA/l10n-paraguay.
terminal Installation and usage
OCA documentation · Odoo 20.0Installation
Source · Odoo 20.0Installation
Prerequisites
- Odoo 16.0
accountmodule (core Odoo)l10n_py_basemodule installed- Valid timbrado from SET (for production use)
Installation Steps
- Install Base Module: Ensure
l10n_py_baseis 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 functionalityl10n_py_base: Paraguayan base localization
Optional Modules
For complete functionality, consider:
l10n_py: Paraguayan chart of accountsl10n_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
Source · Odoo 20.0Configuration
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
Source · Odoo 20.0Usage
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
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
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.