Register 'spayd' as a proper qr_code_method on res.partner.bank (same extension point account_qr_code_sepa uses for EPC/'sct_qr'), sequence=6 so it's tried before EPC (sequence 20). Eligibility now requires CZK/EUR currency AND a Czech customer country - previously the report template replaced EPC for *any* customer as long as the invoice currency was CZK or EUR, which would incorrectly show a Czech SPAYD code to e.g. a German customer being invoiced in EUR. account.move._generate_qr_code() already tries all registered methods in priority order and the existing div#qrcode block in account.report_invoice_document already renders whatever comes back, so this needs no report template override at all. - Move get_cz_qr_code_base64()/cz_to_iban() from account_move.py into res_partner_bank.py (as _get_qr_code_generation_params/_spayd_to_iban); fix bank_code not being zero-padded to 4 digits, which could throw off the mod-97 checksum for short local bank codes. Verified the checksum against the standard 19-2000145399/0800 -> CZ6508000000192000145399 reference example and general IBAN mod-97 validity. - Remove views/report_invoice.xml (nothing left to override) and the now unnecessary qrcode Python dependency (Odoo's own barcode report action renders the image; this module only supplies the SPAYD string). - Update README FAQ to match the new eligibility rule. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3.9 KiB
🇨🇿 Česká verze
Czech QR Payments (SPAYD)
This module adds SPAYD format QR codes to invoices for quick mobile payments via Czech banking apps. Compatible with all major Czech banks (ČSOB, Komerční banka, Česká spořitelna, Raiffeisenbank, etc.).
✅ Supported Features
-
Bank account formats:
-
Currency support:
- ✅ CZK - Standard Czech payments
- ✅ EUR - Cross-border payments (for Slovak companies invoicing Czech customers)
- ❌ Other currencies - Not supported (SPAYD is primarily for CZK and EUR)
-
Use cases:
- Czech company invoicing Czech customers in CZK
- Slovak company invoicing Czech customers in EUR (your use case!)
- Any company with a CZ/SK/EU IBAN invoicing Czech customers
⚡ Quick Setup for Slovak Companies
If you are a Slovak company invoicing Czech customers in EUR:
-
Set up your EUR bank account:
- Go to Accounting → Configuration → Journals
- Select your bank journal
- In the Bank Account field, enter your EUR IBAN (e.g.,
SK6509000000005123456789) - Set Currency to EUR
-
Create invoice for Czech customer:
- Set customer country to Czech Republic (CZ)
- Set invoice currency to EUR
- Confirm the invoice (post it)
-
QR code generates automatically!
- The QR code will be in SPAYD format with
CC:EUR - Czech customers can scan it with their banking app
- Payment will be processed in EUR to your account
- The QR code will be in SPAYD format with
Frequently Asked Questions (FAQ)
Q: The QR code is not generated on the invoice A: Make sure you have:
- The QR Codes option enabled in the Invoicing app configuration
- The invoice's bank account (Payment QR-code section) is in CZK or EUR
- The customer's country is set to Czech Republic - SPAYD is only offered automatically for Czech customers; for anyone else Odoo falls back to EPC
- The invoice is confirmed/posted

Q: The QR code is generated on the invoice, but scanning it results in an error A: Check whether:
- The bank account number is in valid format (Czech format
123-456/0800or IBAN) - The customer's banking app supports SPAYD QR codes
Q: Can I use EUR currency with this module? A: ✅ Yes! This module now supports both CZK and EUR currencies. Perfect for Slovak companies invoicing Czech customers in EUR.
Q: Does this work with Slovak (SK) IBAN? A: ✅ Yes! The module handles any valid IBAN (SK, CZ, DE, AT, etc.). If your bank account is already an IBAN, it will be used as-is.
Q: Can I use this for invoices in other currencies (USD, GBP)? A: ❌ No. The SPAYD standard is designed for CZK and EUR. Other currencies are not supported by Czech banking apps via QR codes.
Q: I'm a Slovak company. Will Czech customers be able to pay EUR invoices via QR code? A: ✅ Yes, if:
- Your bank account is a EUR account (Slovak or international)
- The invoice currency is EUR
- The Czech customer's bank supports cross-border EUR payments (most do)
- The QR code will contain
CC:EURand your SK/EUR IBAN
About
This module is developed and maintained by Ash technology s.r.o., an official Odoo partner based in the Czech Republic.
These modules are free and open-source. We welcome your feedback and feature requests – if your idea benefits the community, we're happy to include it.
Contact us:
- Web: www.ashtechnology.eu
- Email: info@ashtechnology.eu
For custom Odoo development or larger projects, feel free to reach out.
Odoo is a trademark of Odoo S.A.
