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>
97 lines
3.9 KiB
Markdown
97 lines
3.9 KiB
Markdown
🇨🇿 [Česká verze](README.cs.md)
|
||
|
||
# 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:**
|
||
- Czech local format: `123-456/0800` (automatically converted to IBAN)
|
||
- IBAN format: `CZ6508000000001234567890`, `SK6509000000005123456789`, etc.
|
||

|
||
|
||
* **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**:
|
||
|
||
1. **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**
|
||
|
||
2. **Create invoice for Czech customer:**
|
||
- Set customer country to **Czech Republic (CZ)**
|
||
- Set invoice currency to **EUR**
|
||
- Confirm the invoice (post it)
|
||
|
||
3. **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
|
||
|
||
## 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/0800` or 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:EUR` and your SK/EUR IBAN
|
||
---
|
||
|
||
## About
|
||
|
||
This module is developed and maintained by **[Ash technology s.r.o.](https://www.ashtechnology.eu)**, 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](https://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.*
|