Skip to Content

Invoice UPN QR code for Slovenia

English | Slovenščina

Beta License: LGPL-3 PMISuite/base Version: 18.0

Give customers Slovenian UPN QR payment instructions directly on their invoice PDF. The code uses the selected beneficiary IBAN, payment reference, due date and outstanding EUR amount, so partial payments reduce the amount to pay.

Complete the bank and payment details before printing; invalid details can leave the report without a QR image when it is rendered silently.

Table of contents

Documentation

  • User Manual: illustrated payment-data setup, invoice preparation, UPN QR report review and troubleshooting.

Features

  • Registers si_upn_qr as Slovenian UPN QR for Slovenian companies with priority 1 in Odoo's available QR methods.

  • Defaults the method on customer invoices and customer receipts when the company country is Slovenia.

  • Preserves a supplied QR method, including an explicit empty choice. Company defaults honor explicit create values and default_company_id context.

  • Adds a payment-purpose selection and generates UPN data with payer and recipient details, outstanding amount, due date, reference and checksum.

  • Generates a non-stored version 15/M PNG with explicit ISO-8859-2 encoding (ECI 4), retaining Slovenian characters.

  • Uses the standard invoice QR display controls and positive residual amount. Other QR methods retain their standard integration.

Configuration

  • Install with account and account_qr_code_sepa.

  • Set the company country to Slovenia; this addon checks company.country_id, not the Slovenian accounting switch.

  • Select a valid beneficiary IBAN in the invoice's bank account field. UPN QR requires EUR; foreign-currency amounts are never silently converted.

  • Complete company and customer name/address information, payment references and invoice due dates.

  • Review the QR settings supplied by Accounting and the SEPA dependency.

Usage

Print a customer invoice with UPN QR:

  1. Create a customer invoice for the Slovenian company.

  2. Review the QR method, payment reference and payment purpose.

  3. Post the invoice and print its invoice report.

  4. Check the resulting QR image and payment details before sending it.

Use another QR method:

  1. Select the desired QR method explicitly.

  2. Print through the normal invoice-report workflow.

Data model notes

  • account.move.slovenian_qr is computed only for si_upn_qr.

  • The UPN builder uses partner_bank_id, including its account holder and beneficiary address. Payer and beneficiary cities include postal codes.

  • The encoded amount is amount_residual, expressed in cents. An empty purpose defaults to OTHR.

  • Free-text payment fields are shortened to the UPN field limits. Structured references are validated in full rather than shortened.

  • The bank-level QR integration uses the caller's amount, currency, debtor, communication and reference directly, without searching for an invoice.

  • SI references are checked for complete structure and length; RF references also undergo ISO 11649 checksum validation. References are never truncated. An absent reference uses SI99. Invalid nonempty references require correction.

  • Invalid payment details produce a user error for explicit requests and no image for silent invoice rendering. Unsupported characters are not replaced.

  • Payment references come from the invoice's existing reference-generation configuration. This addon validates and encodes the selected reference.

Known limitations

  • SI model-specific check digits remain the responsibility of reference generation; this addon validates SI structure and limits, not every Slovenian reference model.

  • Existing archived invoice PDFs are not regenerated.

Bug Tracker

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

Credits

Authors

Contributors

  • Matjaž Mozetič (LUXIM)

Maintainers

LUXIM MATMOZ

Current maintainer:

sysadminmatmoz

Luxim is an independent R&D and deployment company focused on solving complex problems in the Odoo ecosystem.

Odoo Community Association

Luxim is an active member of OCA (Odoo Community Association).