curl --request POST \
--url https://api.sand.etherfuse.com/ramp/customer/{customer_id}/verification/import \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"shareToken": "_act-sbx-jwt-eyJhbGciOi..."
}
'const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({shareToken: '_act-sbx-jwt-eyJhbGciOi...'})
};
fetch('https://api.sand.etherfuse.com/ramp/customer/{customer_id}/verification/import', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sand.etherfuse.com/ramp/customer/{customer_id}/verification/import"
payload = { "shareToken": "_act-sbx-jwt-eyJhbGciOi..." }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"customerId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "in_progress",
"requirements": [
{
"type": "personal_data",
"status": "satisfied",
"requiresLaunch": false
},
{
"type": "identity_document",
"status": "satisfied",
"requiresLaunch": false
},
{
"type": "occupation",
"status": "pending",
"requiresLaunch": false
},
{
"type": "selfie",
"status": "satisfied",
"requiresLaunch": true
},
{
"type": "customer_agreement",
"status": "pending",
"requiresLaunch": false
}
]
}"The verification session could not be imported: share token has expired""This customer's verification has already started; a session can only be imported before verification begins"Import a verified session
Import a verification the customer already passed on the partner’s own Sumsub level, handed over as a share token. Prerequisites, and what does and doesn’t transfer: KYC Sumsub Shared Token.
Answers 200, not 202: the import is committed before the response, which carries the same requirements breakdown as GET /ramp/customer/{customer_id}/kyc?requirements=true.
Only shareToken is accepted. The verification level and the customer’s identity are ours to decide. The token is a credential; it is never logged and appears in no response.
No country is sent: it is read from the shared verification and used to route the customer. The customer’s registered userInfo.email is required and is set on the imported applicant.
Nothing is trusted wholesale. Everything imported is re-checked against Etherfuse’s own requirements, so a session approved in the partner’s account is not automatically approved here.
curl --request POST \
--url https://api.sand.etherfuse.com/ramp/customer/{customer_id}/verification/import \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"shareToken": "_act-sbx-jwt-eyJhbGciOi..."
}
'const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({shareToken: '_act-sbx-jwt-eyJhbGciOi...'})
};
fetch('https://api.sand.etherfuse.com/ramp/customer/{customer_id}/verification/import', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sand.etherfuse.com/ramp/customer/{customer_id}/verification/import"
payload = { "shareToken": "_act-sbx-jwt-eyJhbGciOi..." }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"customerId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "in_progress",
"requirements": [
{
"type": "personal_data",
"status": "satisfied",
"requiresLaunch": false
},
{
"type": "identity_document",
"status": "satisfied",
"requiresLaunch": false
},
{
"type": "occupation",
"status": "pending",
"requiresLaunch": false
},
{
"type": "selfie",
"status": "satisfied",
"requiresLaunch": true
},
{
"type": "customer_agreement",
"status": "pending",
"requiresLaunch": false
}
]
}"The verification session could not be imported: share token has expired""This customer's verification has already started; a session can only be imported before verification begins"Authorizations
API key sent in the Authorization header.
Path Parameters
The customer (child org) ID. Must belong to the caller's organization or a direct child.
Body
A verification session the partner already completed with the same provider, handed over as a share token they created for us. No other field is accepted.
The single-use, short-lived share token created for the verified applicant, targeting Etherfuse's client id.
"_act-sbx-jwt-eyJhbGciOi..."
Response
The session was imported. requirements describes what is still outstanding.
The outcome of importing a verification session.
not_started, in_progress, submitted, approved, denied What is still outstanding after the import: the same breakdown GET /ramp/customer/{customer_id}/kyc?requirements=true returns.
Show child attributes
Show child attributes