Home/Blog/Guides

Guides

How to Bulk Issue Certificates from a CSV File (Step by Step)

Issuing a whole class one record at a time wastes hours. Here is how to prepare a spreadsheet, import it and issue hundreds of verifiable certificates in one go.

  • 4 minread
  • 7sections
  • 3FAQs answered
A group of graduates in academic dress
Expertise becomes a business with the right structure
On this page
  1. How should the CSV look when you bulk issue certificates?
  2. How do I issue certificates from a spreadsheet?
  3. How do I email everyone their certificate?
  4. Already have the certificates as files?
  5. Preparing your spreadsheet to bulk issue certificates
  6. Common CSV import errors and fixes
  7. After you bulk issue certificates
  8. Frequently asked questions

Short answer: To bulk issue certificates, export your list to CSV with one row per person, include columns for name, email, award and dates (YYYY-MM-DD), import it under CertiQR → Import, map each column to a field, preview the first rows, then import. Every row becomes a credential with its own ID, QR code and PDF.

When a course ends, you might have 20 people to certify – or 2,000. However, typing each record by hand is slow and error-prone. A CSV import lets you bulk issue certificates from the spreadsheet you already keep, and CertiQR generates and numbers every certificate, ready to verify.

Bulk issue certificates – person using a laptop on a wooden table
One spreadsheet, a whole cohort certified

Key takeaways

  • One row per person, one column per detail.
  • Dates in YYYY-MM-DD format never surprise you.
  • Always preview first – CertiQR reports bad rows instead of importing them.
  • Group the import into a batch so you can email or rebuild it in one go.

How should the CSV look when you bulk issue certificates?

ColumnExampleNotes
holder_nameSarah MitchellRequired for people; use a document title for items and sites
holder_emailsarah@example.comNeeded to email the certificate
awardAdvanced Data AnalyticsWhat the credential is for
issued_on2026-10-01YYYY-MM-DD is safest
expires_on2027-10-01Leave empty if it never expires
batchCohort 14Optional – groups the rows together

Also add a column for each custom field your category uses – grade, instructor, licence class – and save the file as UTF-8 CSV so names with accents survive.

How do I issue certificates from a spreadsheet?

  1. First, open CertiQR → Import and upload the CSV.
  2. Then choose the category – it decides the ID pattern, validity and template.
  3. Next, map each column to a field. Save the mapping as a profile so next month’s import is one click.
  4. After that, run the preview. It lists any rows with problems (a bad date, a duplicate ID) and the reason.
  5. Finally, import. Each valid row becomes a credential with its own ID, QR code and certificate.

How do I email everyone their certificate?

First, name a batch during the import, then open the batch and choose Email. As a result, each holder receives their own certificate as a PDF. If you change the template afterwards, Rebuild redraws the whole batch in one step – IDs and QR codes stay the same.

Already have the certificates as files?

If you designed your certificates elsewhere, use bulk upload instead: drop up to twenty finished documents onto one screen, place the QR code once and CertiQR issues each file as its own credential. See all features for details.

Preparing your spreadsheet to bulk issue certificates

  1. First, remove empty rows and merged cells.
  2. Next, give every column a clear header in the first row.
  3. Then convert dates to YYYY-MM-DD.
  4. After that, check email addresses for typos.
  5. Finally, save the file as UTF-8 CSV.

Excel, Google Sheets and Numbers can all export CSV. However, Excel sometimes saves in a different encoding, so choose “CSV UTF-8” when it offers the option.

Common CSV import errors and fixes

ProblemFix
Dates appear as numbersFormat the column as text, then re-type the dates
Accents look brokenSave as CSV UTF-8
Duplicate credential IDRemove the duplicate or leave the column empty
Missing emailAdd it, or issue without emailing

After you bulk issue certificates

Once the import finishes, open the batch to review it. For example, you can email every certificate, download them all as a zip, or rebuild them if you change the template. In addition, the batch keeps the whole cohort together, so later reports and renewals are simple.

Also, keep a copy of the CSV you imported. Together with the batch, it gives you a clear record of what you issued and when.

In addition, the official WordPress documentation is a useful, independent reference if you want to read further.

Frequently asked questions

QHow many certificates can I bulk issue at once?

There is no fixed limit, because CertiQR processes large files in steps. Hundreds of rows are routine, and thousands work on normal hosting.

QWhat happens to rows with errors?

The preview lists them with the reason, and the import skips them. However, everything else still imports, so one bad date never blocks a whole class.

QCan I import people who already have a certificate number?

Yes. Add a credential_id column and CertiQR keeps your existing numbers, so printed certificates and new QR codes match.

Ready to try it?

Issue your next cohort from a spreadsheet in minutes, with a QR code on every certificate. Try CertiQR free for 7 days.

Can I bulk issue certificates without emailing them?

Yes. Import first, check everything, and send the emails later from the batch screen.

Can one spreadsheet cover several courses?

Yes. Add a batch column, and CertiQR groups the rows into separate batches during the import.

#bulk issuing#CSV#how-to

Found this useful? Share it
Attestra Solutions
Written byAttestra Solutions

We build CertiQR, the WordPress plugin for issuing certificates and verifying them with a QR code. We write about credentials, verification and running a certificate programme.

Product updates

Get CertiQR news on WhatsApp

New CertiQR features, release notes and licence offers – just a few messages a month.