---
title: "Check hosted onboarding progress"
method: GET
path: "/v1/customers/{customerId}/onboarding-session"
tags: ["Onboarding"]
---

# Check hosted onboarding progress

`GET /v1/customers/{customerId}/onboarding-session`

## Request

- Base URL: `https://api.sandbox.alfredpay.io`
- URL: `https://api.sandbox.alfredpay.io/v1/customers/{customerId}/onboarding-session`
- Auth: one of:
  - HTTP bearer
  - API key in header `api-key` and API key in header `api-secret`

Returns where the end customer has got to. Minting a link starts a session and this call reads it.

Poll it, or subscribe to `customer.verification.updated` instead. A customer has one session at a time, and minting a new link supersedes the previous one.

## Response `200`

OK

- OnboardingSession
  - `sessionId` string
  - `customerId` string
  - `status` 'CREATED' | 'OPENED' | 'IN_PROGRESS' | 'SUBMITTED' | 'COMPLETED' | 'EXPIRED' | 'ABANDONED'
  - `steps` object[]: Ordered hosted-flow steps and where the end customer is.
    - `name` 'IDENTITY' | 'DOCUMENTS' | 'SELFIE' | 'QUESTIONNAIRE' | 'REVIEW'
    - `status` 'PENDING' | 'IN_PROGRESS' | 'COMPLETED' | 'SKIPPED'
  - `verificationId` string, nullable: Set once the session has been submitted and a verification exists.
  - `linkExpiresAt` string, date-time
  - `lastActivityAt` string, date-time, nullable

## Other responses

- `404`: No session. No onboarding link has been minted for this customer.

## Changes

- **2026-11-03** `20fef4fd2ab3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation/changes/v1/customers/:customerId/onboarding-session/get.md)

---

[API](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation.md) - [All operations](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation/revisions/20fef4fd2ab3?raw)
