Issuer documentation

The manual an issuing organisation actually reads

Sixteen chapters and five appendices, written from the console as it behaves today and illustrated with screenshots taken from the live service.

Chapters
16 + 5 appendices
Screenshots
23
Captured from
app.certlink.io
Interface language
English

Front matter

CertLink · Issuer Manual

Issuing verifiable digital certificates and badges https://app.certlink.io

This manual is for the people who issue credentials — the administrator who registers the organisation, the designer who lays out the certificate, and the person who presses Issue.

If you are here because you received a credential, you need §13.2 and §13.5 only.


How to read it

Chapters 1–12 are in the order you will actually do them. If you are setting up for the first time, read them in order; each one ends where the next begins. Chapters 13–16 are reference.

Part 4 · Reference
13What recipients and verifiers see
14Languages
15Announcements, FAQ and support
16When something goes wrong
Appendices A–E — glossary · permissions · upload columns · number rules · public addresses

Five things worth knowing before you start

1 · A credential cannot be edited. Once it is signed it has been downloaded, printed, emailed or added to a wallet. A mistake is corrected by revoking and re-issuing (§11.5), never by editing. This one rule explains most of the product's behaviour.

2 · Your workspace address is permanent. It is written into your issuer DID, which is inside every credential you sign (§2.3). Choose it as carefully as a domain name.

3 · Old signing keys are never deleted. They are the only thing that can verify what they signed (§6.3).

4 · Anyone who can issue needs two-step verification. And you cannot grant issuing rights to someone who has not enrolled — plan onboarding around it (§4.4).

5 · Nothing verifies until your organisation is approved. But you can build everything else while you wait (§2.5).


Getting help

The console carries Announcements and a Frequently asked questions section. For anything else, use the contact form at https://certlink.io/contact — and quote the error code if you have one (§16.11).

Part 1, Chapter 1

1. Creating your account

Everything in CertLink starts with a personal account. An organisation is registered from an account (Chapter 2), and every operator you later invite signs in with an account of their own.

One thing to know up front: issuers and recipients use the same kind of account. The sign-up screen says so — "Issuers and recipients use the same kind of account." You do not pick a role here. What you can do is decided later, by the organisation you create or are invited to.


1.1 Before you start

You needWhy
An email address you can open right nowSign-up is not finished until you click a link we send there
A work email on your organisation's own domain — recommendedIn Chapter 2 a contact address that does not match the organisation's domain triggers a stricter document review
An authenticator app — soon, not yetAnyone who can issue or revoke credentials must turn on two-step verification (Chapter 3)
The sign-up form — country and language, password strength, and the three agreements.

1.2 Two ways to sign up

MethodChoose this when
Email and passwordThe normal path. You set a password now
Continue with GoogleYou want to use an existing Google account. No password is created — you can add one later (§1.5)

Both create the same kind of account. You can add Google sign-in to an email account later, and you can add a password to a Google account later. Neither choice locks you in.


1.3 Sign up with email and password

Go to https://app.certlink.io/signup and fill in the form.

FieldRequiredNotes
EmailThis is your sign-in identifier. It cannot be changed later from the profile screen
Full name2–30 characters, and must contain at least one letter
PasswordSee the rules below
Confirm passwordMust match exactly
CountryPick from the list. This also sets the dialling code on the phone field
LanguageThe language of your console screens and the emails we send you. Defaults to the language the sign-up page is currently displayed in
Phone number"Optional. Used for notifications." The dialling code follows the country you picked, until you change it yourself

Then the agreements:

CheckboxRequired
"I agree to the Terms of Service."
"I agree to the Privacy Policy."
"I agree to receive marketing messages. (Optional)"

The Terms and the Privacy Policy open in a new tab, so you will not lose what you have typed. If you submit without the two required boxes, the form answers "Please accept the required agreements."

Press Create account.

Password rules

"Between 8 and 64 characters. It cannot contain your email or name."

RuleMessage if you break it
At least 8 characters"The password must be at least 8 characters."
At most 64 characters"The password must be 64 characters or fewer."
Must not contain your email address or your name"The password cannot contain your email or name."
Must not be a password known from a public breach"That password has appeared in known breaches. Please choose another."

A strength meter appears as you type — Not usable · Weak · Fair · Strong. It is guidance, not a gate; the four rules above are the gate.

Note — The Language field here is not the language of the certificates you will issue. Those are two different settings, and a third one is fixed onto each credential at the moment it is issued. Chapter 14 explains all three.


1.4 Verify your email

After Create account the screen changes to:

Verification email sent "Open the link in the email to finish verification. The link is valid for 24 hours and can be used once."

FactDetail
Validity24 hours
UsesOnce. Opening it a second time shows "This account is already verified."
If it expires"Verification links are valid for 24 hours. Request a new one from the sign-up page. (E-AUTH-004)"
ResendingUse Resend verification email. There is a short cool-down of about a minute between sends

Until you verify, signing in is refused with "Your email is not verified yet." (E-AUTH-003). The sign-in screen offers resend the verification email right there, so you do not have to go back to sign-up.

If the mail has not arrived after a minute or two, check the spam folder before resending.


1.5 Sign up with Google

Press Continue with Google on either the sign-up or the sign-in screen, and pick your Google account. By continuing you accept the Terms of Service and the Privacy Policy — the screen states this next to the button.

Three things behave differently on this path:

SituationWhat happens
Your Google account's email address is not verified at GoogleSign-in is refused: "That Google account has an unverified email address, so we cannot sign you in." Verify it with Google first
A CertLink account with the same email address already existsGoogle sign-in is linked to that existing account — "We linked Google sign-in to your existing account with the same email." You do not end up with two accounts, and nothing you already had is lost
The sign-in does not complete"We could not finish signing in with Google. Please try again."

An account created this way has no password. You can sign in with Google indefinitely, but if you also want to sign in with an email and password, open Account → Password. The screen is titled Set a password and explains why it is offered: "You signed up with Google, so this account has no password. Set one to sign in with your email as well." See §3.5.


1.6 Signing in

Go to https://app.certlink.io/login, enter your email and password, and press Sign in.

One option on this screen decides how long you stay signed in:

Keep me signed in (30 days)Session lasts
Not ticked12 hours
Ticked30 days

If your account has two-step verification turned on, the code screen comes next — that is Chapter 3.

The sign-in screen. Continue with Google sits above the email form, and Keep me signed in (30 days) decides whether the session lasts 12 hours or 30 days.

1.7 When you cannot get in

What you seeWhat it meansWhat to do
"That email or password is not correct." (E-AUTH-001)Either the address is not registered or the password is wrong. We deliberately do not tell you which — saying "no such account" would let anyone test whether an address is registered hereCheck the address for typos, then use Forgot password
"Your email is not verified yet." (E-AUTH-003)Sign-up was never finishedUse resend the verification email on the sign-in screen
"That email is already registered." (E-AUTH-005)Shown during sign-upSign in instead, or use Forgot password
"This account is locked. Please check the email we sent you." (E-AUTH-007)See belowWait for the lock to lift, or reset your password

About the lock

Repeated wrong passwords make each further attempt slower. Beyond that, only accounts that can issue credentials are locked outright: more than 10 failures locks the account for 30 minutes, and we send an email saying so. Ordinary accounts are slowed but not locked — a lock that anyone could trigger against any address would itself be a way to keep people out.

Forgot password

  1. Forgot password on the sign-in screen.
  2. Enter your address. The screen answers "If that address is registered, a reset link is on its way. Check your spam folder if it does not arrive." — the same answer either way, for the reason given above.
  3. Open the link. It is valid for 30 minutes.
  4. Set the new password. The screen warns first: "All sessions on every device will end after the reset."

A password reset does more than change the password. It ends every session on every device, and it clears every remembered browser on the account, so a browser that was skipping the two-step code will start asking for it again (§3.4). This is intended: if you are resetting because something went wrong, the reset has to be able to undo everything it left behind.


1.8 What comes next

You now have an account, but no organisation — so there is nothing to issue from yet. Signing in takes you to a screen that asks you to create one.

Chapter 2 · Registering your organisation and getting approved

Part 1, Chapter 2

2. Registering your organisation

An account is a person. An organisation — called a workspace in the console — is the issuer whose name appears on every credential you produce. You cannot issue anything until you have one and it has been approved.

One workspace is one issuing body. If your institution issues under two distinct brands that recipients would recognise as separate issuers, register two workspaces. The person who creates a workspace automatically becomes its Owner.


2.1 Opening the form

Sign in and you are taken to the workspace list. If you have none, the console asks you to create one. From inside an existing console you will find + New workspace in the organisation switcher at the top of the sidebar.

The screen is titled Create a workspace: "Register as an issuer. You can issue credentials once the review is approved."

The Create a workspace form. The workspace address has been checked and the hint shows the issuer DID it will produce.

2.2 Organisation

FieldRequiredWhat to enter
Organisation name"Used as the issuer name on credentials." Up to 100 characters. This is the name a recipient and a verifier will read
Organisation name (English)Up to 100 characters
Organisation typeInstitution · Association · School · Company · Non-profit
Workspace addressSee §2.3 — this one is permanent
Primary domain"Your organisation's official domain. Ownership will be verified." e.g. vtex.co.kr
Business registration numberUsed during the review
About the organisationUp to 500 characters

2.3 The workspace address cannot be changed

Workspace address is the short identifier in your console URL — app.certlink.io/console/vtex.

RuleDetail
Characters"Lowercase letters, digits and hyphens, 3–30 characters."
AvailabilityChecked as you type. When it is free the hint becomes ✅ Available. Issuer DID: did:web:…:org:{slug}
If takenThe form refuses to submit and answers E-ORG-002, suggesting alternatives such as vtex-1 or vtex-kr
Changing it laterNot possible. "Once set it is baked into the DID and cannot be changed."

