OdooWiki OCA HUB

Switzerland - ISR inpayment slip (PVR/BVR/ESR)

l10n_ch_payment_slip folder_open OCA/l10n-switzerland open_in_new
Localization License: AGPL-3

This addon allows you to print the ISR report Using Qweb report.

ISR is called:

  • PVR in italian
  • BVR in french
  • ESR in german

The ISR is grenerated as an image and is availabe in a fields of the l10n_ch.payment_slip Model.

This module also adds transaction_ref field on entries in order to manage reconciliation in multi payment context (unique reference needed on account.move.line). Many ISR can now be printed from one invoice for each payment terms.

As of today it is recommended to install module l10n_ch_fix_isr_reference

auto_awesome What this module does

AI-generated from the code · Odoo 12.0

Print Swiss ISR (PVR/BVR/ESR) payment slips directly from customer invoices, with automatic reference generation and a dedicated report. Configure slip layout and bank details per company and bank account.

This module adds the ability to generate and print Swiss ISR payment slips from invoices. Once an invoice is confirmed, you can click a button to print the ISR report, which produces a PDF with one slip per page. The slip includes a scannable reference line, amount, bank details, and addresses, all formatted according to Swiss standards.

Key features: - On customer invoices, a new 'ISR ref' field shows the generated reference, and a 'Print ISR' button becomes available after validation. - The system automatically creates a payment slip record for each receivable move line when the invoice is validated, provided the invoice has a partner bank account with an ISR subscription number. - The ISR reference is computed using the bank's ISR-B customer ID, the partner number, and the invoice number, with a check digit. It is stored on the move line and propagated to analytic lines. - A batch printing wizard allows printing slips for multiple invoices at once, with error checking. - Configuration options are available in Accounting settings: you can adjust the position of the scan line, address, amount, and other elements on the slip, choose whether to include a background image, and set the merge mode for batch printing. - On bank accounts, you can specify an ISR-B internal ID and choose whether to print the bank name, account number, and partner address on the slip.

The module adds a new model l10n_ch.payment_slip to store slip data, and extends invoices, move lines, bank accounts, companies, and settings. It also provides a report template for the ISR invoice report.

Required by other modules

Models and fields (9)
  • res.company · extends an existing modelmerge_mode (Payment Slips Merge Mode), isr_add_horz (ISR horiz. position address (inch)), isr_add_vert (ISR vert. position for address (inch)), isr_background (Insert ISR background ?), isr_delta_horz (ISR Horz. Delta (inch)), isr_delta_vert (ISR Vert. Delta (inch)), isr_scan_line_horz (ISR horiz. position for scan line(inch)), isr_scan_line_vert (ISR vert. position for scan line (inch)), isr_amount_line_horz (ISR horiz. position for amount line (inch)), isr_amount_line_vert (ISR vert. position for amount line (inch)), isr_scan_line_font_size (ISR scan line font size (pt)), isr_header_partner_address (Header partner address), isr_scan_line_letter_spacing (ISR scan line letter spacing)
  • account.invoice · extends an existing modelslip_ids (Related slip), reference, isr_reference (ISR ref), partner_bank_id
  • res.partner.bank · extends an existing modelprint_bank (Print Bank on ISR), print_account (Print Account Number on ISR), print_partner (Print Partner Address on ISR), l10n_ch_isrb_id_number (ISR-B Internal ID)
  • account.move.line · extends an existing modelinvoice_id, payment_slip_ids (Payment Slips)
  • ir.actions.report · extends an existing modelreport_type
  • res.config.settings · extends an existing modelmerge_mode, isr_add_horz, isr_add_vert, isr_background, isr_delta_horz, isr_delta_vert, isr_scan_line_horz, isr_scan_line_vert, isr_amount_line_horz, isr_amount_line_vert, isr_scan_line_font_size, isr_header_partner_address, isr_scan_line_letter_spacing
  • l10n_ch.payment_slip · new modela4_pdf (Slip A4 PDF), reference (ISR Ref.), scan_line (Scan Line), invoice_id (Related invoice), slip_image (Slip Image), amount_total (Total amount of ISR), move_line_id (Related move)
  • isr.batch.print.wizard · new modelinvoice_ids (Invoices), error_message (Errors)
  • report.one_slip_per_page_from_invoice · new model

Text generated by AI (DeepSeek) from reading the Odoo 12.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: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 12.0

Confirmed on 2026-11-03 in branch 12.0 of OCA/l10n-switzerland.

terminal Installation and usage

OCA documentation · Odoo 12.0

You can adjust the print out of ISR, which depend on each printer, In the General Settings - Invoicing. The settings are specific for every company.

This is especialy useful when using pre-printed paper. Options also allow you to print the ISR in background when using white paper and printing customer address in the page header.

Default address format on ISR can be change by setting System parameter: isr.address.format

The ISR is created each time an invoice is validated. To modify it you have to cancel it and reconfirm the invoice.

You can also activate "Save as attachement" for ISR prints your invoice. To do so, edit the ir.actions.report Payment Slip with the template name l10n_ch_payment_slip.one_slip_per_page_from_invoice.

To import v11, the feature has been moved in module l10n_ch_import_isr_v11

No verified information in OCA: Installation.

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.