Documentation — Attestra
Documentation

Everything, in one page.

Install to API in about fifteen minutes of reading. Use the contents on the left to jump straight to what you need.

For Attestra 3.4 · Updated 12 August 2026

Installation

Attestra installs like any other WordPress plugin. You'll need WordPress 6.4 or newer and PHP 7.4+.

  1. Download the zip from your order confirmation email, or from the link on the checkout confirmation page.
  2. In your admin, go to Plugins → Add New → Upload Plugin and choose the zip.
  3. Click Install Now, then Activate.
  4. Open Attestra → Licence, paste your key and click Activate this site.

That's it. Attestra adds a single top-level menu item and creates its own database tables. It does not modify your theme, your posts, or any existing content.

Trial keys work the same way. A key from the trial page unlocks every feature on one domain for seven days. When it lapses, your records stay in the database untouched.

Credential categories

A category is the shape of a credential — a diploma, a safety ticket, an audit certificate. Everything else hangs off it, so this is the first thing to set up.

Go to Attestra → Categories → Add new and set:

  • Name and slug. The slug appears in public URLs, so keep it short and readable.
  • Fields. Which pieces of data this credential carries. See custom fields below.
  • Template. Portrait or landscape, plus the seal, border and signature block.
  • Default validity. Leave blank for credentials that never expire, or set a period like 36 months.
  • Visibility. Whether expired records stay publicly listed as history or drop out of search.

Most organisations need two or three categories. Resist the urge to make one per cohort — use tags for that instead.

Custom fields

Fields are defined per category and reused across every record in it. Nine types are available:

TypeUse it for
textNames, awarding body, programme titles
textareaCitations, notes shown on the certificate
numberScores, credit hours, cohort numbers
dateAssessment dates, board approval dates
selectGrades, licence classes, pass levels
emailHolder contact, used for expiry reminders
urlLinks to a syllabus or an evidence portfolio
imageHolder photo, secondary seals
hiddenInternal references never shown publicly

Each field has a public toggle. Turn it off and the value is stored and searchable in admin but never appears on the verification page — useful for internal student numbers.

Issuing records

One at a time

Attestra → Records → Add new. Pick a category, fill the fields, and publish. The credential ID, QR code, public page and PDF are all generated on publish.

In bulk, from CSV

Attestra → Import. Upload a CSV whose first row is a header, map each column onto a field, and preview before committing.

full_name,award,grade,issued_on,expires_on
Sarah Mitchell,Advanced Data Analytics,Distinction,2026-03-12,2029-03-12
James Okonkwo,Advanced Data Analytics,Merit,2026-03-12,2029-03-12
  • Dates should be YYYY-MM-DD. Other common formats are detected, but this one never surprises you.
  • Save your column mapping as a profile and the next import is one click.
  • Rows that fail validation are reported and skipped — the rest still import.
  • Duplicate credential IDs are detected before anything is written.

The verification portal

Create a page — most people call it Verify — and drop in the shortcode:

[attestra_verify]

That renders the lookup field, handles the query, and shows the verdict. Optional attributes:

AttributeDefaultWhat it does
categoryallRestrict lookups to one category slug
require_namefalseAsk for surname as well as ID
show_qrtrueShow the QR code on the result
themeinheritinherit, light or bare

Other shortcodes:

  • [attestra_record id="ATT-2026-4417"] — embed one credential anywhere.
  • [attestra_list category="diplomas" limit="20"] — a public register.
  • [attestra_count category="diplomas"] — a live issued count.

Whitelabel and branding

Under Attestra → Settings → Branding you can replace every visible trace of the plugin:

  • Rename the admin menu item to anything you like.
  • Swap the admin logo for your own.
  • Set the primary colour used across the interface.
  • Remove developer credits from the footer of public pages.
  • Hide the plugin entirely from administrators other than yourself.

Handing a site to a client? The Agency licence includes handover licences so the client can keep receiving updates under their own key.

Troubleshooting

The licence won't activate

Check the domain matches exactly — yoursite.com and www.yoursite.com count as the same site, but yoursite.co.uk does not. If your host blocks outbound connections, allow attestrasolutions.online.

PDFs look wrong or clip

PDFs render in the browser. If a signature block clips, raise the safety margin under Settings → PDF. On phones that can't render locally, Attestra falls back to a server-generated file automatically.

Verification returns nothing

Confirm the record is published rather than draft, and that the category allows public lookup. If you restricted the shortcode with category=, an ID from a different category won't resolve.

Expiry dates seem a day out

Set your timezone properly under Settings → General in WordPress. Attestra follows the site timezone, not the server's.

Still stuck? Contact support with your credential ID and we'll take a look.

Ready to issue your first credential?

The trial key unlocks everything in this documentation for seven days.