curl --request PUT \
--url https://staging.crossmint.com/api/2025-06-09/users/{userLocator} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"dueDiligence": {
"employmentStatus": "full-time",
"expectedYearlyTxVolume": "volume-0-25k",
"industry": "financial-institution",
"sourceOfFunds": "salary-disbursement"
},
"kycData": {
"addressOfResidence": {
"city": "Berlin",
"line1": "123 Hauptstrasse",
"line2": "Apt 5",
"postalCode": "10115",
"stateOrRegion": "Berlin"
},
"email": "johnd@example.com",
"identityDocument": {
"issuingCountryCode": "DE",
"number": "AS12321",
"type": "passport"
},
"ipAddresses": [
"203.0.113.1"
],
"nationality": "DE"
},
"userDetails": {
"countryOfResidence": "DE",
"dateOfBirth": "1995-01-01",
"firstName": "John",
"lastName": "Doe"
}
}
'{
"dueDiligence": false,
"kycData": false,
"userDetails": true,
"verificationHistory": false,
"email": "john.doe@example.com",
"legalDocuments": [
{
"acceptedAt": "2023-01-01T00:00:00.000Z",
"isValidVersion": true,
"type": "crossmint-privacy-policy"
}
],
"phoneNumber": "+1234567890",
"userId": "usr_1234567890"
}{
"dueDiligence": false,
"kycData": false,
"userDetails": true,
"verificationHistory": false,
"email": "john.doe@example.com",
"legalDocuments": [
{
"acceptedAt": "2023-01-01T00:00:00.000Z",
"isValidVersion": true,
"type": "crossmint-privacy-policy"
}
],
"phoneNumber": "+1234567890",
"userId": "usr_1234567890"
}Create or Update User
Create or update a user and their personal data by user locator. If the user doesn’t exist, they will be created.
API scope required: users.create
curl --request PUT \
--url https://staging.crossmint.com/api/2025-06-09/users/{userLocator} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"dueDiligence": {
"employmentStatus": "full-time",
"expectedYearlyTxVolume": "volume-0-25k",
"industry": "financial-institution",
"sourceOfFunds": "salary-disbursement"
},
"kycData": {
"addressOfResidence": {
"city": "Berlin",
"line1": "123 Hauptstrasse",
"line2": "Apt 5",
"postalCode": "10115",
"stateOrRegion": "Berlin"
},
"email": "johnd@example.com",
"identityDocument": {
"issuingCountryCode": "DE",
"number": "AS12321",
"type": "passport"
},
"ipAddresses": [
"203.0.113.1"
],
"nationality": "DE"
},
"userDetails": {
"countryOfResidence": "DE",
"dateOfBirth": "1995-01-01",
"firstName": "John",
"lastName": "Doe"
}
}
'{
"dueDiligence": false,
"kycData": false,
"userDetails": true,
"verificationHistory": false,
"email": "john.doe@example.com",
"legalDocuments": [
{
"acceptedAt": "2023-01-01T00:00:00.000Z",
"isValidVersion": true,
"type": "crossmint-privacy-policy"
}
],
"phoneNumber": "+1234567890",
"userId": "usr_1234567890"
}{
"dueDiligence": false,
"kycData": false,
"userDetails": true,
"verificationHistory": false,
"email": "john.doe@example.com",
"legalDocuments": [
{
"acceptedAt": "2023-01-01T00:00:00.000Z",
"isValidVersion": true,
"type": "crossmint-privacy-policy"
}
],
"phoneNumber": "+1234567890",
"userId": "usr_1234567890"
}Authorizations
API key required for authentication
Path Parameters
A user locator can be of the format:
email:<email>userId:<userId>phoneNumber:<phoneNumber>twitter:<handle>x:<handle>
"email:user@example.com"
"userId:507f1f77bcf86cd799439011"
"userId:did:example:cm4lr5piw0h6t1bjho0onryql"
"phoneNumber:+12125551234"
"twitter:johndoe"
"x:@johndoe"
Body
Optional due diligence information for compliance purposes
- Non-US residents
- US residents
Show child attributes
Show child attributes
{
"employmentStatus": "full-time",
"expectedYearlyTxVolume": "volume-25k-75k",
"industry": "financial-institution",
"sourceOfFunds": "salary-disbursement"
}
Optional KYC data for identity verification
Show child attributes
Show child attributes
{
"addressOfResidence": {
"city": "New York",
"line1": "123 Main Street",
"line2": "Apt 4B",
"postalCode": "10001",
"stateOrRegion": "NY"
},
"email": "john.doe@example.com",
"identityDocument": {
"issuingCountryCode": "US",
"number": "123-45-6789",
"type": "ssn"
},
"nationality": "US",
"phoneNumber": "+1234567890"
}
Optional user details including name, date of birth, and country of residence
Show child attributes
Show child attributes
{
"countryOfResidence": "US",
"dateOfBirth": "1990-01-15",
"firstName": "John",
"lastName": "Doe"
}
Optional verification timestamps.
Show child attributes
Show child attributes
{
"idVerificationTimestamp": "2024-01-15T10:30:00Z",
"livenessVerificationTimestamp": "2024-01-15T10:32:00Z"
}
Response
User updated
Whether due diligence data has been provided
false
Whether KYC data has been provided
false
Whether user details have been provided
true
Whether verification history has been provided
false
User's email address
"john.doe@example.com"
List of accepted legal documents
Show child attributes
Show child attributes
[
{
"acceptedAt": "2023-01-01T00:00:00.000Z",
"isValidVersion": true,
"type": "crossmint-privacy-policy"
}
]
User's phone number
"+1234567890"
Unique user identifier
"usr_1234567890"
Was this page helpful?

