Testing Overview
This guide provides detailed testing instructions for the customer KYC process in the Meld sandbox environment. Meld generally recommends testing the unified KYC flow in production for a realistic experience. However, if you would like to test the flow end-to-end Meld’s sandbox, please follow this guide. When testing from the Meld Sandbox environment, you will be testing against Sumsub and Virtual Account providers’ Sandbox environments as well. This means you can enter fake data, provide fake documents, and provide any answers to the questionnaires. Only the liveliness check will be performed by Sumsub for real (you will need to perform simple moving actions in front of the camera).Quick Start
New to testing? Start with the Sandbox Environment Guide to understand sandbox limitations and best practices. Ready to test? This page contains specific testing credentials for each provider.KYC Flow Testing
Prerequisite
Meld is currently integrated with a single KYC Provider, Sumsub. This means that the user’s KYC data that is shared with Sumsub can later be automatically shared with onramps, which improves user experience and reduces the friction. To make the user pass the KYC on Sumsub, there are 2 options1. Meld KYCes the user
Please refer to Meld KYCes the user. To KYC the user, callPOST /accounts/customers/{customerId}/kyc/initiate. The customerId is in the path, and your request body will look like this:
serviceProviderCustomers.kyc.status is REJECTED, this means the user has failed KYC. Either the user has to go through the KYC flow once again (repeat this step), or the user will be unable to use this flow, and is unlikely to be able to buy crypto. Note that a user who fails KYC in this flow will very likely also fail KYC directly with any onramp.
2. You already KYCed the user with your Sumsub account
If you already have a user who has passed KYC on your Sumsub account, you can import it into Meld by sharing the Sumsub applicant token (TOKEN_SHARE mode). See Sumsub requirements for importing the applicant. To import the KYC of the user, callPOST /accounts/customers/{customerId}/kyc/initiate. You will need to pass the Sumsub KYC token, generated for the meld.io_75082 client. The customerId is in the path, and your request body will look like this:
Sharing KYC with onramps with widget (synchronous KYC)
If you completed the previous steps and successfully KYCed the user with Meld (or imported your Sumsub KYC applicant), share the KYC with the onramp by settingbypassKyc: true in the body of POST /crypto/session/widget. Meld will pass the KYC data to the onramp through Sumsub. The onramp may still require some additional KYC if the Sumsub data is insufficient, but anything already provided will be prefilled.
- Mercuryo
- Paybis
- Topper
- Unlimit
Sharing KYC with Virtual Account providers (asynchronous KYC)
In both KYC initiation modes (HOSTED_URL and TOKEN_IMPORT), you can optionally specify Virtual Account providers to share the user’s KYC with after Sumsub approves submission, via thekycShareProviders field. Alternatively, add share providers later by calling PATCH /accounts/customers/{customerId}/kyc/initiate.
GET /accounts/customers for more details. For example, when the Virtual Account provider requires additional KYC on their platform, you’ll receive a webhook event with kycRecepient.status=PENDING. Then, when calling GET /accounts/customers, you’ll receive the following response:
HostedURL so they can pass additional KYC on the Virtual Account provider’s platform. After users complete additional KYC and the Virtual Account provider verifies it, you will receive another CUSTOMER_KYC_STATUS_CHANGE event with kycRecepient.status=APPROVED. The new status will also be reflected in GET /accounts/customers responses.
Async KYC sharing is currently supported with the following Virtual Account Onramps:
- Noah
- DueNetwork