BouncerBouncerDocs

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:

  1. A Bouncer organization account
    If you don't have an account yet, ask your Bouncer contact, then log in to the Bouncer dashboard.
  2. 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 Result

Quick 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:

  1. See your organization's branded verification page
  2. Complete a face scan, which includes a liveness check and an age estimate
  3. If required, scan their ID document
  4. 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 final
  • false: User failed verification. Before expires_at it is not final: the user can still retry with an ID document
  • null: Verification still in progress, or abandoned: there is no expired status, so once expires_at has 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

OptionDescription
age_targetTarget age: 8, 13, 16, 18, 21, 25, or 30
force_kycRequire 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_verificationRequire full verification every time (no cookie skip)
webhook_urlReceive real-time status updates (255 characters or fewer)
metadataAttach custom data as a JSON object (e.g., order ID). No personal data: it is readable in the redirect URL
expiration_timeSession timeout (60-3600 seconds, default 300), counted from creation

Next Steps

On this page