Checkify

Developer docs

Embed SDK reference

Browser API for Checkify Pass verification. CDN URL: https://checkify.me/sdk/v1/checkify.min.js

Install

<script src="https://checkify.me/sdk/v1/checkify.min.js"></script>

After load, window.Checkify.version reports the SDK release (currently 1.0.4).

HTML auto-mount

The SDK auto-mounts elements with these attributes on page load:

<div
  data-checkify-pass="YOUR_PASS_ID"
  data-checkify-request="human"
  data-checkify-text="Verify with Checkify"
  data-checkify-return-url="https://yoursite.com/done"
></div>
Deprecated: data-checkify-launcher still works but logs a console warning. Use Pass + request type instead.
MethodDescription
data-checkify-passYour Checkify Pass public ID (required)
data-checkify-requestRequest type: human, age_over_13, age_over_16, age_over_18, age_over_21, age_over_25, or age_over_N
data-checkify-textButton label text
data-checkify-return-urlOptional URL to return to after app handoff
data-checkify-fieldsOptional comma-separated identity fields to request (for example country)
data-checkify-proofsOptional comma-separated proof types when your Pass supports multiple proofs
data-checkify-launcherDeprecated launcher ID — use data-checkify-pass instead

Form integration attributes

When using Checkify.bindForm, you can also set these on the form element:

MethodDescription
data-checkify-passYour Checkify Pass public ID (required)
data-checkify-requestRequest type: human, age_over_13, age_over_16, age_over_18, age_over_21, age_over_25, or age_over_N
data-checkify-auto="true"Set data-checkify-auto="true" on a form to auto-bind on page load without calling bindForm manually
data-checkify-hidden-inputCSS selector for the hidden input that receives request_id (default: input[name=checkify_token])

Checkify.configure(options)

Set global defaults before mounting widgets.

Checkify.configure({
  baseUrl: 'https://checkify.me',
  completeUrl: '/checkify/complete'
});

Checkify.bindForm(form, options)

Renders a verify button, writes a token to a hidden input, and disables submit until verified.

Checkify.bindForm('#my-form', {
  passId: 'YOUR_PASS_ID',
  requestType: 'human',
  buttonTarget: '#checkify-wrap',
  submitButton: '#submit',
  hiddenInput: '#checkify_token',
  disableSubmitUntilVerified: true
});

bindForm options

Common options passed as the second argument to Checkify.bindForm(form, options):

MethodDescription
passIdCheckify Pass public ID (required unless set on the form via data-checkify-pass)
requestTypeRequest type (human, age_over_18, etc.)
buttonTargetContainer element where the verify button is rendered
submitButtonSubmit control to enable after verification
hiddenInputHidden field selector for request_id
disableSubmitUntilVerifiedWhen true, keeps submit disabled until verification succeeds

Checkify.createHumanGate(options)

Full-page or container gate that blocks content until verification completes.

Checkify.createHumanGate({
  passId: 'YOUR_PASS_ID',
  requestType: 'human',
  container: '#gate-root',
  title: 'Verify to continue'
});

Return URL flow

When users complete verification in the Checkify app, they may return to your site with checkify_request_id in the query string. The SDK calls Checkify.checkReturnedVerification() automatically on load.

Checkify.verify(options)

Start verification programmatically without auto-mounting HTML. Returns a promise that resolves when the user completes or cancels.

const result = await Checkify.verify({
  passId: 'YOUR_PASS_ID',
  requestType: 'human',
  container: document.getElementById('checkify-root')
});
console.log(result.requestId); // send to your server as request_id

Events

window.addEventListener('checkify:verified', (e) => {
  console.log('Verified', e.detail);
});

window.addEventListener('checkify:error', (e) => {
  console.error('Checkify error', e.detail);
});

Status polling (optional)

Most integrations should verify on form submit with POST /v1/qr/results/verify. For custom frontends without the embed, you may poll status while the user completes verification in the app.

  • Legacy poll token from older embeds:
  • Request ID + status token from the start response:

Server verify

Methods

MethodDescription
Checkify.mount(root?)Mount Pass widgets under optional root element
Checkify.bindForm(...)Form integration helper
Checkify.createHumanGate(...)Human verification gate UI
Checkify.verify(options)Programmatic verify flow
Checkify.checkReturnedVerification()Handle return URL after app handoff