Overview
The first step in the issuance workflow is creating a youth account. This provisions an identity in the Consumers realm and initialises a wallet tenant — giving the youth a place to receive and store credentials.
Endpoint
Request
Request Body
*At least one of email or username must be provided. Behaviour varies depending on the combination — see the API Reference for full details.
Response
The response differs depending on whether the youth is new or already exists.
New User — HTTP 201 Created
Existing User — HTTP 201 Created
If the youth already has an account, the API still returns 201 but with an empty tempPassword. This is not an error — proceed directly to credential issuance.
The only way to detect an existing account is to check whether tempPassword is empty. If empty, skip sending onboarding emails.
Idempotency
This endpoint is idempotent for the same email — it won’t create duplicate accounts. It returns 201 in both new and existing cases.
A 409 Conflict is returned if the username is already taken by a different email, or there’s a mismatch between the provided email and username.