⚠️ Why this one is permanent. The workspace address becomes part of your issuer's DID — the identifier that is written inside every credential you sign, and that any external verifier resolves to check your signature. Credentials already in recipients' hands cannot be rewritten. Changing the address would break the verification of everything you have ever issued.

Take a moment over it. Use the name your recipients would recognise, not a project code.


2.4 Contact and formats

FieldRequiredWhat to enter
Contact namePre-filled from your account
Contact phone
Contact emailPre-filled from your account. "We recommend an address on the primary domain. A mismatch means a stricter document review."
Time zone"Used to compute issue and expiry dates and to reset credential numbers. Changing it later can put it out of step with credentials already issued."

On the time zone. This is not a display preference. Issue dates, expiry dates and the point at which a daily or monthly credential-number counter resets are all computed in it, and the date printed on a credential is frozen using the setting that was in force at the time of issue. Set it to the zone your organisation actually operates in, and then leave it alone.

Press Submit for review.


2.5 While the review runs

Your workspace opens immediately, with a status badge at the top of the dashboard.

BadgeMeaning
Under reviewThe default after submission
ApprovedYou can issue
DeclinedThe review did not pass
Suspended"The console is read-only. Verification of existing credentials keeps working."

The dashboard shows: Review in progress (within 3 business days)"While the review is pending you can still create designs and credential definitions, but issuing stays blocked. (E-ORG-001)"

So the waiting time is not dead time. You can do most of Part 2 now:

While Under review
✅ Invite operators and set rolesChapter 4
✅ Define custom attributesChapter 7
✅ Build designsChapter 8
✅ Create credential definitionsChapter 9
❌ Issue anythingBlocked with E-ORG-001
❌ Signing key and DIDCreated for you on approval, not before

When approval comes through, the issuer DID and your first signing key are generated automatically — you do not have to ask for them. Chapter 6 explains what they are and the one rule you must never break with them.

The dashboard. The status badge sits beside the organisation name — Approved here; a new workspace reads Under review until the review completes.

2.6 What you can change later, and what you cannot

SettingLater?Consequence
Workspace addressNeverIt is inside the DID
Organisation nameYes"Changing this does not affect credentials already issued — they keep the name they were issued under." Old credentials keep the old name, permanently and correctly
Primary domainYes"Changing it triggers another review."
Time zoneYes, butIt can fall out of step with credentials already issued
Contact details, description, brandingYesNo side effects. Chapter 12

The pattern behind this table is worth internalising, because it repeats throughout the product: anything that has been signed into a credential and handed to someone cannot be edited. It can only be superseded by a new issue. Settings that only affect future issues are freely editable; settings that are baked into past ones are not.


2.7 Working in more than one organisation

One account can belong to several organisations, with a different role in each. The switcher at the top of the sidebar (Switch organisation) moves between them, and + New workspace starts another registration.

Your permissions are per organisation. Being an Owner in one says nothing about what you can do in another.


2.8 What comes next

Before you can issue — and, for many of you, before the console will even show you the Issue button — your account needs two-step verification.

Chapter 3 · Securing your account

Part 1, Chapter 3

3. Securing your account

Issuing a credential is not an ordinary write. A signed credential and a printed certificate are already in someone's hands the moment they go out, and they cannot be recalled — only revoked. That is why the accounts able to do it are held to a higher standard than the rest.

This chapter covers two-step verification, remembered browsers, and your password.


3.1 Who has to turn it on

Two-step verification is mandatory for the Owner of an organisation and for anyone who can issue credentials. Until they enrol, those accounts can sign in and look around, but the console blocks the actions that matter:

Two-step verification is required. "This account can issue credentials, so issuing and revoking stay blocked until you enrol." [ Enrol now ]

The security screen says the same thing: "This account can issue credentials, so two-step verification is mandatory. Issuing and revoking stay blocked until you enrol."

For everyone else it is optional and still recommended: "Even if your password leaks, no one can sign in without your authenticator app."

For Owners and Administrators — this also works in the other direction. You cannot grant someone issuing permission until their account has two-step verification on. Chapter 4 covers what that means for onboarding a new colleague.


3.2 Turning it on

Go to Account → Security and press Turn on two-step verification.

  1. "In your authenticator app (Google Authenticator, 1Password, …) choose 'Scan QR code'."
  2. "Scan the QR code below, or type the secret in by hand if scanning is not possible."
  3. "Enter the 6-digit code shown in the app."

Press Verify and turn on. The screen confirms Two-step verification is now on, and — if your account required it — "You can now issue and revoke credentials."

Any standard TOTP authenticator works. The QR code is labelled with your email address so you can tell it apart from other entries in the app.

Account → Security on an account that has already enrolled. Before enrolment this screen shows Turn on two-step verification and, during setup, the QR code.

3.3 Backup codes — read this part

Immediately after enrolment you are shown 10 backup codes, each in the form A1B2C-3D4E5.

"These backup codes are shown only once. They are the only way back in if you lose your authenticator. Keep them somewhere safe."

FactDetail
How many10
ShownOnce. They are not retrievable afterwards
Where to useThe same box as the 6-digit code, on the sign-in screen
ReuseNone. "Each backup code works once."
Running lowThe security screen warns you: "# backup codes left. If you lose your authenticator you will not be able to get in, so we recommend regenerating them."

Save them before you tick I have saved the backup codes somewhere safe. A password manager or a sealed printout in a safe are both fine; a screenshot in your photo library is not.

If you lose the authenticator and the backup codes, you cannot recover the account yourself — contact CertLink support, who can reset the second factor after verifying who you are.


3.4 When you will be asked for a code

Two different questions are being asked, and they have different answers.

Signing in asks "is this the right person?" — you enter a code once per sign-in.

Sensitive actions ask "is that person still the one sitting here right now?" — these require a recent verification even in an active session:

Action
Issuing credentialsChapter 10
Revoking or suspending credentialsChapter 11
Exporting recipient data
Creating, rotating or revoking a signing keyChapter 6
Your browserYou are re-asked after
Ordinary browser15 minutes
Remembered browser (§3.5)12 hours

Remembering a browser widens that window; it does not remove it. Twelve hours is also the length of an ordinary console session, so nothing is gained by making it longer.


3.5 Remembered browsers

When you enter a code you can tick Remember this browser for 30 days.

"On a remembered browser we will not ask for a code again for 12 hours. Do not tick this on a shared computer."

Manage them under Account → Security → Remembered browsers, where the one you are using now is labelled This browser, each entry shows when it was last used, and you can Revoke one or Revoke all.

Behaviour
Marker lifetime30 days, then it expires on its own
EffectWidens the re-verification window from 15 minutes to 12 hours
On password reset or changeEvery marker is cleared at once
Lost a device"If you lost a device, revoke all of them. We will ask for a code again from then on."

What a remembered browser is not. It is not a way in. On its own it authenticates nothing — without a live session and your password it does nothing at all. It only affects how often you are asked to re-confirm. That is why leaving one on a shared machine is untidy rather than catastrophic — but tidy is better, so do not tick it there.


3.6 Turning it off

Account → Security → Turn off, confirmed with your password.

If your account can issue credentials, the button is refused: "Accounts that can issue credentials cannot turn off two-step verification. Adjust the permissions first." The permission comes first and the second factor follows it, never the other way round.


3.7 Your password

Changing it

Account → Password → Change password, entering your current password and the new one twice.

"Changing it signs out every other device and clears every remembered browser. This browser stays signed in."

The new password must meet the same four rules as at sign-up (§1.3), and it cannot be the one you are already using — "That is the password you are already using."

Setting one for the first time

If you signed up with Google you have no password. Account → Password then shows Set a password: "You signed up with Google, so this account has no password. Set one to sign in with your email as well."

Setting one does not remove Google sign-in. Afterwards both routes work.


3.8 Your profile

Account → Profile holds the rest of your personal settings.

FieldNotes
Email"Your email is your sign-in identifier and cannot be changed here."
Full name
Phone numberOptional
Country"The country you chose at sign-up. It is separate from your language and time zone."
Language"Used for the console and notification emails. It does not change the language printed on credentials already issued."
Time zone"Dates and times are shown in this zone. Language and time zone are chosen separately."

Changing the language reloads the page in the new one. Note that this is your language, not your organisation's issuing language and not the language printed on a credential — Chapter 14 sets the three side by side.


3.9 What comes next

Your account is ready and your organisation is registered. From here on the work is the organisation's: who else gets in, and what you have to build before the first credential can go out.

Chapter 4 · Operators and permissions

Part 2, Chapter 4

4. Operators and permissions

Most organisations do not issue with one person. The designer who lays out the certificate, the administrator who runs the programme, and the person who presses Issue are often three different people — and they should not all have the same access.

Settings → Team is where that is decided.


4.1 The six roles

RoleIn one line
OwnerEverything, including billing and signing keys. Created with the workspace
AdministratorEverything operational — settings, team, designs, definitions, issuing, revoking
IssuerIssues credentials. Reads designs but cannot edit them
DesignerBuilds designs. Sees no recipient data at all
AnalystRead-only across credentials, recipients and analytics
MemberBelongs to the organisation with no console permissions

The full 6 × 14 grid is in Appendix B. The shape of it is worth knowing now:

OwnerAdminIssuerDesignerAnalystMember
Organisation settings
Billing
Signing keys
Team management
Edit designs
View designs
Create/delete definitions
Issue credentials
Revoke credentials
View credentials
View recipients
Export recipients
Analytics

Two things to notice. An Issuer can issue but not revoke — undoing an issue is a heavier act than making one, and it sits with Administrators and the Owner. And billing and signing keys belong to the Owner alone; not even an Administrator can touch the keys that sign your credentials.

Menus you do not have permission for are hidden, not greyed out. If a colleague says a menu is missing rather than disabled, that is the permission system working as designed — check their role rather than looking for a bug.


4.2 Inviting someone

