> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baselayer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Hosted Enrollment

> A Baselayer-hosted onboarding flow, in your brand, that collects and verifies an applicant without your servers touching their personal data.

Hosted enrollment is an onboarding flow Baselayer runs for you. You build the flow once in Console as a **customer journey**: the steps an applicant sees, the fields on each step, the checks to run and your branding. Then, for each applicant, you start a **session** from your server and send them to it. Baselayer collects their details, verifies them and tells you the outcome.

<Card title="Try the journey builder" icon="wand-magic-sparkles" href="/hosted-enrollment/playground">
  Console's journey builder, running in your browser: add steps and fields, brand it, and click through every screen as an applicant. Nothing you do there leaves your browser.
</Card>

## How it works

<Steps>
  <Step title="Build and publish a journey in Console">
    Lay out the steps and fields, pick the checks, add your branding, then publish. Sessions always run the published version. See [Build a journey](/hosted-enrollment/journeys).
  </Step>

  <Step title="Start a session per applicant">
    From your server, start a session on the journey. Baselayer answers with an embed URL: open it in an iframe or redirect the applicant to it. See [Sessions and embedding](/hosted-enrollment/sessions).
  </Step>

  <Step title="The applicant completes the flow">
    They step through your journey on Baselayer's hosted screens.
  </Step>

  <Step title="Receive the outcome">
    A webhook tells you the session completed and its verdict; then read the session's results for everything the applicant entered and every check found. See [Receive the outcome](/hosted-enrollment/sessions#receive-the-outcome).
  </Step>
</Steps>

## What the applicant sees

A typical journey runs through these screens, in order:

| Screen | Shown when |
| - | - |
| Start verification | The journey uses Pre.Fill: the applicant enters their phone number and date of birth. |
| Verification code | When Pre.Fill sends a one-time code to that phone. |
| One screen per step | Every step you add, with its fields. If Pre.Fill finds no match, the applicant types their identity details on the identity step instead. |
| Verification in progress | While the journey's checks run. |
| Decision | Approved, or pending review when a check needs a person to look or the journey runs no checks. It shows not approved only after your team rejects the application in Console. |

<Note>
  Hosted enrollment must be enabled for your organization. Until it is, the session endpoints answer `403` with error code `37`. [Contact us](mailto:support@baselayer.com) to turn it on.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.