Executing a Transfer
To execute a regulated transfer, use the standard wallet transfer API. Compliance checks are performed automatically:- Node.js
- REST
<walletAddress>(e.g.,0x1234...5678)chainType[:<walletType>]:alias:<alias>(e.g.,solana:mainnet:alias:treasuryorevm:alias:treasury)
Compliance Errors
If a transfer fails compliance checks, the API will return an error with a specific reason code. Here are the potential compliance-related errors:personal_data_missing
personal_data_missing
Error Message: “Required personal data is missing”Description: The recipient wallet has not provided all personal data required for compliance screening. The recipient must complete their profile with first name, last name, date of birth, and country code.Resolution: Ensure the recipient has attached their personal data using the user onboarding API.
address_sanction_check_failed
address_sanction_check_failed
Error Message: “Recipient address did not pass sanction tests”Description: The recipient’s wallet address failed Elliptic sanctions screening. This indicates the address has been flagged in sanctions lists or is associated with prohibited activities.Resolution: The transfer cannot proceed. The recipient’s wallet address has been identified as high-risk and is blocked from receiving regulated transfers.
user_sanction_check_failed
user_sanction_check_failed
Error Message: “Recipient user did not pass sanction tests”Description: The recipient’s personal information failed sanctions and PEP (Politically Exposed Person) screening. This indicates the individual is on a sanctions list or is a politically exposed person subject to enhanced due diligence.Resolution: The transfer cannot proceed. The recipient has been identified as high-risk based on their personal information and is blocked from receiving regulated transfers.
not_support_recipient_type
not_support_recipient_type
Error Message: “Recipient address is not a Crossmint wallet”Description: The destination address is an external wallet, not a Crossmint-managed wallet. Regulated transfers currently only support transfers between Crossmint treasury wallets and Crossmint user wallets.Resolution: Ensure the recipient has a Crossmint wallet. External wallet addresses are not supported for regulated transfers.
Error Handling Best Practices
When implementing regulated transfers, follow these best practices for error handling:1
Validate recipient before transfer
Before initiating a transfer, verify that the recipient has completed their onboarding and provided all required personal data. This can help prevent
personal_data_missing errors.2
Implement retry logic for transient errors
Some errors may be transient (e.g., temporary API issues). Implement appropriate retry logic with exponential backoff for non-compliance errors.
3
Log compliance failures
Log all compliance-related errors for audit purposes. These logs are important for regulatory reporting and investigating failed transfers.
4
Notify users of compliance issues
When a transfer fails due to compliance issues, notify the affected users with clear instructions on how to resolve the issue (e.g., completing their profile, contacting support).
Supported Transfer Types
Compliant regulated transfers currently work for transfers between Crossmint treasury wallets and Crossmint user wallets. Transfers to external wallets are not supported.

