Getting Started
Set up your first age verification with Bouncer
This guide will help you set up your first age verification session with Bouncer.
Prerequisites
Before you begin, make sure you have:
- A Bouncer organization account
If you don't have an account yet, ask your Bouncer contact, then log in to the Bouncer dashboard. - An API token (see API Tokens)
Integration Overview
Bouncer provides a simple, redirect-based age verification flow:
Your App → Create Session → Redirect User → Bouncer Verification → Redirect Back (on success) → Check ResultQuick Start
Step 1: Create a Session
Use the Create Session API to start a new verification session. Provide:
age_target: The minimum age to verify (e.g., 18)redirect_url: Where the user goes after a successful verification
Step 2: Redirect User
Redirect your user to the verify_url in the response data object (e.g. response.data.verify_url). The user will:
- See your organization's branded verification page
- Complete a face scan, which includes a liveness check and an age estimate
- If required, scan their ID document
- If the verification succeeds, be sent back to your
redirect_url: straight away, after a short countdown, or when they click Continue, depending on your organization's Industry setting. After a failure there is no redirect.
Step 3: Check Result
Use the Get Session Status API to check if the verification succeeded.
The success field will be:
true: User passed verification. This result is finalfalse: User failed verification. Beforeexpires_atit is not final: the user can still retry with an ID documentnull: Verification still in progress, or abandoned: there is noexpiredstatus, so onceexpires_athas passed, allow a short grace period for a scan already under way, then treat the session as not verified
For production, use Webhooks for real-time notifications, and keep this check as your fallback: treat every webhook as possibly the only delivery, deduplicate by session id and event, and reconcile by polling the session status.
Configuration Options
| Option | Description |
|---|---|
age_target | Target age: 8, 13, 16, 18, 21, 25, or 30 |
force_kyc | Require an ID scan (the age estimate alone cannot approve). Send force_verification with it, or an earlier pass in the same browser can still approve the session without one. See KYC |
force_verification | Require full verification every time (no cookie skip) |
webhook_url | Receive real-time status updates (255 characters or fewer) |
metadata | Attach custom data as a JSON object (e.g., order ID). No personal data: it is readable in the redirect URL |
expiration_time | Session timeout (60-3600 seconds, default 300), counted from creation |