Odoo Community Association

Paraguay - Accounting Extensions

Beta License: LGPL-3 OCA/l10n-paraguay Translate me on Weblate Try me on Runboat

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

Table of contents

Installation

Installation

Prerequisites

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

Installation Steps

  1. Install Base Module: Ensure l10n_py_base is installed first
  2. Install Module:
    • Go to Apps
    • Click Update Apps List
    • Search for “Paraguay - Accounting Extensions”
    • Click Install
  3. 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

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

Step 3: Configure Sales Journal

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

Step 4: Test Invoice Creation

  1. Create a test invoice
  2. Verify document number format: XXX-XXX-NNNNNNN
  3. Check timbrado information appears correctly
  4. 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:

  1. Go to Settings > Technical > Database Structure > Demo Data
  2. 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:

  1. Timbrado Number: Authorization number
  2. Validity Period: Start and end dates
  3. Document Range: From/to numbers authorized
  4. Establishment Code: Your establishment code
  5. 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

Timbrado Fields Not in Journal

If timbrado fields don’t appear in journals:

  1. Update module
  2. Restart Odoo server
  3. Clear browser cache

Configuration

Configuration

Journal Configuration

Configure journals for Paraguayan fiscal documents:

  1. Navigate to Accounting > Configuration > Journals
  2. Select or create a sales/purchase journal
  3. 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

  1. Go to Accounting > Configuration > Timbrados
  2. Click Create
  3. 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”
  4. 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

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

Linking Timbrado to Journal

  1. Go to Accounting > Configuration > Journals
  2. Edit the journal
  3. Select the active timbrado from the dropdown
  4. 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:

  1. Create new timbrado before current one expires
  2. Activate new timbrado when ready
  3. Old timbrado becomes inactive automatically

Usage

Usage

Creating Invoices with Timbrado

Standard Invoice Flow

  1. Go to Accounting > Customers > Invoices
  2. Click Create
  3. Select customer and add invoice lines
  4. The system automatically:
    • Assigns the active timbrado from the journal
    • Generates the next document number
    • Validates timbrado status
  5. 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

  1. Go to Accounting > Configuration > Timbrados
  2. View list of all timbrados
  3. 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:

  1. Request new timbrado from SET
  2. Create new timbrado record in system
  3. Update journal to use new timbrado when ready

Switching Between Timbrados

To change timbrado on a journal:

  1. Go to Accounting > Configuration > Journals
  2. Edit the journal
  3. Change the Timbrado field
  4. Save
  5. New documents will use the new timbrado

Vendor Bills

For vendor bills:

  1. Create bill as usual
  2. Enter vendor’s timbrado information if required
  3. System validates format and structure

Reports and Monitoring

Timbrado Usage Report

Monitor timbrado usage:

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

Fiscal Period Closing

When closing fiscal periods:

  1. Verify all timbrados for the period are valid
  2. Check document number sequences are complete
  3. Generate required fiscal reports

Common Scenarios

Scenario 1: Starting a New Establishment

  1. Create new timbrado with new establishment code
  2. Create or update journal with new establishment
  3. Link timbrado to journal
  4. Start issuing documents

Scenario 2: Renewing Expired Timbrado

  1. Obtain new authorization from SET
  2. Create new timbrado record
  3. Set start date (can overlap with old one)
  4. Switch journal to new timbrado
  5. Old timbrado remains for historical reference

Scenario 3: Multiple Points of Sale

  1. Create timbrado for each point of sale
  2. Create separate journal for each
  3. Each journal uses its own timbrado
  4. Users select appropriate journal when creating documents

Troubleshooting

Error: “Timbrado Expired”

Solution:

  1. Create new timbrado
  2. Update journal configuration
  3. Try creating document again

Error: “Document Number Out of Range”

Solution:

  1. Request new timbrado from SET with higher range
  2. Create new timbrado record
  3. Switch journal to new timbrado

Warning: “Timbrado Expiring Soon”

Action:

  1. Request renewal from SET
  2. Create new timbrado in system
  3. Plan transition date
  4. Update journal when ready

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • KMEE

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

This module is part of the OCA/l10n-paraguay project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.