Settings → Team → Invite a teammate. Enter the email address, choose the role, press Invite.

"Invitation sent. It expires in 7 days."

The invitation goes to that address as an email. The person opening it needs a CertLink account:

What they seeWhy
You have joined {organisation}Success — they are in
Sign-in required"Sign in as {email} — or create that account — and then accept the invitation."They were not signed in. They can sign up first; the invitation waits
This invitation is for another account"This invitation was sent to {email}. Please sign in with that account."They are signed in as someone else. The invitation is bound to the address it was sent to
This invitation has expired"Invitation links are valid for 7 days. Please ask for a new invitation."Send a new one
This invitation was already usedNothing to do
You are already a memberThey were already in the organisation

An invitation is tied to one email address. If a colleague's address changes, send a new invitation rather than forwarding the old mail.


4.3 The team list

Team ({count}) shows everyone, with:

Column
RoleChange it from here
Last seen
Two-step verificationEnrolled / Not enrolled
StatusActive · Invited · Disabled
The Team screen. Each row shows the role, whether that account has enrolled in two-step verification, and its status.

4.4 Two rules the screen enforces

Both are printed under the list, and both will stop you at some point.

At least one Owner must remain

"· At least one owner must remain. (E-ORG-005)"

You cannot demote or remove the last Owner. To hand the organisation over, promote the new Owner first, then step down.

Keep two Owners. An organisation with a single Owner has a single point of failure for everything only an Owner can do — billing and signing keys included. Promoting a second, trusted Owner costs nothing and removes that risk.

Issuing rights require two-step verification

"· To grant issuing rights (Issuer and above) the target account must have two-step verification enrolled."

This is the constraint that most often surprises people onboarding a new colleague, so plan around it:

  1. Invite them as a Member (or with any non-issuing role).
  2. They accept, sign in, and turn on two-step verification (§3.2).
  3. Then you can change their role to Issuer, Administrator or Owner.

Trying to do it in the other order simply fails, and the failure is not a bug. The same rule runs in reverse: an account that can issue cannot turn two-step verification off until its permissions are reduced first.


4.5 Choosing roles well

SituationRole
Runs the programme, needs to fix mistakesAdministrator — issuing and revoking
Runs the graduation batch each termIssuer
An external or in-house designer producing the layoutDesigner — no recipient data reaches them
Reporting, audit, a manager who only readsAnalyst
Should be in the organisation but not in the console yetMember

Give Designer to anyone whose job is the artwork. It is the only role that touches designs without seeing a single recipient's name, which makes it the right answer for outside help.


4.6 What comes next

The team is in place. Now for the four things that must exist before a credential can be issued.

Chapter 5 · What has to be ready before you issue

Part 2, Chapter 5

5. What has to be ready before you issue

Issuing is the last step, not the first. Four things have to exist, and they have to exist in order, because each one is built on the previous.

Your dashboard tracks exactly this, under Getting started:

StepWhere
1Issuer review approvedChapter 2 — waiting on us
2Signing key created · DID publishedChapter 6 — automatic, on approval
3Create your first designChapter 8
4Define your first credentialChapter 9
5Test issue (one to yourself)Chapter 10

Each step shows Done or Not done, so the dashboard is the answer to "what is stopping me from issuing?" at any moment.

The Getting started checklist on the dashboard answers "what is stopping me from issuing?" at any moment.

5.1 The order, and why it is that order

Approval  ──►  Signing key + DID        (Chapter 6, automatic)
                     │
Custom attributes ───┤                  (Chapter 7 — before designs)
                     ▼
                  Design                (Chapter 8)
                     │
                     ▼
          Credential definition         (Chapter 9 — connects the design)
                     │
                     ▼
                   Issue                (Chapter 10)

Custom attributes come before designs. Only attributes that already exist can be placed on a design — the editor refuses the rest: "Attributes that are not defined cannot be placed." If you lay out a certificate first and then discover you need a field for a score or a course code, you have to go back, define it, and return to the editor. Ten minutes in Chapter 7 saves that.

The design comes before the definition, because the definition is where you connect one. A definition can be saved without a design, but then nothing renders — no PNG, no PDF, no image at all — and the issue screen will warn you.


5.2 The blocking conditions

These four are the ones that actually stop an issue. Each has an error code you can quote when asking for help:

ConditionMessageCode
Organisation not approved"Issuer review is not complete, so credentials cannot be issued yet."E-ORG-001
No active signing key"The issuer signing key is not active."E-CRD-009
Definition not Ready to issueThe issue screen offers nothing to select
Your account has not enrolled in two-step verification"…issuing and revoking stay blocked until you enrol."

A fifth one bites later rather than at the start: an attribute placed on the design with no value stops that row with "Some attributes placed on the design have no value." (E-CRD-004). That is deliberate — a blank line on a printed certificate is never noticed until it is in someone's hands.


5.3 A test issue is part of the checklist

Step 5 is Test issue (one to yourself) — one credential, to your own email address, before the real batch.

Do it. It is the only way to see the four things that only appear at issue time: the rendered certificate as the server actually produces it, the notification email as your recipients will receive it, the claim page, and the public verification page. Every one of those is downstream of choices you made in Chapters 7–9, and none of them is visible from the editor.

Then revoke it (Chapter 11), which also teaches you what revocation looks like from the outside.


5.4 What comes next

Chapter 6 · Issuer identity: DID, signing keys and status lists

Part 2, Chapter 6

6. Issuer identity: DID, signing keys and status lists

Settings → Issuer identity

This is the machinery that makes a CertLink credential verifiable by someone who has never heard of you. It is created for you and mostly runs itself. Read this chapter anyway — it contains one rule that, if broken, invalidates every credential you have ever issued.


6.1 It is created automatically

Before approval the screen reads:

Issuer identity has not been created yet "The DID and signing key are created automatically once the workspace passes review."

You do not request them. When your organisation is approved, the DID is published and the first signing key generated.

Settings → Issuer identity — the DID, the signing keys with their states, and the two status lists.

6.2 Your DID

A DID is a public identifier for your organisation, of the form did:web:…:org:{slug} — which is why the workspace address you chose in Chapter 2 can never change.

Every credential you issue carries this identifier. A verifier anywhere in the world resolves it, finds your public keys, and checks the signature. No account and no contact with us is required.

The screen notes one property that matters more than it looks:

"The DID Document is a public, unauthenticated path. It keeps answering even if the organisation is suspended, so verification of existing credentials never stops."

Whatever happens to your account with us, credentials already in people's hands stay verifiable. That is the promise the whole product rests on.


6.3 Signing keys

The Signing keys table lists each key with its Key ID, Algorithm, number of Signatures, and when it was Created.

StateMeaning
ActiveSigns new credentials
Rotating (kept for verification)Superseded, still needed to verify what it signed
Retired (kept for verification)No longer signs; still verifies
RevokedWithdrawn

Three rules are printed under the table:

"· Private keys are never shown and cannot be exported." "· Old keys stay in the DID Document. Removing one makes every credential it ever signed fail verification." "· We recommend rotating once a year."

The one rule that matters

⚠️ An old key is not clutter. It is the only thing that can verify what it signed.

A signed credential cannot be re-signed — it is already printed, already emailed, already in a wallet. If the key that signed it disappears from your DID Document, every one of those credentials starts failing verification, and there is no way to repair them. Retired keys therefore stay published forever, which is exactly why the table distinguishes "kept for verification" from Revoked.

Rotating

Rotate key creates a new active key; the previous one moves to Rotating and keeps verifying its own credentials. Nothing already issued is affected. Once a year is the recommendation.

Revoking

Revoke key is not routine maintenance — it is what you do if a key is believed compromised. The confirmation makes you type the key ID:

"This affects verification of every credential signed with this key. Type the key ID '{kid}' to continue."

Managing keys requires the Owner role and a recent two-step verification (§3.4).


6.4 Status lists

Below the keys sit the Status lists (Bitstring Status List).

"Created automatically on the first issue. They roll over every 131,072 slots."

There are always two, and the table shows the Purpose, Slots used and Last published for each:

PurposeUsed for
RevocationPermanent revocation (§11.4)
SuspensionTemporary suspension

They are separate on purpose. A single shared list would mean that lifting a suspension also lifts a revocation — which is not a distinction you want a bug to erase.

Every credential points at both lists from the moment it is issued, and the lists are published automatically. There is nothing here for you to operate; the screen exists so you can see it working.


6.5 What comes next

Chapter 7 · Custom attributes

Part 2, Chapter 7 · Settings → Custom attributes

7. Custom attributes

An attribute is a field whose value differs from one recipient to the next — a name, a score, a course code. The design is a layout; the attributes are what gets poured into it.

"Define the fields your issue data can carry. Only attributes defined here can be placed on a design or used as an upload column."

That sentence is the reason this chapter comes before Chapter 8. Everything you want on the certificate, and every column you want in your spreadsheet, has to exist here first.


7.1 Built-in attributes

Every organisation gets these. Built-in attributes "are provided to every organisation. They cannot be edited or deleted."

KeyHoldsMasked by default
recipient.nameThe recipient's name
recipient.emailTheir email address
recipient.orgNameTheir organisation or affiliation
credential.issuedAtIssue date
credential.expiresAtExpiry date
credential.awardedDateDate earned
credential.serialNoCredential number (§9.5)
credential.uuidThe credential's unique identifier
issuer.nameYour organisation's name
issuer.emailYour contact address
achievement.nameThe credential's title
achievement.hoursLearning hours
achievement.periodProgramme period
achievement.instructorInstructor

The key is what you actually work with — it is what appears in the editor's attribute list and what you write inside body text as [recipient.name].

Notice that the three recipient fields are masked by default and the rest are not. That is the right default: a certificate's content is public information, while the person on it is not.


7.2 Adding your own

Add attribute opens New custom attribute.

