Persona Token Sharing with Coinflow

Overview

If you already use Persona for KYC verification, you can share that verified data directly with Coinflow. This eliminates duplicate verification for your users and provides a seamless payout experience.

This integration uses Persona’s Share Token feature, which allows you to securely share verified identity data with Coinflow.

Who Should Use This Method

Persona Token Sharing is ideal for merchants who:

  • Already have an active Persona account
  • Have users verified through Persona
  • Want to avoid requiring users to complete KYC again
  • Want to leverage existing KYC infrastructure

How It Works

When you call the Register User Via Share Token endpoint:

  1. Coinflow creates an inquiry to receive the shared data
  2. The Share Token is redeemed, transferring the verification data to Coinflow’s inquiry
  3. The user can now proceed with payouts without additional KYC

Setup Process

Merchants who want to share Persona data with Coinflow will need to set up a Persona Connect data sharing partnership with Coinflow. Reach out to a Coinflow integrations representative to get started with setting up a Persona connection.

Once the Persona connection has been established, follow these steps:

  1. Call Persona’s Create Share Token endpoint to generate a share token for the completed Inquiry.
Create Share Token
1curl -X POST https://api.withpersona.com/api/v1/connect/share-tokens \
2 -H "Authorization: Bearer <YOUR_PERSONA_API_KEY>" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "data": {
6 "attributes": {
7 "connection-id": "<COINFLOW_CONNECTION_ID>",
8 "source-id": "<INQUIRY_ID>"
9 }
10 }
11 }'
  1. Call our Register User Via Share Token endpoint to pass KYC data using the share token.
Request
1curl --request POST \
2--url https://api-sandbox.coinflow.cash/api/withdraw/kyc/share-token \
3--header 'Authorization: YOUR_API_KEY' \
4--header 'accept: application/json' \
5--header 'content-type: application/json' \
6--header 'x-coinflow-auth-user-id: user123' \
7--data '{
8 "vendor": "persona",
9 "shareToken": "cnst_ABC123",
10 "email": "testuser@test.com"
11}'
Response
1{
2 "withdrawer": {
3 "_id": "67449b17d654e5cdd2925f1c",
4 "currency": "USD",
5 "email": "testuser@test.com",
6 "verification": {
7 "status": "pending"
8 }
9 }
10}

Important for UI Integration: If you’re using Coinflow’s prebuilt UI components (e.g., CoinflowWithdraw), call the Register User Via Share Token endpoint before rendering the component to ensure the verification record exists.

When calling the Get Withdrawer endpoint after registration, Coinflow will automatically check the Share Token status to ensure the verification is complete before returning the withdrawer data. If there are missing fields that are required by Coinflow, the user will be prompted to fill in the remaining fields.