Skip to main content
This section is for developers who want to KYC their users once and reuse that verification across multiple onramps. Meld’s Unified KYC lets a user complete KYC a single time and then transact through any supported onramp without re-verifying — improving conversion and reducing friction. There are 3 flows within Unified KYC:
  1. Meld KYCes the user: You call Meld’s API to get back a KYC link and launch it from your UI; Meld handles the rest. This is the best flow from a user experience standpoint, as Meld will ensure it collects all KYC data required by the downstream onramps.
  2. You KYC the user: You integrate a KYC provider yourself, run the user through their KYC process, track status, then pass the KYC token or the raw KYC data to Meld. Since this flow is more work for you, and you would need to ensure that you collect all of the KYC data that the onramps require, this flow is only recommended if you’re already KYCing users with a KYC provider.
  3. Retrieve KYC Data: If you have a use case where you need the KYC data of your existing users, such as to KYC them for a separate product you are offering, you can fetch a KYC token or the raw KYC data of the user from Meld.

Which flow should I use?

Share KYC with providers

Approving a customer does not on its own reach every onramp. Providers that take their KYC as a share from Meld, such as Banxa, receive it only if you name them in kycShareProviders on kyc/initiate. This works the same whichever flow starts the KYC: HOSTED_URL, TOKEN_IMPORT or RAW_DATA_IMPORT.
  • Name every provider you will order with whose KYC comes from a share. Meld shares with each one once the customer is approved. A provider left out never receives the customer’s KYC, and its orders are refused with 403 KYC_NOT_COMPLETED. Eligibility reports this as PROVIDER_KYC_SHARE for the provider.
  • To add a provider for a customer who is already approved, call PATCH /accounts/customers/{customerId}/kyc/initiate with the same body, naming the new provider in kycShareProviders. serviceProvider and mode are still required. Meld shares straight away, without sending the customer through KYC again.
  • A POST naming a provider the customer was already shared with returns 409. Use the PATCH instead.