FieldNotes
Attribute key"The custom. prefix is added automatically. Letters, digits and underscores, 2–40 characters."
LabelWhat people see in the console
Data typeText · Number · Date · Choice
ChoicesFor Choice only. "One per line or comma-separated. At least two."
Sample value"Used in the editor preview. Leave it empty and the preview shows a blank."
Default valueOptional
Required when issuingSee §7.4
Mask on the public verification pageSee §7.5

"No custom attributes yet. Add the fields only your organisation uses — a score, a course code, and so on."

Settings → Custom attributes. Attributes you defined sit at the top; the built-in set below cannot be edited or deleted.

7.3 The key and the type are permanent

"The key and type cannot be changed. Issue data and designs already point at this key, and changing it would break those links silently."

Silently is the important word. Nothing errors; the design simply stops finding its value, and you discover it on a printed certificate. Decide the key and the type once.

If an attribute is no longer wanted, you Deactivate it rather than deleting it — and if it is already in use the console does that for you: "It is in use, so it was deactivated instead of deleted." Deactivated attributes show as (inactive) and can be brought back with Reactivate. Past credentials keep their values either way.


7.4 Required when issuing

"Issuing is blocked when it is empty — better that than a blank certificate going out."

Mark an attribute required and a row with no value stops rather than proceeding. In a spreadsheet of 300 people the missing cell is flagged in the validation report (§10.5) with the row number, before anything is signed.

This is a deliberate trade: a stopped batch is an inconvenience, a printed certificate with a blank line is an embarrassment you cannot recall.


7.5 Masking

Mask on the public verification page"This is the default. Turn it off and the value is visible to anyone."

The public verification page is reachable by anyone holding the link or scanning the QR code. It is meant to answer "is this credential real?", not "who received it and what was their score?".

Leave masking on unless you have a specific reason and the recipient's agreement. The column in the attribute list reads Masked or Fully visible, so you can audit the whole set at a glance.

Chapter 9 sets the default for a whole credential definition (§9.6), and the recipient can share a full-detail view themselves. Masking here is the floor, not a limit on what they can choose to show.


7.6 What comes next

Chapter 8 · Designing the certificate

Part 2, Chapter 8 · Designs

8. Designing the certificate

"Lay out the certificate, then connect it to a credential definition."

A design is a layout, saved independently of any particular credential. One design can serve several definitions, and a definition without a design issues no image at all.


8.1 Starting a design

New design asks for two things.

Starting point — a template, or Blank canvas ("Start from nothing and build it yourself."). Templates can be searched and filtered by All / Certificates / Badges.

Size:

GroupOptions
Certificate (print)A4 (210 × 297 mm) · US Letter (8.5 × 11 in), each Portrait or Landscape
Badge (image)Badge 600 × 600 · Badge 1000 × 1000

Badges are square, so there is no orientation to choose — the option disappears. A badge is not a document; it is an image that sits in a wallet, on LinkedIn, or in a profile, and it will often be displayed small. Leave generous margins.

Choose the size now. Applying a template later changes the canvas: "Applying this changes the canvas to {paper} {orientation}." and "Applying a template replaces what is on the canvas."

Creating a design — a template or a blank canvas, then the size.

8.2 The editor

Three columns: tools on the left, the canvas in the middle, properties and layers on the right.

Left panel tabs:

TabContains
TemplatesFull-design starting points
ElementsShapes · Lines · Icons · Ribbons · Bases
TextHeading · Subheading · Body text
AttributesEverything from Chapter 7
ImagesUpload, place, or set a background

Canvas navigation: "Ctrl + wheel to zoom · Space + drag to pan". Undo is Ctrl+Z, Redo is Ctrl+Shift+Z, Group is Ctrl+G.

The editor: tools on the left, the canvas in the middle, properties and layers on the right. The layer list names each element, including the attributes.

8.3 Attributes — the part that makes it a certificate

Static text is the same on every copy. Attributes are what differ per recipient: "Replaced with real values when issued."

Two ways to use them:

  1. Place one as its own element — drag it from the Attributes tab onto the canvas.
  2. Mix them into body text"You can mix attributes into body text, like [recipient.name]." So a paragraph reading This is to certify that [recipient.name] completed [achievement.name] resolves per recipient.

While editing, an attribute shows its Sample value (§7.2), which is why setting samples is worth the seconds it takes.

"Attributes that are not defined cannot be placed." If something you need is missing, define it under Settings → Custom attributes and come back.

The editor warns before you get burned:

⚠️ "Undefined attributes: {names} — they will have no value at issue time. Define them first under Settings › Custom attributes."

Do not save over that warning. An attribute with no value stops the issue with E-CRD-004, and in the best case you find out during the validation report rather than after printing.


8.4 The verification QR code

Add verification QR code places the QR that makes a printed certificate checkable.

"Each credential's verification URL goes in automatically at issue time. Scanning the printed QR opens the public verification page."

Each credential gets its own. You place the box; the content is generated per credential.

Put one on every printed certificate. A paper certificate with no QR is a piece of paper. The QR is the entire difference between a document someone has to trust and one they can check.


8.5 Text that does not break

Names vary in length far more than layouts allow for, so every text element has an Overflow behaviour"Keeps long names from breaking the layout."

OptionBehaviour
Shrink to fitReduces the font size until it fits
WrapBreaks onto more lines
ClipCuts off the overflow

Combine it with Fixed width (wraps or shrinks). Test with the longest name you realistically expect, not a short one.

Fonts

"Only fonts installed on the render server can be chosen."

If a font is missing you are warned: "Fonts not installed on the server: {names} — credentials will render with a fallback font." Never ignore this — the rendered output will not look like your canvas.

Images

"PNG, JPG or SVG up to 2 MB. Scripts are stripped from SVGs before saving."

Add images to the canvas, or set one as a Background image covering the whole canvas.


8.6 Preview — the only output that counts

Preview renders the design the way the server will actually produce it.

"The editing canvas is an approximation; this image is what actually gets issued." Server-rendered preview"Identical to what is issued"

The server-rendered preview. This is what actually gets issued — the editing canvas only approximates it.

The editing canvas is a fast, interactive approximation. Fonts, text fitting and spacing can differ slightly. Check the preview before you connect a design to a definition, and check it again after any change to fonts or text sizing.


8.7 Saving and revisions

Designs save automatically (Auto-saved), and Save confirms with Saved · revision v{seq}. Unsaved changes shows when something is pending.

Each save creates a revision. Two consequences:

  • The design list shows Unconfirmed for a design whose latest revision has not been confirmed.
  • Every issued credential is pinned to the exact revision it was issued from. Editing a design never changes a certificate that already exists — re-rendering it years later reproduces the original.

So you can keep improving a design without disturbing anything already issued. What you cannot do is retroactively fix a certificate by editing the design; that requires revoking and re-issuing (§11.4).


8.8 What comes next

Chapter 9 · Defining a credential

Part 2, Chapter 9 · Credentials

9. Defining a credential

"The reusable master design for a certificate or badge. Every issue is based on one of these."

A definition is the thing itself — what the credential means, who qualifies for it, how long it lasts, how it is numbered, and which design it prints on. You create one per programme, not one per person.

Before you start. "Criteria and type cannot be changed after the first issue, so take care filling these in." The rest of this chapter explains what that costs you if you rush.


9.1 The form

New definition opens a four-step form. The step indicator reads {current} of {total} · {name}.

Step
1 · BasicsWhat it is
2 · DetailsWhat it means, in standards terms
3 · Issuing rulesExpiry, numbering, visibility
4 · DesignWhich layout, and whether it is ready
Step 1 of the four-step definition form.

9.2 Step 1 — Basics

FieldNotes
TitleWhat recipients will see
Title (English)Optional
TypeCertificate or Badge
Credential subtypeCompletion · Attendance · Qualification · Participation · Competency · Appointment · Commendation · Other
LevelBeginner · Intermediate · Advanced, or Not specified

Standard vocabulary

"This goes straight into the credential's achievementType. It cannot be changed after issuing."

OptionUse it for
Private certification (Certification)A certification your organisation awards on its own authority
Statutory licence (License)A licence granted under law
Course completion (CertificateOfCompletion)Someone finished a course
Hours or credits based (Course)Credit measured in hours or credits

This is the single field that tells the outside world what kind of thing your credential is. A wallet, a university admissions system or an employer's HR platform reads it. Choosing "course completion" for something that is actually a licence misrepresents it to every system that ever reads it — and it cannot be corrected afterwards.


9.3 Step 2 — Details

FieldNotes
Description"10–2,000 characters. Maps to the standard description."
Criteria"Describe what someone has to do to earn it. Maps to the standard criteria.narrative."
Criteria URLA public page describing the requirements
Related skills or roles"Comma-separated, up to 20" — e.g. Data analysis, SQL, Python
Related URL
Learning hours · Programme start · Programme end · InstructorAvailable to the design as attributes

Criteria is not a marketing description

Criteria answers "what did this person actually do?". It is the field a sceptical reader looks at, and it is one of the two fields that lock after the first issue. Write it as if it will be read by someone deciding whether to believe the credential — because it will be.

Framework alignment

"Link to an external competency framework. It rides in the standard alignment so other institutions' systems can read what this credential means."

Add alignment, then fill in Target name, Target URL, Framework name, Classification code and Target type. Optional, and worth doing if your sector has a framework — it is what lets another institution's system understand your credential without a human reading it.


9.4 Step 3 — Expiry

Expiry ruleThen enter
None
Fixed dateExpiry date — the same date for everyone
Relative to issue dateValidity period"e.g. 30d (30 days) · 12m (12 months) · 2y (2 years)"

Use Relative to issue date for anything issued continuously; use Fixed date when a whole cohort expires together. An expiry date earlier than the issue date is refused (E-CRD-007).


9.5 Step 3 — Credential numbers

The Credential number rule builds the serial printed on each credential, from tokens:

