Before you start
Set up your project and get an API key.
Enterprise feature. Contact us for access.
The user KYC API must be enabled for your project. If calls return
"project not configured to support the users KYC endpoints", contact sales to enable it.userId: format, a unique identifier you choose for the user, for example userId:johnd-123.
User accepts Crossmint's Privacy Policy
Before sharing any user KYC data with Crossmint, you must ensure your users have accepted Crossmint’s Privacy Policy. This is a prerequisite for companies sharing their customer’s KYC data with Crossmint.
Once the user has accepted the privacy policy, record their acceptance using the following API call:
Requirements for collecting consent
Requirements for collecting consent
Consent must be obtained following the guidelines below:
- The user must have the ability to see the terms they must accept
- The user must grant consent with a checkbox, unchecked by default
- The user doesn’t need to open the hyperlink to the privacy policy to view the terms
- The user needs to see Crossmint’s logo in the flow
- The specific text that you must present to your end user is: “I consent to my KYC data being processed by Crossmint in accordance with its Privacy Policy”
- The text can be localized but must link to the same privacy policy link provided above
- If the privacy policy is updated, you must ask the user to agree to the above terms again
This call also creates a user with the specified
userLocator if one does not already exist.Register user information
Register a user with Crossmint by specifying their
userLocator, their personal details, and KYC data using the Create User endpointRun identity verification
Once you have registered relevant user information you can trigger checks via the Trigger Identity Verification endpoint.The response will include the eligibility status for each verification type (
regulated-transfer, onramp, onramp-light, offramp):not-started: Verification has not been initiatedpending-privacy-policy: User has not yet accepted Crossmint’s Privacy Policyrequires-data: Additional user data or documents are neededpending-review: Verification is in progresspending-manual-review: Verification requires manual review by Crossmint’s compliance teamverified: User has passed verificationrejected: User has failed verification
verified, the user can use it. A verified offramp status, for example, means the user can cash out through Offramp.If any of them return requires-data, you must aggregate the missingData and missingDocuments arrays from those specific eligibility objects. Then, update the user’s information using the Update User endpoint and/or upload additional documents using the Upload Document endpoint, and finally re-trigger the verification.Update user information
Register additional user information with Crossmint so the user can access onramp and offramp services.
Calling this endpoint again with the same
userLocator will update the existing user’s information. The endpoint is not additive so specify all relevant user information when updating the user.Upload a document
Upload identity or supporting documents for the user using the Upload Document endpoint. Documents are associated with the user via their Supported document types:
userLocator.- Identity documents:
id-passport,id-idcard-front,id-idcard-back,id-residency-permit(Spain residents only) - Supporting documents:
proof-of-address,proof-of-income - Selfie documents:
selfie-front,selfie-left,selfie-right
US residents provide their identity via SSN in
kycData.identityDocument. No identity document upload or selfie is needed for standard on/offramp. However, if Enhanced Due Diligence (EDD) is triggered, US users must also upload a passport (id-passport) or driver’s license (id-idcard-front, id-idcard-back). Proof of income is not required for US EDD users.Calling this endpoint again with the same
userLocator and documentType will update the existing document’s registered information.Run identity verification
Once you have registered the user’s information and uploaded the required documents, trigger the KYC verification process using the Trigger Identity Verification endpoint.The response will include the eligibility status for each verification type (
regulated-transfer, onramp, onramp-light, offramp):Check verification status
Verification runs asynchronously. After triggering it, poll the Get Identity Verification Status endpoint until the relevant product status reads
verified. It usually completes within a minute, and the transient state may be not-started or pending-review.Fetch user information
You can fetch a user’s information at any time to see their current status, including when they last accepted valid legal documents. Use the Get User endpoint to retrieve this information:The response includes the The
legalDocuments array, which shows the status of legal document acceptances:validVersion field indicates whether the user has accepted the current version of the legal document. If validVersion is false, you should prompt the user to accept the updated terms.Launching in Production
For production, the steps are almost identical, but some changes are required:- Create a developer account on the production console
- Create a production server API key on the API Keys page with the API scopes
users.create,users.read - Replace your test API key with the production key
- Replace
staging.crossmint.comwithwww.crossmint.comin the API URLs
Learn More
Data Requirements
See what data is required for each activity and region.
Talk to an expert
Contact the Crossmint sales team for support.

