Certificate Generator & QR Verification
Generate QWeb PDF certificates from any record with a unique number and a public QR verification page
Certificate Generator & QR Verification generates professional PDF certificates, training completions, product warranties, membership cards, from reusable templates with placeholder field mappings, a unique running number and a tamper-evident QR code. Anyone can check a certificate's authenticity on a public verification page without logging in, seeing only whether it is Valid, Expired, Cancelled or Not Yet Valid.
Key Features
Reusable certificate templates
certificate.template defines the certificate type (training, warranty, membership, other), an HTML body with {{placeholder}} tokens, a configurable number format string and a validity window in days, or never-expiring.
Field mappings from any source record
certificate.template.field.map maps any placeholder to a dotted field path evaluated against the certificate's linked source record (e.g. partner_id.name), each with its own fallback default value.
Collision-free per-template numbering
Each template gets its own dedicated ir.sequence created on demand, so certificate numbers formatted from patterns like CERT-%(year)s-%(seq)05d never collide across templates even with the same format string.
Tamper-evident HMAC verification token
Every certificate gets a unique certificate number and a deterministic HMAC-SHA256 verification token derived from a per-database secret, generated automatically on creation and impossible to forge without that secret.
Live validity status
Each certificate's status (Valid, Expired, Cancelled, Not Yet Valid) is computed from its issue date, expiry date and cancellation flag using the same rule set on the record, the report and the public page, so they can never disagree.
One-click cancellation with audit trail
action_cancel cancels a certificate with a recorded reason and cancellation date, fully tracked via chatter (mail.thread).
QWeb PDF report with embedded QR code
The certificate report renders the template's HTML body plus a QR code built from Odoo's built-in barcode engine, linking to the public verification page.
Public, unauthenticated verification page
The /certificate/verify/ controller shows Valid/Expired/Cancelled/Not Yet Valid/Not Found to anonymous visitors, exposing only certificate number, template name, type, recipient name and dates, never internal notes or the linked source record.
Use Cases
Screenshots
01 Certificates List
02 Certificate Form
03 Templates List
04 Template Form
Why Choose This Module
Certificates only carry weight if a third party can check them without trusting a screenshot or a PDF that could have been edited. This module ties every certificate to a deterministic, HMAC-secured token and a public verification page that reflects the exact same validity logic used internally, so a QR scan is always the source of truth, whether the certificate is a training record, a warranty or a membership card.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: 35+
- Author: Pokutsoft
- Dependencies: mail
- Support: odoo@gencbaris.com
- Update date: 2026-07-13
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 905 |
| Technical Name |
certificate_generator_qr_verification |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module