Enterprise feature. Contact us for access.
1. Setup
- Create a developer account in the Crossmint Console
- Create a server-side API key with the
orders.create
andorders.read
scopes enabled- Contact Crossmint Support to include your project in our allowlist
2. Create Order
Use the Create Order API to initiate the purchase process. Use the following token addresses for Solana USDC:- Staging:
4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
- Production:
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
3. Check KYC Requirements
After creating an order, check the response for KYC requirements:- If
payment.status
isrequires-kyc
, direct your user through the KYC flow - If
payment.status
isawaiting-payment
, the user has already completed KYC and can proceed
4. Complete KYC Process
Crossmint uses Persona for KYC (Know Your Customer) verification. The Persona SDK allows you to embed the verification flow directly into your application.Embedded experience
Use the provided identifiers to specify which verification template to use (templateId
), which user this verification applies to (referenceId
), and which environment to connect to (environmentId
).

📝 Note:Customization of the KYC flow’s look-and-feel is an enterprise feature. Please contact Crossmint support to enable this feature.
⚠️ Warning: snippet code bellow is only intended for frontend apps (i.e React or Nextjs)For a mobile integration, check Persona’s React Native guide.
Hosted experience
If you want to redirect users to a URL, opening it in a WebView, you can construct the proper Persona URL given the IDs above. Here is an URL example:5. Poll KYC Status
Poll Crossmint’s Get Order API, replacing{orderId}
with the order ID received when initiating the payment, to check the status of the verification. Polling at reasonable intervals is recommended (i.e. every 5 seconds).
- If
payment.status
isawaiting-payment
, user has successfully completed KYC, proceeding to pay - If
payment.status
isrejected-kyc
, verification was rejected and the user can’t onramp - If
payment.status
ismanual-kyc
, verification requires manual review and the user will be notified via email about its ultimate success or rejection
6. Execute Transactions
Initialize Checkout.com’s Flow component for Desktop or Mobile to render an embedded payment form using the payment session and public key obtained in the prior response.7. Transaction Completion
Upon successful payment:- The purchased tokens (minus fees) are sent directly to the user’s wallet
- User receives an email receipt from hello@crossmint.io