Wristband.idDocumentationTry the demo

Get started

Run your first age check

Create an 18+ check, complete it with a wallet, and read the result.

You will use the hosted verification page for this first test. No frontend code is needed. To see the visitor’s experience first, open Fake Night Club, select Denmark (Test) and choose Get tickets.

Have dashboard access? In Overview, select your check and wallets, then copy the curl, Node, PHP or HTML snippet. The test dashboard requires an issued account.

Before you start

  • An issued TEST merchant secret key. Public self-service registration is not enabled.
  • A compatible wallet with a test age credential on your phone.
  • A terminal on your development computer. Keep the key out of browser code and shared logs.

All requests below use staging. Confirm an enabled wallet for your account in Wallet availability before setting up the phone. A successful test does not authorize a real purchase.

1. Set your API key

Set these environment variables in your terminal. Replace the placeholder with your TEST secret key.

Terminal
export WRISTBAND_API_URL='https://api-staging.wristband.id'
export WRISTBAND_SECRET_KEY='YOUR_TEST_SECRET_KEY'

2. Create a session

A session is one attempt to answer “18 or over?”. Run this request from the same terminal:

Terminal · create a session
curl --fail-with-body "$WRISTBAND_API_URL/v1/sessions" \
  -H "Authorization: Bearer $WRISTBAND_SECRET_KEY" \
  -H 'Content-Type: application/json' \
  --data '{
    "scopes": ["age_over_18"],
    "reference": "Fake_ticket_47"
  }'

Expected: HTTP 201 and a JSON response with a session_id and a url. Keep both. Other fields include the expiry time and available wallets.

Response · selected fields
{
  "session_id": "ws_...",
  "url": "https://api-staging.wristband.id/s/ws_...",
  "reference": "Fake_ticket_47"
}

3. Open the verification page

Open the exact url from your response in a desktop browser. Scan its QR code with your phone, then confirm in the wallet.

Expected: the verification page reports completion. This example has no return URL, so it does not redirect to a checkout.

Start within five minutes. If the attempt expires, create a new one. If no compatible wallet is available, ask us to confirm the integration and test credential before setting up an app.

4. Read the answer

Replace SESSION_ID_FROM_STEP_2 with the actual ID. Send this request from your terminal, not from browser code:

Terminal · read the result
curl --fail-with-body \
  "$WRISTBAND_API_URL/v1/sessions/SESSION_ID_FROM_STEP_2" \
  -H "Authorization: Bearer $WRISTBAND_SECRET_KEY"

Expected: status: "completed", a boolean result and a signed receipt. True means the check passed. False means it did not. The environment is test.

If the status is pending or awaiting_wallet, wait a few seconds and read the same session again. For failed or expired, there is no completed answer. See all result states.

Add it to your website

The terminal calls move to your server. Choose how visitors see the wallet step: