Create User (self-registration)
POST /obp/v7.0.0/users
OBPv7.0.0-createUser No role required UserOnboarding
Creates an OBP user (self-registration). No authorisation required.
Requires email, username, password, first_name and last_name.
v7.0.0 adds the optional mobile_phone_number: the registering person's own
number (global across banks, distinct from the bank-scoped mobile_phone_number
on Customer, which is KYC data of a legal entity). It is stored unverified —
mobile_phone_number_is_validated is false and
mobile_phone_number_validated_date is empty until a separate validation flow
succeeds. Omit the field, or send null / blank, to register without a number.
Validation checks performed:
- Password must meet strong password requirements (OBP-30207: Invalid Password Format. Your password should EITHER be at least 10 characters long and contain mixed numbers and both upper and lower case letters and at least one special character, OR the length should be > 16 and <= 512.)
- Username must be unique (409, OBP-20258: Duplicate Username. Cannot create Username because it already exists. )
mobile_phone_number, when present, must be an optional leading+followed by 5 to 50 digits, spaces, dashes, dots or parentheses (OBP-40017: Invalid Phone Number. Please specify a valid value for PHONE_NUMBER. Eg:+9722398746 )
Email validation behavior:
- Controlled by property
authUser.skipEmailValidation(default: false) - When false: the user is created with validated=false and a validation email is sent.
The link uses
public_obp_portal_url(or legacyportal_external_url); if that is not set, or sending fails, the user can retry via POST /obp/v7.0.0/users/validation-emails. - When true: the user is created with validated=true and no email is sent.
- Default entitlements are granted immediately regardless of validation status.
User Authentication is Optional. The User need not be logged in.
JSON request body fields (6)
- felixsmith@example.com
- first_name
- Tom
- last_name
- Smith
- password
- passwordpasswordpassword
- username
- felixsmith
- mobile_phone_number
- +49 30 901820
JSON response body fields (9)
- felixsmith@example.com
- entitlements
- list
- provider
- ETHEREUM
- provider_id
- user_id
- 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
- username
- felixsmith
- mobile_phone_number
- +49 30 901820
- mobile_phone_number_is_validated
- mobile_phone_number_is_validated
Example request body
{
"email": "felixsmith@example.com",
"username": "felixsmith",
"password": "String",
"first_name": "Simon",
"last_name": "Redfern",
"mobile_phone_number": "+44 07972 444 876"
}Example success response
{
"user_id": "9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1",
"email": "felixsmith@example.com",
"provider_id": "Chris",
"provider": "http://127.0.0.1:8080",
"username": "felixsmith",
"mobile_phone_number": "+44 07972 444 876",
"mobile_phone_number_is_validated": false,
"entitlements": {
"list": []
}
}Possible errors (6)
- OBP-10001: Incorrect json format.
- OBP-30207: Invalid Password Format. Your password should EITHER be at least 10 characters long and contain mixed numbers and both upper and lower case letters and at least one special character, OR the length should be > 16 and <= 512.
- OBP-20258: Duplicate Username. Cannot create Username because it already exists.
- OBP-40017: Invalid Phone Number. Please specify a valid value for PHONE_NUMBER. Eg:+9722398746
- Error occurred during user creation.
- OBP-50000: Unknown Error.