Skip to main content
A Verified Account has two states on your platform: linked and not linked. Only the person can link an account. The person, your organization and your server can each unlink it. This page lists every transition and what you receive for it.

The states

The state belongs to one environment. A Development link never counts as linked, or as a conflict, in Production. The person links the account. Nothing else can.
  1. Your page shows the offer to a person you have just signed in, with your stable user ID in platform-user-ref. See Quickstart.
  2. The person taps Link with BotShield ID. BotShield names your platform, and the person confirms with their passkey in the BotShield app. The passkey prompt never appears on your page.
  3. The account is linked.
You receive: Store the handle beside your user. Match it to your user through the request_id on gate.human_verified, which is the request your page started. An active link is never overwritten. On your platform one BotShield ID links one account, and one account is linked to one BotShield ID. A refused link arrives as botshield:failure on the page and gate.unavailable on your webhook. See Token and webhooks.

Check the status

Ask at any time, without a tap:
  • In the page: the widget fires botshield:presence with { state, fresh_until } on every change.
  • On your server: GET /secured-accounts/status with your API key returns the same answer. See Server API.
  • On every pass: the token’s trusted claim is the signed answer at that moment.
A link ends in one of four ways. Each sends account.unlinked with the account’s handle. Whoever ends it, BotShield also removes your company’s agents for that person in the same environment, moves open widgets for the account to none, and tells the person in the app. The link says a live human runs this account. When the account’s email, password, phone number or MFA changes, that statement has to be made again. Call:
The person’s app shows the account as unlinked because a sign-in detail changed. The person links again in one tap behind your own re-authentication. An unlinked account is an ordinary account. The person links it again from your page, exactly as the first time. The handle is the same when the same person links it again, so your stored handle still matches. The new link has a new linked date, and you receive account.secured and gate.human_verified with first_time: true again. A person cannot link an account from the app alone. The request always starts on your page, where your sign-in shows which account it is.

Your responsibilities

Next steps

Server API

Status, list and revoke with your API key.

Staying in sync

The live widget, webhooks and the token together.

Token and webhooks

Every claim and event field.

Managing accounts

The Console registry and what the person controls.