Skip to main content
POST
Create user registers a new user with their identity and compliance information. Users must read and agree with the general Terms of Service associated with their country of residence, and you must provide it in the termsOfService field of the request. You can optionally include custom entity metadata in the metadata field to store your own business data (e.g., external IDs, settings, tracking parameters). If not provided during creation, you can add it later using Set metadata endpoint.
The X-Uphold-User-Ip user context header is mandatory to record the user’s IP when accepting the Terms of Service.

Completing KYC at creation

For individual users, you can optionally provide KYC data directly in this request instead of submitting it afterward through separate calls: fullName, birthdate, and address complete the profile process. You can also provide phone, but the phone process still requires verification. This is entirely optional — you can also create the user with the minimum required fields and complete these processes later.

Authorizations

Authorization
string
header
required

OAuth 2.0 authentication.

Body

application/json
type
enum<string>
default:individual
required

The type of the user.

Available options:
individual
email
string<email>
required

The email address.

Maximum string length: 254
termsOfService
enum<string>
required

The general terms of service the user agreed to.

Available options:
general-us-hq,
general-gb-fca,
general-pt-bop,
general-lt-fcs,
general-bs-scb
primaryCitizenship
string
required

The citizenship country.

Pattern: ^[A-Z]{2}$
address
object
required

The address of residency.

phone
object

The phone number.

fullName
string

The full legal name.

Maximum string length: 200
Pattern: ^\S+\s+\S+(\s+\S+)*$
birthdate
string<date>

The date of birth.

metadata
object

Additional data for the user.

Response

User created.

user
Individual · object
required
errors
object

Additional contextual errors that occurred while processing the request.