"Tokens: {YYYY} {YY} {MM} {DD} {YYMMDD} {####} {ORG}"

TokenBecomes
{YYYY} / {YY}Year, 4 or 2 digits
{MM} / {DD}Month / day
{YYMMDD}Date, 6 digits
{####}The sequence number, zero-padded to the number of #
{ORG}Your workspace address

So EHRD-{YYMMDD}-{####} produces EHRD-260817-0001.

Setting
Starting numberWhere the sequence begins
Reset cycleDaily · Monthly · Yearly · Never

A live Preview (in {timezone}) shows the result. The time zone is your organisation's (§2.4) — that is what decides when "today" rolls over for a daily reset.

Match your existing numbering if you have one. Credential numbers end up in registries, spreadsheets and HR systems. Getting the format right on the first definition is much easier than reconciling two schemes later.


9.6 Step 3 — Visibility and notification

Setting
Default recipient visibilityMasked (recommended) or Show real name
Allow issuing more than once to the same recipientOff by default; a duplicate is otherwise refused with E-CRD-003
Let search engines index the verification pageOff by default
Notification message"Shown on the claim page and in the email. Up to 500 characters."

Default recipient visibility controls what the public verification page shows. Masked means a name appears as J*** S**** to anyone with the link. Leave it masked unless the credential is meant to be a public roll of honour and the recipients know it.

Search engine indexing is a bigger decision than it looks: turning it on can make a person's credential findable by name in a search engine, permanently. Off is the right default.


9.7 Step 4 — Design and status

Field
Certificate designPick one, or Not connected
StatusDraft (cannot issue) or Ready to issue

"Every attribute placed on the chosen design must already be defined before this can be saved."

If saving fails here, the design references an attribute that no longer exists — go back to Chapter 7 or Chapter 8 and reconcile them.

A definition with Not connected can still issue, but produces no images at all. The issue screen warns: No design — no image or PDF will be produced.

Status is the switch that makes a definition available on the issue screen. Leave it Draft while you are still working.


9.8 The four statuses

StatusMeaning
DraftBeing worked on. Cannot issue
Ready to issueAppears on the issue screen
In useAt least one credential has been issued. Shown as In use · {count} issued
Archived"Archive '{name}'? New issues will stop." Existing credentials are untouched

A definition can only be deleted while nothing has been issued from it — "Delete the '{name}' definition? It can only be deleted if nothing was issued from it." (E-CRD-002). Once it is In use, Archive is how you retire it.

The definition list, with type, issued count, visibility and status.

9.9 What locks after the first issue

Credentials have already been issued from this definition "Criteria and type can no longer be changed — if they diverged from what was already issued, the credentials would stop meaning what they say. Create a new definition instead."

After first issue
Type, Standard vocabulary, CriteriaLocked
Description, skills, URLs, instructorEditable — applies to future issues
Expiry rule, numbering, visibility, notification messageEditable — applies to future issues
Connected designEditable — applies to future issues

The dividing line is the same one from Chapter 2: what a credential asserts cannot be rewritten once it has been signed and sent. If the meaning of a programme genuinely changes, that is a new definition, not an edit — and having both is the honest record.


9.10 What comes next

Everything is in place. Part 3 is the issue itself.

Chapter 10 · Issuing credentials

Part 3, Chapter 10 · Issue

10. Issuing credentials

"Issuing is hard to undo. Check the summary before you run it."

That warning is on the screen for a reason. A credential that has been issued is signed, rendered, stored and — if you asked for it — emailed. None of that can be taken back. A mistake is corrected by revoking and re-issuing (Chapter 11), never by editing.

This chapter is the one to read slowly the first time.


10.1 Before the screen will let you in

BlockerWhat you see
Organisation not approved"Issuer review is not complete, so nothing can be issued yet.""Check the review status on the dashboard."
No definition readyNo credential definition is ready to issue"Create a definition and set its status to 'Ready to issue'."
Your account has no two-step verificationThe banner from §3.1
No active signing keyE-CRD-009

10.2 Choosing what to issue

Under What to issue, pick a Credential definition. The screen then tells you what that definition will actually do, as a row of labels:

LabelMeaning
Design connectedImages and PDF will be produced
No design — no image or PDF will be producedThe credential is valid and verifiable, but there is nothing to print or share as an image
Number rule {rule} / No credential number§9.5
Duplicates allowed / Duplicates blockedWhether the same recipient can receive this twice
{remaining} of {total} left in quotaHow many issues you have left

Read that row every time. It is the cheapest possible check that you selected the definition you meant to.

Then choose the mode:

ModeUse it for
One at a timeA single recipient, a correction, a test issue
Bulk uploadA cohort, from a spreadsheet
The Issue screen. The row of labels under the definition tells you what it will do before you commit to anything.

10.3 One at a time

Recipient

FieldRequired
Name
Email
Mobile
Organisation

Below that, Custom attributes — every attribute the definition needs (Chapter 7). Anything marked required must be filled in, or the issue is refused rather than producing a certificate with a gap in it.

Issue settings

FieldNotes
Issue date"Past dates are allowed (backdating); future dates are not"
Award date"Defaults to the issue date"
Credential number"Leave blank to generate from the rule"
Send the notification emailOn by default

On backdating. Issuing a certificate for a course that finished last month is legitimate, and the issue date is what the certificate will say. Future dates are refused — a credential cannot claim to have been issued at a time that has not happened.

On typing a credential number yourself. Leave it blank unless you are reproducing a number from an existing register. The automatic sequence cannot collide; a hand-typed one can (E-CRD-010).

Press Issue now.


10.4 Bulk upload — step 1, the template

"Download the template — its columns match this credential definition — fill it in, then upload it."

Download upload template (.xlsx) produces a spreadsheet whose columns are generated for this definition. Always download it fresh rather than reusing an old file — if the definition's attributes have changed, the columns have changed with them.

Limit
FormatsXLSX, or CSV saved as UTF-8 with BOM
Rows5,000 per upload (E-CRD-011 beyond that)
File size10 MB

Columns the definition does not know about are not an error; they are dropped:

Some columns are not defined"{columns} — these columns are ignored. Define them as custom attributes in settings first if you need them."

Read that message when it appears. A column that is silently ignored is exactly how a score or a course code goes missing from 300 certificates.


10.5 Bulk upload — step 2, the validation report

Nothing is issued yet. The report classifies every row:

{count} rowsTotal read from the file
Valid {count}Will be issued
Warnings {count}Will be issued — check them anyway
Errors {count}Will be skipped

Problems are listed with Row, Name, Column and Reason, so you can fix the spreadsheet and upload it again with Cancel and upload again.

If the file is larger than your remaining quota:

This exceeds your remaining quota (E-CRD-012)"{rows} to issue · {remaining} left in quota"

Errors are skipped, not fixed. You can proceed with errors present, and those rows simply do not get issued. That is often what you want for a few bad email addresses — but it means the batch you thought covered 300 people covered 287. The final summary tells you how many were excluded; read it.


10.6 Bulk upload — step 3, the final check

Final check before issuing summarises what is about to happen:

To issue{count} people
CredentialWhich definition
Notification{count} emails or Not sending
Quota"using {used} of {remaining}"
Excluded{count} (errors)

Two confirmations are required:

  1. Tick I have checked the above.
  2. Type the number of recipients"Enter {count}."

Then Issue {count}, skipping rows with errors.

A bulk upload after validation: the report classifies every row, unknown columns are called out, and the final check summarises what is about to happen.

Why you have to type the number. A checkbox can be clicked without being read. Typing the count forces you to have looked at it — and the number is the one thing that catches the most expensive mistake, which is issuing to the wrong file. If the figure surprises you, stop.


10.7 While it runs

Issuing — {done} of {total} "The job keeps running if you close this page. Results appear in the issue history when it finishes."

The page streams progress live (Live). If the connection drops it says so — "(live updates disconnected — use refresh below)" — which affects the display only, never the job.

The Processing log shows each row as Issued or Failed, with a Progress bar and Total / Succeeded / Failed counts.

Issuing takes real time. Each credential is assembled, signed, rendered into several images and a PDF, written to the ledger and queued for email. Tens of seconds per credential under load is normal — close the page and come back.


10.8 When it finishes

Outcome
Done — {count} issued
Partly failed — {ok} succeeded, {fail} failed
Issuing failed

⚠️ "Anything already signed and stored is not rolled back. Revoke what was issued in error."

A partly failed batch is not undone. The successful rows are real credentials — signed, stored, possibly already emailed. There is no "cancel the batch" button, and there could not be one.

Failed rows ({count}) lists what did not go through, with an Attempts count. Retry the failures re-queues only those — "{count} queued for retry" — leaving successful rows untouched. Most failures are transient; ones that persist usually point at missing attribute values or a malformed email address.

From here, View issue history or Issue more.

If you submit twice

This request was already accepted"The same request is already done or in progress. Nothing was issued twice."

Double-clicking, or resubmitting after a browser reload, does not double-issue. This is guaranteed, not best-effort.


10.9 What comes next

Chapter 11 · After issuing

Part 3, Chapter 11 · Issue history

11. After issuing

"{count} credentials issued. Recipient details are shown masked."

Everything you have issued lives here — what state it is in, whether the recipient collected it, whether the notification arrived, and how much it has been looked at. It is also where mistakes get corrected.

Note the masking: recipient details are masked in your own console too. Seeing a full list of names is a separate permission (export), and the default view does not need it.


11.1 Finding a credential

Control
SearchRecipient name or credential number
FilterAll credentials — narrow to one definition
FilterUnclaimed only

Unclaimed only is the useful one for follow-up: those are people whose credential was issued but who have not opened it yet.

Column
NumberThe credential number (§9.5)
Issued / expires
NotificationSent or Send failed
Activity"{views} views · {shares} shares · {downloads} downloads"
Issue history. Recipient details are masked here too.

11.2 The five states

StateMeaning
IssuedLive. The recipient has not opened it yet
ClaimedThe recipient has collected it
SuspendedTemporarily invalid — reversible
RevokedPermanently invalid — not reversible
ExpiredPast its expiry date (§9.4). Automatic

11.3 Resending the notification

Resend sends the notification email again, and the button confirms with Resent.

Use it when the column shows Send failed, or when a recipient says nothing arrived. Check the address first — resending to the same wrong address will fail the same way. A wrong address cannot be edited on an issued credential; that needs a revoke and re-issue.


11.4 Revoking and suspending

Revoke opens Revoke credential, which states the stakes before anything else:

"Permanent revocation cannot be undone. If you revoke by mistake you must re-issue under a new UUID. The verification page switches to 'Revoked' immediately and downloads and sharing are blocked."

Choose the type

Type
Permanent revocation (cannot be undone)The credential should never have existed, or is withdrawn for good
Suspension (can be lifted)Temporarily invalid — under investigation, pending a renewal, a fee unpaid

When in doubt, suspend. Suspension answers the same question to a verifier — this credential is not currently valid — and it can be lifted with Unsuspend. Revocation cannot. The two use separate mechanisms internally (§6.4) precisely so that lifting one never touches the other.

Record why

Field
ReasonIssuing error · Fraudulently obtained · Disqualified · Recipient request · Other
Details"10–500 characters. Recorded in the audit log."
Show the reason on the verification pageHidden by default
Notify the recipient

Write the details as if someone will read them in two years without you in the room — because that is what an audit log is for.

Show the reason on the verification page is off by default, and should usually stay off. "This credential was revoked" is a fact about the credential; "revoked because the holder was found to have falsified attendance" is a statement about a person, published to anyone with the link. Turn it on only when the reason is neutral — a re-issue after an administrative error, say.

Confirm

Confirm"To continue, type '{name}' exactly."

Then Revoke. The public verification page changes immediately, and downloads and sharing stop.

A credential that is already revoked cannot be revoked again (E-CRD-006).


11.5 Correcting a mistake

There is one procedure, and it is the same for a misspelt name, a wrong date and a wrong recipient:

  1. Revoke the credential, reason Issuing error, with the details recorded.
  2. Issue a new one with the correct data (Chapter 10).

The new credential has a new identifier. The old one stays in the history as revoked — the record shows what happened rather than pretending it did not.

Why there is no edit button. The credential has been signed, and it has already been downloaded, printed, emailed or added to a wallet. Editing the copy in our database would leave the copy in the recipient's hands saying something different — and the one in their hands is the one a verifier is holding. A record that can be quietly changed after the fact is worth nothing, which is the whole point of the product.


11.6 What the recipient sees

You doThey see
IssueA notification email, then a claim page, then the credential in their wallet
ResendThe same email again
SuspendThe verification page reports it as not currently valid
RevokeRevoked, immediately. Downloads and sharing are blocked
Revoke with Notify the recipientAn email as well

Verify on each row opens the public verification page exactly as an outsider sees it. Use it after your test issue (§5.3) — it is the fastest way to check that masking, the design and the issuer details all look the way you intended. Chapter 13 covers that page in full.


11.7 What comes next

Chapter 12 · Organisation settings

Part 3, Chapter 12 · Settings

12. Organisation settings

Four tabs:

TabCovered in
General and brandingThis chapter
Issuer identityChapter 6
TeamChapter 4
Custom attributesChapter 7

Everything here needs the settings permission — Owner or Administrator (§4.1).


12.1 Basics

FieldNotes
Organisation name"Changing this does not affect credentials already issued — they keep the name they were issued under."
Organisation name (English)
Organisation typeInstitution · Association · School · Company · Non-profit
Primary domain"Changing it triggers another review."
About the organisationUp to 500 characters

On renaming. Credentials issued before the change keep the old name, permanently. This is correct, not a limitation: a certificate should say who issued it at the time. If your organisation has been renamed, the historical record showing the former name is the accurate one.

On changing the domain. It puts your organisation back into review. Expect the badge to return to Under review and issuing to pause (E-ORG-001), so do not do it the week you have a graduation batch to run.

Settings → General and branding, with the contact and format settings below.

12.2 Issuer branding

FieldNotes
Logo URL"Appears on credentials and the verification page. Changes apply to future issues only; existing images are not re-rendered."
Seal image URLYour seal or stamp
LinkedIn organisation ID"Without it, the 'Add to LinkedIn' button is hidden from recipients."

The logo rule is the same rule as everywhere else: it changes the future, not the past. Images already rendered are not regenerated, because they are already in recipients' hands. If a rebrand must reach existing credentials, that is a revoke-and-re-issue decision (§11.5), not a settings change.

The LinkedIn organisation ID is worth setting. It is the difference between a recipient adding your credential to their LinkedIn profile attributed to your organisation, and not being offered the option at all.


12.3 Contact and formats

FieldNotes
Contact name · Contact phone · Contact emailShown to recipients and on your public issuer page (§13.4)
Time zone"Dates on issued credentials are frozen using the setting in force at the time of issue."
Date formatYYYY-MM-DD · YYYY.MM.DD · DD/MM/YYYY
Issuing languageSee below

The time zone is not a display setting. It decides issue and expiry dates and when a daily or monthly credential number resets (§9.5). Because each credential freezes the setting in force when it was issued, changing it now can leave new credentials out of step with old ones. Set it once, at registration, and leave it.

Issuing language

"The default language for issued credentials and notification emails. A recipient's own language setting wins over it. The console language is chosen per person in account settings."

Three different languages are in play, and confusing them is the most common misunderstanding in the product:

Set whereAffects
Issuing languageHereCredentials and notification emails, by default
Recipient's languageTheir own accountOverrides the above for them
Your console languageAccount → Profile (§3.8)Only your own screens and emails

And a fourth thing that is not a setting at all: the language already printed on an issued credential. It is fixed at the moment of issue and cannot be changed afterwards — same rule as the design revision and the issuer name. Chapter 14 lays all of this out.


12.4 What can be changed, and what it costs

ChangeEffect on existing credentialsOther consequence
Organisation nameNone — they keep the old name
Logo, sealNone — not re-rendered
LinkedIn IDImmediate for everyone
Contact detailsImmediate for everyone
Date formatDisplay only
Issuing languageFuture issues only
Primary domainNoneTriggers a new review
Time zoneNoneNew issues may not line up with old ones
Workspace addressCannot be changed (§2.3)

12.5 What comes next

That is the whole issuing workflow. Part 4 covers what your recipients and verifiers see, how languages fit together, and what to do when something goes wrong.

Chapter 13 · What recipients and verifiers see

Part 4, Chapter 13

13. What recipients and verifiers see

You have been working in the console. Everyone else meets your credentials somewhere else — in an email, on a claim page, in a wallet, or on a public verification page they reached by scanning a QR code on a piece of paper.

This chapter is a tour of those screens from the outside. You cannot configure most of it, but you decide what it says, and you should know what your choices produce.


13.1 The recipient's journey

Notification email  ──►  Claim page  ──►  Badge wallet
                            │
                            └──►  Download PDF / image, share, verify

No account is required for the first two steps: "You can download, share and verify without creating an account." An account is only needed to keep credentials in a wallet.


13.2 The claim page

The link in the notification email opens a page headed Congratulations, with the recipient's name and You have received "{name}", the issue date, the credential number, and the rendered image.

From there:

Action
Keep it in my walletRequires an account
Download PDF · Download imageThe full-detail version, real name included
View verification pageThe public page (§13.3)
SituationWhat they see
Link older than 30 daysThis claim link has expired"Claim links are valid for 30 days. Please ask the issuer to send a new one." → use Resend (§11.3)
An older link, after you resentThis link can no longer be used"Please use the newest link that was sent to you."
You revoked itThis credential was revoked by the issuer · "Downloading and sharing are blocked."
It has expired"The fact that it was issued remains valid. You can still view and download it."

Expiry is not revocation. An expired credential is an accurate historical record — the person did earn it. The wording above is deliberate, and it is why expiry never blocks a download while revocation always does.


13.3 The public verification page

This is the page behind the QR code and behind /v/… links. No sign-in, ever — a verification that required an account would not be a verification.

The headline is one of:

This credential is valid
This credential has expired
This credential has been revokedWith the date, and the reason if you published it (§11.4)
This credential is suspended
Verification failedThe signature did not check out
Credential not found

Under Verification details, four independent checks, each Pass / Fail / Needs checking:

CheckQuestion
Signature validHas the content been altered since it was signed?
Issuer verifiedDoes the issuer resolve to a real, published identity?
Not revokedDoes the issuer's status list still accept it?
Within validity periodIs it in date?

Then the content: Issuer, Issued on, Expires on, Credential number, Learning hours, About this credential, Criteria, Related skills and Framework alignment — all of it coming from the definition you wrote in Chapter 9. This is where a well-written Criteria earns its keep.

Actions available to a visitor: Copy link, Share on LinkedIn, Share on X, Print, and View source (JSON).

The PDF is not public. A visitor sees Only the recipient can download the PDF"Download it from the link in the notification email, or from your badge wallet." The public page masks the recipient's name, so serving the real-name PDF from the same link would make the masking pointless.

Technical details

A collapsible Technical details · raw data section exposes the standard, the credential ID, the issuer DID, the signature, the status list, the raw VC, and downloads for the JSON and the signed JWT.

"Anyone can verify this credential independently with the public key in the DID Document above. Feeding the JWT to an external verifier gives the same result."

That sentence is the product's central claim. Your credentials do not depend on CertLink being trusted, or even present — they can be checked by anyone, with standard tools.

The public verification page. The recipient’s name is masked, the four checks are shown individually, and the PDF is offered only to the recipient.

13.4 What the recipient controls

In their wallet, under Visibility"You decide how much of your information the verification page shows."

SettingOptions
Name displayMasked (A\ Rahman)* — the default — or Show in full
Allow search engines"When off, the verification page stays out of search results. The link keeps working."

Your definition sets the ceiling, not the recipient's preference:

If your definition saysThey see
Masked (recommended) as defaultThey may still choose Show in full for themselves
Indexing not allowed"The issuer marked this credential private, so indexing cannot be allowed."
Pseudonymisation required"The issuer requires pseudonymisation, so this cannot be made public."

So §9.6 is not merely a default — it is the boundary of what a recipient is allowed to publish about their own credential. Set it thoughtfully in both directions: too open and you have published people's names by default; too closed and a graduate cannot put their own achievement on a CV.


13.5 The badge wallet

Badge wallet lists everything a recipient holds, with a summary — "{total} total · {valid} valid · {expired} expired · {revoked} revoked" — search, filters, and an Expires within 30 days flag.

Credentials from every issuer sit side by side. Yours is one entry among others, which is worth remembering when you design one: the badge image is what makes it recognisable at a glance.

A recipient’s wallet. Your credential sits alongside every other issuer’s.

13.6 Your public issuer page

app.certlink.io/issuer/{slug} is your organisation's public profile, and it is where someone goes to answer "is this issuer real?".

SectionShows
Trust badge✓ Reviewed issuer, or ⚠ This issuer has not completed review yet
Review statusComplete ({when}), or "Not complete — signatures on credentials from this issuer still verify, but the organisation itself has not been confirmed."
Domain check✓ ownership of {domain} confirmed, or not confirmed
Joined · Credentials issued
Website · ContactFrom §12.3

The page carries no advertising and no promotional content — it exists to answer one question neutrally. Keep your contact details current: this is where someone who doubts a credential will try to reach you.

The public issuer profile — trust information, domain check and contact details.

13.7 Looking up a credential by number

app.certlink.io/checkLook up by credential number: "Check a credential by its number — no sign-in needed."

This is the fallback when someone has a paper certificate with a smudged QR code, or a number in a spreadsheet and nothing else. Point people here. It is also a good argument for printing the credential number in readable text alongside the QR.


13.8 What comes next

Chapter 14 · Languages

Part 4, Chapter 14

14. Languages

CertLink runs in five languages:

English · Bahasa Melayu · 中文 · 日本語 · 한국어

English is the default. Nobody sees anything else until they choose it.

The confusion in this area is not about which languages exist. It is that four different things have a language, they are set in four different places, and only three of them can ever be changed.


14.1 The four

#WhatSet whereAffectsChangeable?
1Your console languageAccount → Profile (§3.8)Your screens, and emails sent to youYes, any time
2Your organisation's issuing languageSettings → Contact and formats (§12.3)Credentials and recipient notifications, by defaultYes — future issues only
3The recipient's languageTheir own accountOverrides #2 for that personTheirs, not yours
4The language printed on an issued credentialFixed at the moment of issueThat credential, foreverNo

1 · Your console language

"Used for the console and notification emails. It does not change the language printed on credentials already issued."

Per person. Changing yours does nothing to your colleagues, your organisation, or anything you have issued. Language and time zone are chosen separately — you can read the console in English while seeing times in your own zone.

Account → Profile — language and time zone are chosen separately, and neither changes what is printed on a credential already issued.

2 · Your organisation's issuing language

"The default language for issued credentials and notification emails. A recipient's own language setting wins over it. The console language is chosen per person in account settings."

This is the default for what goes out. Change it and the next credential you issue follows the new setting; everything already issued is untouched.

3 · The recipient's language

If a recipient has chosen a language on their own account, their notification email arrives in it — their preference beats your default. There is nothing to configure and nothing you can override.

4 · The language printed on the credential

This is the one that catches people.

Each credential records the language it was issued in, alongside the design revision and the signing key. It is what makes a credential reproducible years later — but it also means the language etched into a certificate cannot be corrected. The PNG has been printed and framed; the signed credential is in a wallet.

If a cohort went out in the wrong language, the only remedy is the one from §11.5: revoke and re-issue.

Check the language before a large batch, not after. It is on the same list as checking the recipient count (§10.6) — cheap before, impossible after.


14.2 What the public verification page does

The verification page follows the visitor's language, because a verifier could be anyone, anywhere. But the credential's own content does not move:

"This credential was issued in {language}. The interface follows your language, while the credential content and attachments stay in the language it was issued in."

So an employer in Kuala Lumpur reading a credential issued in Korean gets the page furniture — the headings, the check results, the buttons — in their own language, and the credential's title, criteria and certificate image exactly as they were issued. Which is correct: translating the content would mean showing something other than what was signed.


14.3 Practical guidance

SituationDo this
Recipients in one country, all reading one languageSet the issuing language to it, once
A mixed cohortLeave the issuing language at the common one. Recipients who have set their own get their notifications in it automatically
You need certificates themselves in two languagesTwo credential definitions with two designs. The printed text lives in the design (Chapter 8), and a design is a fixed layout, not a translated one
Working with an overseas partner institutionSet Title (English) (§9.2) and Organisation name (English) (§12.1)

A design is not translated. The words you type into a design — headings, body text, the phrase around [recipient.name] — are part of the layout. They render exactly as typed, in every language. If you need a Malay certificate and an English certificate, that is two designs.


14.4 What comes next

Chapter 15 · Announcements, FAQ and support

Part 4, Chapter 15

15. Announcements, FAQ and support


15.1 Announcements

Announcements in the sidebar lists notices from CertLink — maintenance windows, changes that affect issuing, new capabilities.

Important ones are marked Important and also appear at the top of your dashboard: "New announcements also appear at the top of the dashboard." A newly published notice can pop up once when you open the console; Close dismisses it and it stays in the list.

Check announcements before a large batch. A scheduled maintenance window is exactly the kind of thing you want to know about before, not during, a graduation run.

Announcements in the console.

15.2 Frequently asked questions

Frequently asked questions is CertLink's own FAQ, inside the console, organised by category:

Category
Issuing
Design
Verification and sharing
Accounts and permissions
Pricing and plans
Other

Where an entry exists in more than one language you can switch between View in Korean and View in English.

The FAQ is maintained centrally, so it reflects the current behaviour of the product — worth checking before raising a question, and worth checking after an announcement about a change.

The FAQ inside the console, grouped by category.

15.3 Getting help

"Please reach out to support with any questions."

Use the contact form at https://certlink.io/contact.

What to include

Support can answer far faster with a few specifics. From Chapter 16's table, the useful ones are:

IncludeWhy
The error code (E-CRD-012, E-ORG-001, …)It identifies the exact condition, not a guess at it
Your workspace addressWhich organisation
The credential number or the batch, if it concerns an issueLocates the record
What you expected to happenDistinguishes a fault from a rule working as designed
The time it happened, with your time zoneMatches it to the logs

Do not send recipient personal data in a support request unless you are asked for it. Credential numbers identify the record without identifying the person.


15.4 What comes next

Chapter 16 · When something goes wrong

Part 4, Chapter 16

16. When something goes wrong

Most problems in CertLink are a rule working as designed rather than a fault. This chapter lists the ones people actually hit, what causes them, and what to do.


16.1 "I cannot issue"

Work down this list. It is ordered by how often each one is the answer.

#CheckIf that is it
1Does your account have two-step verification on?The banner from §3.1 is showing. Enrol (§3.2)
2Is the organisation Approved?E-ORG-001 — the dashboard badge says Under review. Wait, or check §2.5
3Is there a definition set to Ready to issue?No credential definition is ready to issue — set the status in step 4 of the form (§9.7)
4Is there an Active signing key?E-CRD-009 — see §6.3
5Does your role include issuing?The menu is not there at all. Owner, Administrator and Issuer can issue (§4.1)
6Is there quota left?E-CRD-012

16.2 "A menu is missing"

Menus you do not have permission for are hidden, not disabled. A missing menu is a role question, not a bug — check Settings → Team (§4.1).

The common surprises:

MissingBecause
IssueThe role has no issuing permission — or two-step verification is not enrolled
Revoke on a history rowIssuers can issue but not revoke. That is Administrator and Owner
Settings → Issuer identity actionsSigning keys are Owner-only
EverythingThe role is Member, which has no console permissions

16.3 "I cannot give a colleague issuing rights"

Their account has not enrolled in two-step verification. The order has to be: invite → they enrol → you raise the role (§4.4).


16.4 "The spreadsheet will not go through"

SymptomCauseFix
Some columns are not definedA column the definition does not know aboutDefine it as a custom attribute (§7.2), or ignore the notice if the column is genuinely surplus
Rows in ErrorsMissing required values, malformed emails, bad datesFix the file and Cancel and upload again
E-CRD-005The file format is not readableSave as XLSX, or CSV as UTF-8 with BOM
E-CRD-011More than 5,000 rowsSplit the file
E-CRD-012More rows than remaining quota
E-CRD-003The same recipient already has this credentialEnable Duplicates allowed on the definition (§9.6), or remove the row
Columns do not matchThe template was reused from an older version of the definitionDownload the template again (§10.4)

16.5 "No image or PDF was produced"

The definition has no design connected. The issue screen said No design — no image or PDF will be produced before you ran it. The credential itself is valid and verifiable; it just has no picture.

Connect a design (§9.7) and issue again for future recipients. Existing ones need a revoke and re-issue (§11.5).


16.6 "A row failed with E-CRD-004"

"Some attributes placed on the design have no value." — the design places an attribute that this row has no value for.

Look at
The designDoes it place an attribute you have since deactivated? (§7.3)
The spreadsheetIs the column present but empty for that row?
The attributeIs it marked Required when issuing? (§7.4)

This one is a feature. The alternative is a certificate with a blank where a name should be.


16.7 "The certificate does not look like the editor"

Check the Preview (§8.6) — "The editing canvas is an approximation; this image is what actually gets issued."

SymptomCause
Different fontThe font is not installed on the render server. The editor warns: "Fonts not installed on the server: {names}"
Long names overflow or shrink oddlyThe Overflow behaviour setting (§8.5)
The QR is missingNo Add verification QR code element on the design (§8.4)

16.8 "The notification email did not arrive"

Check
The Notification column in the historySent or Send failed (§11.1)
Was Send the notification email ticked at issue time?§10.3
The recipient's spam folder
The address itselfA wrong address cannot be edited — that needs a revoke and re-issue (§11.5)

If it shows Sent and the recipient still has nothing, Resend (§11.3), then check the address character by character.


16.9 "A recipient says their claim link does not work"

What they seeMeaning
This claim link has expiredOlder than 30 days. Resend
This link can no longer be usedThey opened an older email. The newest one is the live link
This credential was revoked by the issuerIt was revoked (§11.4)

16.10 "I revoked the wrong credential"

It cannot be undone. Issue a replacement (§11.5); the new one has a new identifier and the revoked one stays in the history as a record of what happened.

If you had chosen Suspension instead, Unsuspend would have reversed it — which is the reason for §11.4's advice to suspend when in doubt.


16.11 Error codes

Quote the code when you contact support (§15.3).

Sign-in and accounts

CodeMessage
E-AUTH-001That email or password is not correct.
E-AUTH-002Sign-in attempts are temporarily limited. Please try again shortly.
E-AUTH-003Your email is not verified yet.
E-AUTH-004This request is not valid. (An expired or already-used link)
E-AUTH-005That email is already registered.
E-AUTH-006That two-step verification code is not correct.
E-AUTH-007This account is locked. Please check the email we sent you.
E-AUTH-008This action needs you to verify again. (The 15-minute window, §3.4)
E-AUTH-403You do not have access.

Organisation

CodeMessage
E-ORG-001Issuer review is not complete, so credentials cannot be issued yet.
E-ORG-002That workspace address (slug) is already taken.
E-ORG-003We could not confirm ownership of the domain.
E-ORG-004This organisation is suspended.
E-ORG-005The last owner cannot leave.

Credentials and issuing

CodeMessage
E-CRD-001A required field is missing.
E-CRD-002It cannot be deleted because credentials have been issued from it.
E-CRD-003This credential has already been issued to the same recipient.
E-CRD-004Some attributes placed on the design have no value.
E-CRD-005The spreadsheet format is not correct.
E-CRD-006This credential has already been revoked.
E-CRD-007The expiry date is earlier than the issue date.
E-CRD-008Signing failed. Please try again shortly.
E-CRD-009The issuer signing key is not active.
E-CRD-010That credential-number rule is duplicated.
E-CRD-011This exceeds the 5,000-row limit for a single upload.
E-CRD-012This exceeds the number of credentials left in your quota.

Verification

CodeMessage
E-VER-001No such credential exists.
E-VER-002The signature is not valid.
E-VER-003This credential has been revoked.
E-VER-004This credential has expired.
E-VER-005This credential format is not recognised.

General

CodeMessage
E-CMN-001That request is not valid.
E-CMN-002The file is larger than allowed.
E-CMN-003That file type is not supported.
E-CMN-004Too many requests.
E-CMN-005A temporary error occurred. Please try again shortly.

16.12 Anything else

If a screen shows a message that is not in this chapter, or something behaves in a way this manual does not describe, contact support (§15.3) with the code, the time and your workspace address.

CertLink · Issuer Manual

Appendices


Appendix A · Glossary

TermMeaning
WorkspaceOne issuing organisation. An account can belong to several (§2.7)
Workspace addressThe short identifier in your console URL. Baked into the DID and permanent (§2.3)
Credential definitionThe reusable master for a certificate or badge — what it means, how long it lasts, how it is numbered (Chapter 9)
DesignA layout, saved separately and connected to a definition (Chapter 8)
RevisionA saved version of a design. Each issued credential is pinned to the revision it was issued from (§8.7)
AttributeA field whose value differs per recipient. Built-in or custom (Chapter 7)
IssueProducing a credential for a recipient: assemble, sign, render, store, notify (Chapter 10)
ClaimThe recipient opening their credential for the first time (§13.2)
Credential numberThe human-readable serial printed on the credential (§9.5)
RevocationPermanently invalidating a credential. Cannot be undone (§11.4)
SuspensionTemporarily invalidating a credential. Can be lifted (§11.4)
DIDA public identifier for your organisation, of the form did:web:…:org:{slug}, written inside every credential you issue (§6.2)
DID DocumentThe public document a verifier reads to find your signing keys. Answers without authentication, always (§6.2)
Signing keyThe key pair that signs your credentials. Retired keys stay published forever (§6.3)
Status listThe published list a verifier checks for revocation or suspension. There are two, kept separate (§6.4)
Verifiable Credential (VC)The signed, machine-readable form of a credential
Open Badges 3.0The 1EdTech standard CertLink conforms to. It is why another organisation's system can read your credential without an agreement with us
QuotaHow many credentials your plan allows

Appendix B · Roles and permissions

Six roles, fourteen permissions.

PermissionOwnerAdministratorIssuerDesignerAnalystMember
Manage organisation settings
Manage billing
Manage signing keys
Manage the team
Edit designs
View designs
Create and edit definitions
Delete definitions
Issue credentials
Revoke credentials
View credentials
View recipients
Export recipient data
View analytics

Two-step verification is mandatory for the Owner and for any role that can issue credentials — Owner, Administrator and Issuer (§3.1, §4.4).

These actions require a recent re-verification even inside an active session — 15 minutes on an ordinary browser, 12 hours on a remembered one (§3.4):

  • Issue credentials
  • Revoke credentials
  • Export recipient data
  • Manage signing keys

At least one Owner must always remain (E-ORG-005).


Appendix C · Spreadsheet upload columns

For bulk issuing (§10.4).

The safe way

Download the template from the definition you are about to issue, and do not rename its column headers. The template is generated for that definition — its custom-attribute columns match the attributes that definition needs. A template saved from a different definition, or from before an attribute was added, will not line up.

The template contains two sheets: the data sheet, and a guidance sheet naming the credential and listing the required columns.

File limits

Formats.xlsx, or .csv saved as UTF-8 with BOM
Rows5,000 per upload (E-CRD-011)
File size10 MB (E-CMN-002)

Columns

Column order does not matter — headers are matched by name.

ColumnRequiredNotes
Recipient nameMissing this column fails the whole file (E-CRD-005)
Recipient emailMissing this column fails the whole file (E-CRD-005)
Mobile
Organisation
Award dateDefaults to the issue date
Credential numberLeave blank to generate from the rule (§9.5)
One column per custom attributeDependsRequired if the attribute is marked Required when issuing (§7.4)

Custom-attribute columns are matched by the attribute's label, or by its full key (custom.something).

Header names the upload recognises

Maps toAccepted headers
Recipient nameName · name · 이름 · 성명 · 수령자명
Recipient emailEmail · email · 이메일 · 메일
MobileMobile · phone · 휴대폰 · 전화번호 · 연락처
OrganisationOrganisation · orgName · 소속 · 기관명 · 조직명
Award dateAward date · awardedDate · 취득일
Credential numberCredential number · serialNo · 이수번호 · 발급번호

Matching is case-insensitive, and the column heading in every language CertLink supports is accepted — so a template downloaded in one language still uploads correctly if a colleague opens it in another.

⚠️ Anything not on this list is dropped, and the drop is quiet. An unrecognised heading is reported once on the validation screen — "Some columns are not defined … these columns are ignored" — and then the batch proceeds without it. Nothing fails: the credential is issued, the organisation is simply missing, the award date falls back to the issue date, and the number is generated instead of taken from your file. Read that notice when it appears, and prefer the downloaded template over a spreadsheet of your own.

Validation

Every row is classified before anything is issued (§10.5):

ValidWill be issued
WarningsWill be issued — review them
ErrorsSkipped. The batch proceeds without them

Appendix D · Credential number rules

Set on the definition (§9.5). The preview on that screen resolves in your organisation's time zone.

TokenProduces
{YYYY}Four-digit year — 2026
{YY}Two-digit year — 26
{MM}Two-digit month — 08
{DD}Two-digit day — 17
{YYMMDD}Six-digit date — 260817
{####}The sequence number, zero-padded to the number of #
{ORG}Your workspace address

Examples

RuleProduces
EHRD-{YYMMDD}-{####}EHRD-260817-0001
{ORG}-{YYYY}-{#####}vtex-2026-00042
CERT{YY}{MM}{###}CERT2608001

Reset cycle

The sequence restarts
DailyEvery day
MonthlyEvery month
YearlyEvery year
NeverNever — it counts up forever

Match the reset cycle to the tokens in your rule. {YYMMDD} with Never produces numbers that never repeat but climb indefinitely; {YYMMDD} with Daily gives a clean -0001 each morning. A rule with no date token and a Daily reset produces duplicates.

Starting number sets where the sequence begins — useful when migrating from an existing register.


Appendix E · Public addresses

These are reachable without signing in. They are what you give to recipients, verifiers and partners.

AddressWhat it is
app.certlink.io/v/{token}The public verification page for one credential. This is what the QR code on a printed certificate opens (§13.3)
app.certlink.io/checkLook up a credential by its number (§13.7)
app.certlink.io/issuer/{slug}Your organisation's public issuer profile (§13.6)
app.certlink.io/org/{slug}/did.jsonYour DID Document — the public keys a verifier uses (§6.2)

The verification address is permanent. It is printed into QR codes on paper certificates that have already been framed and hung on walls. It will keep answering.

Console addresses (sign-in required)

Address
app.certlink.io/login · /signupChapter 1
app.certlink.io/console/{slug}Your organisation's console
app.certlink.io/walletThe badge wallet — yours, as a recipient
certlink.io/contactSupport (§15.3)