How to create, send & verify event certificates
Everything you need to go from a participant list to a professional, verifiable certificate in every attendee's inbox. It works for workshops, webinars, FDPs, conferences, hackathons and courses.
Every certificate gets a unique number (like AIWS24-00012), a QR code and a public verification link, so anyone can confirm it's genuine.
1. Quick start: your first certificate in 10 minutes
- Sign up at certgen.app with your organisation name, name, email and password. Then click the link in the verification email.
- Events → New event. Enter the name and dates, then save.
- Participants → pick the event → Add yourself as a test participant.
- Certificates → Design: choose a background colour, click Add field and type
{{ParticipantName}}, make it large, drag it to the centre, add your logo and a signature, then Save and Preview sample PDF. - Generate (accept the issuer agreement the first time), then Send emails. Open the email, scan the QR code and check that it verifies.
- Happy? Bulk upload the real participants, then Generate and Send again. Only the new people are processed.
Always test on yourself first. Finding a typo on one certificate is free. Finding it on 200 certificates that are already in inboxes means sending an apology.
2. Your account and workspace
- Workspace: everything you create belongs to your organisation. Rename it under Organization. This is the issuer name recipients see.
- Profile: update your name or password. Changing the password signs out your other sessions and sends you a security email.
- Domain verification (Organization page): prove you own your domain (e.g.
college.edu) and your certificates show a verified issuer badge, the strongest trust signal you can give recipients.
3. Create an event
Go to Events → New event.
| Field | What to enter | Why it matters |
|---|---|---|
| Event name | e.g. Online Workshop on Agentic AI | Printed via {{EventName}}. Long names wrap automatically. |
| Event code | Optional, e.g. AIWS24 | Becomes the certificate number prefix (AIWS24-00001). Leave it blank to auto-generate one. |
| Start / end date | Event dates | Powers {{EventDate}} ("12–14 March 2026") and {{EventDuration}} ("3 days"). |
| Venue, Organizer | Optional | Available as {{EventVenue}} and {{EventOrganizer}}. |
| Role options | Participant, Speaker, Volunteer… | Type each one and press Enter. These become dropdowns for participants and decide which design each person gets. |
| Certificate title options | Certificate of Participation, of Appreciation… | The heading for each person, via {{CertificateTitle}}. |
| Public verification | On (default) or Off | Off means there's no QR code and the verify link reveals nothing. Use Off if names must not appear on a public page. |
Plan roles before you design. If speakers and participants need different certificates, add both roles now.
4. Add participants
One at a time
Participants → choose the event → Add. Only Full name and Email are required. The participant ID is created for you.
Bulk upload from Excel
- Click Template. The spreadsheet comes with dropdowns for this event's roles and certificate titles.
- Fill in one row per person:
Column Required Used for Full Name ✅ {{ParticipantName}}Email ✅ Sending (must be unique within the event) Organization, Designation, Phone {{Organization}},{{Designation}}Role Chooses the design; {{Role}}Certificate Title {{CertificateTitle}}Completion Hours {{CompletionHours}} - Bulk upload → Choose .xlsx file. The preview highlights every problem: missing name, invalid or duplicate email, or a role that isn't one of the event's options.
- Fix highlighted cells directly in the preview, then click Import.
Names print exactly as typed. Check capitalisation ("Priya Sharma", not "PRIYA SHARMA"), titles such as "Dr.", and stray spaces before you import.
5. Design the certificate
Certificates → choose the event → Design. The controls are on the left and the live preview is on the right.
The sample PDF is the source of truth. The on-screen preview is close but approximate. Click Preview sample PDF after every layout change.
Choose the orientation (landscape or portrait) first, because changing it later moves everything.
Background and border
- Background colour: pick one from the palette. Light, quiet tones (cream, off-white, pale blue or grey) look the most professional.
- Background image: upload a full-page design, for example one made in Canva without names on it. Use Image opacity (60–80% usually works) and Brightness so the text stays readable. For best results use the page ratio (A4 landscape ≈ 3508 × 2480 px).
- Border: Single line, Double line, or Inset (thin + thick, the most formal). Set the colour, width, and inset from the page edge. Skip the border if your background image already has a frame.
Text fields
Each piece of text is a field. Click Add field and set:
| Control | What it does |
|---|---|
| Text | Fixed words plus variables, e.g. has successfully completed {{EventName}} on {{EventDate}} |
| Insert variable | Adds a variable without typos |
| Font | Sans (modern) or Serif (traditional, formal) |
| Size, Colour, Bold, Italic | Styling |
| Align | Left, Center or Right. This is the anchor point: a centred name stays centred however long it is. |
| X / Y | Exact position, for pixel-perfect alignment |
Positioning precisely
- Drag any text, logo, signature or the QR code on the preview. Elements snap to the page centre and to each other, and pink guides show the snap.
- Click an element to select it, then use the arrow keys to nudge it (hold Shift for bigger steps).
- Centre H / Centre V centres the selected element on the page.
- Long text wraps automatically inside the page margins.
Variables you can use
| Variable | Prints |
|---|---|
{{ParticipantName}} | Full name |
{{CertificateTitle}} | e.g. Certificate of Participation |
{{Role}} · {{Organization}} · {{Designation}} · {{Email}} | From the participant's details |
{{CompletionHours}} | e.g. 8 |
{{EventName}} · {{EventVenue}} · {{EventOrganizer}} | From the event |
{{EventDate}} | Smart range, e.g. 12–14 March 2026 |
{{EventStartDate}} · {{EventEndDate}} · {{EventDuration}} | Individual dates, and e.g. "3 days" |
{{IssueDate}} | Date the certificate was generated |
{{CertificateID}} | Certificate number, e.g. AIWS24-00012 |
{{VerificationURL}} | The verify link (the QR code already contains it) |
If a participant has no value for a variable, it prints blank, so write sentences that still read well without it.
Logos and signatures
- Add logo / Add signature uploads an image into this design. Use the Width slider to size it and drag it into place.
- Saved uploads: save a logo or signature once for your whole workspace, then click Add to use it in any design. There's no need to re-upload for each event.
- Signatures can show a Name and Designation underneath, each with its own size, colour and bold setting, plus an optional signature line.
Image tips: use PNGs with transparent backgrounds. CertGen trims empty margins automatically, so the box hugs the visible ink. For a signature: sign in dark ink on white paper, photograph it in good light, remove the background, and save it as a PNG. Use logos at least ~600 px wide so they stay sharp in print.
Verification QR
Set the QR code's size with the slider (keep it to at least ~10% of the page width so phones can scan it from a printout), then drag it into place, usually a bottom corner away from signatures. The QR code appears only when public verification is on.
Different designs for different roles
- Add design and give it a name, e.g. Speaker.
- Set Applies to role to the matching role. Leave it blank for the default design everyone else gets.
- Click Save details. When you generate, each person gets the design that matches their role.
The role must be spelled the same on the design and on the participant (capitalisation doesn't matter). "Speaker" is not the same as "Guest Speaker". If they don't match, the person silently gets the default design, so download one PDF per role to check.
A design recipe that always looks professional
| Element | Vertical position | Style |
|---|---|---|
| Logo(s) | ~12% | Centred, or left and right for two organisations |
{{CertificateTitle}} | ~25% | Serif, 30–36 pt, bold, brand colour |
| "This is to certify that" | ~37% | Sans, 13–15 pt, grey |
{{ParticipantName}} | ~47% | Serif, 30–40 pt, bold or italic, the largest text |
Description with {{EventName}} | ~58% | Sans, 13–15 pt, centred |
| Signatures | ~78% | Spread evenly, all at the same height |
QR + {{CertificateID}} | Bottom corner | Small and unobtrusive |
- One hero: the participant's name is the biggest thing on the page.
- At most 2 fonts and 3 colours. Serif for the title and name plus sans for the body is a safe pairing.
- Contrast: dark text on a light background. Fade busy images.
- Breathing room: keep everything well inside the border.
- Test the extremes: preview the sample PDF with the longest name in your list.
6. Generate certificates
- Generate creates certificates only for people who don't have one yet, so it's safe to run again after adding latecomers.
- Regenerate re-renders existing certificates with the current design and keeps the same number and QR link. Use it after fixing a typo.
- Role filter limits any action to one role (e.g. only Speakers). A role with no matches does nothing; it never falls back to everyone.
- For each certificate you can download the PDF, copy its verification link, or revoke it (with an optional reason shown publicly) and reinstate it later.
7. Send certificates
- Send emails emails everyone not yet emailed, with the PDF attached and a "View & verify" button.
- Resend deliberately emails the selected people again (after you confirm), for example after a correction.
- The email log shows what was sent or failed for each person. Resend failed retries only the failures.
- Export links downloads a CSV of every name, email and certificate link, so you can share links through your own mailbox, WhatsApp or your LMS.
Emails not arriving at a university or company address? Strict mail filters sometimes quarantine mail from services they don't recognise. Ask recipients to check Junk or Quarantine and mark it safe, or use Export links and send the links from your own institutional mailbox. Internal mail isn't filtered the same way. Always send to yourself first.
8. What recipients see
- An email with their certificate PDF and a View & verify button.
- A verification page showing Genuine certificate record, the issuer (with a verified badge if you've verified your domain), their name, the event and the date, plus a Download PDF button.
- Revoked certificates show as revoked, with your reason.
- Anyone can report a concern about a certificate. Reports are reviewed by the CertGen team.
9. Common workflows
| Situation | Steps |
|---|---|
| Single workshop | Create event → bulk upload → design → test on yourself → Generate → Send → Export links as a backup |
| Participants and speakers with different certificates | Add both roles → default design + a "Speaker" design → upload everyone with the right role → Generate → check one PDF of each role → Send |
| Latecomers after you've sent | Add them → Generate (only they're processed) → Send emails (only they're emailed) |
| A typo after sending | Fix the participant or design → Regenerate (filter by role if needed) → Resend. Their link and QR code stay the same. |
| A certificate issued by mistake | Revoke it with a reason. The verify page shows it as revoked and the download stops. |
10. Troubleshooting
| Problem | Fix |
|---|---|
| The app takes up to a minute to load | It's waking up after a quiet period. Wait a moment; after that it's fast. |
| "Generated 0, skipped N" | Everyone already has a certificate. Use Regenerate to re-render, or add new participants. |
| Speakers got the participant design | The role on the design doesn't match the participants' role. Fix it, then Regenerate (role: Speaker) and Resend. |
| Name overlaps a signature in the PDF | Move or shrink elements and check the sample PDF with your longest name. |
| Logo has a big empty box around it | Re-upload it as a PNG with a transparent background. |
| Bulk upload rejects rows | Read the highlighted cell (invalid or duplicate email, or a role or title not in the event's options), fix it in the preview, and import again. |
| No QR code on certificates | Public verification is off for this event. Turn it on in Edit event. |
Ready for your next event?
Create, email and verify certificates in minutes. Free for small events.
Create your free account