ID Links
Recheck Link Review
Read the Sumsub review of a link again and settle it
POST
/
customers
/
api
/
id-links
/
{linkId}
/
recheck
curl -X POST "https://api.trusset.org/customers/api/id-links/cmgdx4r2k0003l50a7c1n8e2w/recheck" \
-H "X-API-Key: trusset_your_key_here"
const response = await fetch(
'https://api.trusset.org/customers/api/id-links/cmgdx4r2k0003l50a7c1n8e2w/recheck',
{ method: 'POST', headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await response.json();
const done = data.outcome !== 'PENDING_REVIEW';
{
"success": true,
"data": {
"outcome": "APPROVED",
"customerId": "cmgdx5a9q0006l50a2m4k7h1c",
"registration": "PENDING"
},
"error": null,
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-10-05T10:12:44.000Z"
}
}
{
"success": true,
"data": {
"outcome": "REFUSED",
"code": "KYC_LEVEL_MISMATCH",
"message": "The applicant went through the Sumsub level basic-kyc-level, but this profile requires kyb-professional."
},
"error": null,
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-10-05T10:12:44.000Z"
}
}
Asks Sumsub for the review of a link’s applicant and applies it the way the review webhook would. Use it when a review did not arrive or could not be applied, for example after an outage, or to poll a link your own app runs. The review is judged by the Review rules.
Applying a review has the same effects as the webhook. The link and the customer record change state, an approval queues the on-chain registration and the eligibility admission, and a refusal or a rejection queues removals. When the link carries an email or a phone, the recipient is told of a rejection, a resubmission request or a verification that needed no registration.
Settled links
A link’s review settles once. See A review settles once. This call therefore reports a revoked link, and a link whose review has already settled, asSETTLED without asking Sumsub. Nothing changes on the link.
The exception is a link approved before any wallet was bound and still waiting for one. Sumsub is asked again: a final rejection turns the link REJECTED, a green review answers APPROVED, with registration: AWAITING_WALLET while no wallet is bound, and a request to resubmit is ignored, which answers SETTLED.
A link the hosted page completed before any review arrived has not settled. Its review is read from Sumsub and applied.
Path Parameters
string
required
The link
id, not the token.Outcomes
outcome | Meaning | Other fields |
|---|---|---|
SETTLED | Nothing was applied. The link was revoked or its review had already settled, see Settled links | status, the link status. reason when Sumsub was asked and its review was ignored |
PENDING_REVIEW | Sumsub has no review answer yet, or does not know the applicant | reviewStatus, Sumsub’s review status, when it has one |
APPROVED | Approved and accepted under the profile | registration: AWAITING_WALLET without a bound wallet, PENDING when the registration was queued, REGISTERED when your instance register already verifies the wallet. customerId when the link was finished with a wallet |
REFUSED | Sumsub approved, but the review does not meet the profile. The link turns REJECTED | code: KYC_LEVEL_MISMATCH, KYC_LEVEL_UNKNOWN, KYC_ENTITY_MISMATCH or COUNTRY_BLOCKED. message says why |
REJECTED | A final red review. The link turns REJECTED, also when it was approved and still waits for a wallet | None |
RETRY | Sumsub asks the customer to resubmit. The link stays open, and a link the hosted page had completed is reopened as PENDING | None |
Response Fields
object
Show child attributes
Show child attributes
string
SETTLED, PENDING_REVIEW, APPROVED, REFUSED, REJECTED or RETRY.string
SETTLED only. The link status.string
SETTLED only, present when Sumsub was asked and its review was ignored: ALREADY_SETTLED, or LINK_CLOSED when the link was revoked while the call ran.string
PENDING_REVIEW only, when Sumsub reports one.string
APPROVED only. AWAITING_WALLET, PENDING or REGISTERED.string
APPROVED only, when the link was finished with a wallet. The customer record written.string
REFUSED only. Why the review was refused.string
REFUSED only. The refusal in words.curl -X POST "https://api.trusset.org/customers/api/id-links/cmgdx4r2k0003l50a7c1n8e2w/recheck" \
-H "X-API-Key: trusset_your_key_here"
const response = await fetch(
'https://api.trusset.org/customers/api/id-links/cmgdx4r2k0003l50a7c1n8e2w/recheck',
{ method: 'POST', headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await response.json();
const done = data.outcome !== 'PENDING_REVIEW';
{
"success": true,
"data": {
"outcome": "APPROVED",
"customerId": "cmgdx5a9q0006l50a2m4k7h1c",
"registration": "PENDING"
},
"error": null,
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-10-05T10:12:44.000Z"
}
}
{
"success": true,
"data": {
"outcome": "REFUSED",
"code": "KYC_LEVEL_MISMATCH",
"message": "The applicant went through the Sumsub level basic-kyc-level, but this profile requires kyb-professional."
},
"error": null,
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-10-05T10:12:44.000Z"
}
}
Error Codes
| Code | HTTP | Cause |
|---|---|---|
NOT_FOUND | 404 | No link with this ID exists on your instance |
NO_APPLICANT | 409 | The identity check behind the link has not started yet |
RATE_LIMIT_EXCEEDED | 429 | Your instance went over its budget of 120 link onboarding requests per minute |
RECHECK_FAILED | 500 | The review could not be applied |
SUMSUB_UNAVAILABLE | 503 | Sumsub could not be reached. Retry shortly |
⌘I
curl -X POST "https://api.trusset.org/customers/api/id-links/cmgdx4r2k0003l50a7c1n8e2w/recheck" \
-H "X-API-Key: trusset_your_key_here"
const response = await fetch(
'https://api.trusset.org/customers/api/id-links/cmgdx4r2k0003l50a7c1n8e2w/recheck',
{ method: 'POST', headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await response.json();
const done = data.outcome !== 'PENDING_REVIEW';
{
"success": true,
"data": {
"outcome": "APPROVED",
"customerId": "cmgdx5a9q0006l50a2m4k7h1c",
"registration": "PENDING"
},
"error": null,
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-10-05T10:12:44.000Z"
}
}
{
"success": true,
"data": {
"outcome": "REFUSED",
"code": "KYC_LEVEL_MISMATCH",
"message": "The applicant went through the Sumsub level basic-kyc-level, but this profile requires kyb-professional."
},
"error": null,
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-10-05T10:12:44.000Z"
}
}
