Make sure the person on the certificate did the course

ID document, selfie and liveness check for online course providers, training organizations and exam platforms. Check age too, if your course has a minimum.

Where certificate checks break down

  • A certificate is only worth what people trust about it

    Employers, schools abroad and regulators accept it because they believe the holder did the work.

  • Identity is checked by hand, or not at all

    A photo of an ID uploaded and reviewed later, a trainer comparing faces on a webcam, or security questions.

  • Minimum age is self-declared

    Some courses are for learners aged 16 or 18 and over, and the date of birth is typed into a form.

  • Accounts get shared

    Someone else completes the course or takes the exam.

Many training regulators expect providers to confirm learner identity for online assessment.

How it works

  1. Step 1

    Create a verification

    Your system calls the API, or a Zapier step does, when a learner enrolls or finishes the course. You get a link for the learner.

  2. Step 2

    The learner completes it

    In the hosted widget: a photo of the ID document, then a selfie with liveness. No account needed.

  3. Step 3

    The result arrives

    By signed webhook. Your system acts on it: unlock the final assessment, or issue the certificate.

Who uses it, and for what

TEFL, TESOL and language-teaching certificates

Check the ID and a selfie before you issue a Level 5 or equivalent certificate. Add an age check if the course has a minimum, for example 16+.

Accredited training organizations

Confirm the learner's identity before you issue a Statement of Attainment or a certificate, without a manual upload queue. It suits short compliance courses such as responsible service of alcohol, white card and food safety.

Driver education and pre-licensing

Online driver education, real estate, insurance and security guard training: confirm the enrolled person is the one taking the course, and keep the result of the check for audits.

Online exams and skills tests

Verify the candidate before the exam starts and match the selfie to the ID. Stop someone who was banned from registering again.

Which check to use

Which check fits which situation, and what it costs per verification
Situation Check Price per verification
Confirm identity before you issue a certificate Identity verification (KYC) $0.30
Only confirm the learner is over the course's minimum age Age verification by ID $0.30
A quick age gate before a course page, with a step up to ID if the face is inconclusive Facial age estimation from $0.05

Identity verification (KYC) returns the date of birth with the rest of the document data, so you can apply your course's minimum age to the same verification. Compare all checks.

Keep banned users out

Banned a learner for cheating or for sharing an account? In Protected mode ProofAge remembers faces and devices, so a ban sticks. The face blocklist, the device blocklist and duplicate detection are included in the price. How Block repeat accounts works.

Block by face

A later verification with the same face is caught, whatever email or document the person uses.

Block by device

Block the device a banned learner verified from, and a new account from that device is caught too.

Find duplicates

See when one person is behind several learner accounts, without waiting for a ban.

In your course platform

Moodle
Moodle plugin: contact us.
Store the result in your LMS
Start a verification when a learner enrolls or submits a form, through the API or a Zapier (beta) step, and save the result on the student record from the webhook. Release the certificate only when the result is approved.

Connect it your way

API and SDKs

A REST API with signed webhooks. SDKs for Laravel/PHP, PHP, Node.js and Python. An MCP server and an integration prompt for AI coding agents.

For developers

No developers? Zapier (beta)

Create a verification from a form, a new order or a new sign-up, and send the result back to your LMS, CRM or spreadsheet. Ready recipes for Thinkific, Teachable, forms and Google Sheets. Access is by invite link, on request.

By default only the decision and flags go to Zapier. Document data goes only when you turn it on.

Zapier guide

Online stores

A Shopify app, a WooCommerce plugin and a PrestaShop module (pending PrestaShop approval) add an age check to checkout without code.

How it works for online stores

We help you integrate: ready SDKs, Zapier recipes, and direct help from the developers who built it.

What happens to learners' data

Hosted in the EU
Google Cloud EU regions by default, US on request.
Private or Protected
In Private mode, selfie and document images are deleted right after the decision. In Protected mode, media and verification data are kept for 30 days, and the face template and device fingerprint hash for 12 months. Identity verification (KYC) runs in Protected mode only.
Encrypted
In transit with TLS 1.2 or later, and at rest with AES-256.

The full list of what we keep, for how long, and who processes it is on the Security page.

Pricing

One price per verification, the same in Private and Protected mode: $0.30 for Identity verification (KYC), $0.30 for Age verification by ID, from $0.05 for Facial age estimation. A verification is billed once, when it reaches a decision.

  • Free to try

    500 live verifications, no time limit, no card.

  • Monthly minimum

    $30 a month after the trial. Your usage counts toward it.

  • Money back

    30-day money-back guarantee on the first payment.

Billing rules and programs are on the pricing page.

Questions from course providers

When should the check happen?

At enrollment, before the final assessment, or before the certificate is issued. Many providers check once at enrollment and match a selfie again before issuing.

Can we check age at the same time?

Yes. Age verification by ID returns whether the learner is over the age threshold you set, plus their name and date of birth.

Do students need an account with ProofAge?

No. They follow a link or use an embedded widget.

Which documents do you accept?

ID documents from 190+ countries.

What do we keep for audits?

You receive the result of each verification by signed webhook and can store it in your LMS or student record. What ProofAge itself keeps depends on the mode. In Private mode, selfie and document images are deleted right after the decision. In Protected mode, media and verification data are kept for 30 days, and consent records for as long as the law requires. The Security page has the full table.

We have no developers. Can we still use it?

Yes. Use Zapier (beta) to start a verification from a form or a sign-up and send the result to a spreadsheet or your platform. If you get stuck, write to us: the developers who built it answer.

A direct line to the developers who built it

Write to us on LinkedIn, by email or in the dashboard chat. The developers who built ProofAge answer themselves, weekends included.