Skip to content

Send the person to the verification page

The url from Create a verification opens the ZetaID verification page. It asks for the camera, guides the person through the steps of the flow, and shows them how it went.

Redirect the browser to url in the same tab:

res.redirect(303, verification.url);

or show a button that links to it. Opening it in a new tab works too; the person then returns in that tab.

On a computer, the page offers to continue on a phone: it shows a QR code (and can email the link) so the person can photograph the document with the phone’s camera. Your site doesn’t need to do anything for that.

In a shop or at a front desk, you can show url as a QR code that the customer scans with their own phone.

Open url in the system browser or an in-app browser tab (SFSafariViewController on iOS, Custom Tabs on Android), not in a plain WebView: a WebView often has no camera permission. Use your app’s link (universal link or app link) as the return_url to come back into the app.

When the person is done, the page shows “Continue” and opens your return_url after a few seconds. ZetaID adds no parameters to it — your own reference in the URL tells you which order or booking it was.

The return only tells you the person is back. The verification may still be running (checks usually take seconds) or waiting for a manual review. Your return page should show what your server knows:

  • the result has arrived (webhook) → continue or explain;
  • not yet → show “We’re checking your documents…” and look again in a few seconds (your server can call GET /api/v1/verifications/{id}).

See Integrate a website for a complete return page.

The link works until due_at (the key’s Due days, default 1 day). Once started, a verification also ends after 24 hours without any input. Either way it becomes expired and your server receives verification.expired. To try again, create a new verification.