curl --request POST \
--url https://api.enterprise.sandbox.uphold.com/core/users \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "individual",
"email": "[email protected]",
"termsOfService": "general-us-hq",
"fullName": "John Doe",
"birthdate": "1987-01-01",
"primaryCitizenship": "US",
"address": {
"country": "US",
"subdivision": "US-CA",
"city": "Los Angeles",
"line1": "100 Main Street",
"postalCode": "90011"
},
"phone": {
"number": "+12125550123",
"country": "US"
}
}
'{
"user": {
"id": "cd21b26d-35d2-408a-9201-b8fdbef7a604",
"type": "individual",
"email": "[email protected]",
"fullName": "John Doe",
"birthdate": "1987-01-01",
"primaryCitizenship": "US",
"address": {
"country": "US",
"subdivision": "US-CA",
"city": "Los Angeles",
"line1": "100 Main Street",
"postalCode": "90011"
},
"phone": {
"number": "+12125550123",
"country": "US"
},
"createdAt": "2024-03-13T20:20:39.000Z",
"updatedAt": "2024-03-13T20:20:39.000Z"
}
}Users
Create user
Create a new user.
POST
/
core
/
users
curl --request POST \
--url https://api.enterprise.sandbox.uphold.com/core/users \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "individual",
"email": "[email protected]",
"termsOfService": "general-us-hq",
"fullName": "John Doe",
"birthdate": "1987-01-01",
"primaryCitizenship": "US",
"address": {
"country": "US",
"subdivision": "US-CA",
"city": "Los Angeles",
"line1": "100 Main Street",
"postalCode": "90011"
},
"phone": {
"number": "+12125550123",
"country": "US"
}
}
'{
"user": {
"id": "cd21b26d-35d2-408a-9201-b8fdbef7a604",
"type": "individual",
"email": "[email protected]",
"fullName": "John Doe",
"birthdate": "1987-01-01",
"primaryCitizenship": "US",
"address": {
"country": "US",
"subdivision": "US-CA",
"city": "Los Angeles",
"line1": "100 Main Street",
"postalCode": "90011"
},
"phone": {
"number": "+12125550123",
"country": "US"
},
"createdAt": "2024-03-13T20:20:39.000Z",
"updatedAt": "2024-03-13T20:20:39.000Z"
}
}
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
OAuth 2.0 authentication.
Body
application/json
- Individual
- Individual (legacy)
- Business
- Business (legacy)
The type of the user.
Available options:
individual The email address.
Maximum string length:
254The 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 The citizenship country.
Pattern:
^[A-Z]{2}$The address of residency.
Show child attributes
Show child attributes
The phone number.
Show child attributes
Show child attributes
The full legal name.
Maximum string length:
200Pattern:
^\S+\s+\S+(\s+\S+)*$The date of birth.
Additional data for the user.
Was this page helpful?