Get a fresh ID-check link
API reference

Get a fresh ID-check link

The ID-check link for an account you created — when the first one expired, the creator closed it, or the check was declined and they may try again.

View as MarkdownUpdated Oct 17, 2026
POST/api/external/accounts/{id}/kyc-sessionNew

The ID-check link for an account you created — when the first one expired, the creator closed it, or the check was declined and they may try again.

A link younger than 24 hours is reused unless you pass a new kycReturnUrl.

Authentication

Send the creator's API key as a bearer token: Authorization: Bearer dpfn_…. See Authentication & API keys.

Path parameters

NameTypeRequiredDescription
idstringRequiredThe accountId.

Request body

Content type: application/json — Optional.

NameTypeRequiredDescription
kycReturnUrlstringOptionalhttps URL to return to; we append ?kyc=<status>.
Format: uri
acceptedFromIpstringOptionalThe creator’s browser IP, when you have it.
acceptedUserAgentstringOptionalThe creator’s browser user agent.
New link with a return URL
{
  "kycReturnUrl": "https://crm.example.com/onboarding/done"
}

Responses

200The link.
NameTypeDescription
kycUrlstringRedirect the creator here.
Format: uri
kycExpiresAtstringReused until then.
Format: date-time
reusedbooleanTrue when an open session was returned.
Example response
{
  "kycUrl": "https://verify.didit.me/session/…",
  "kycExpiresAt": "2026-10-18T16:00:00.000Z",
  "reused": false
}

Errors

StatusBodyWhen
401{"error":"Unauthorized","code":"unauthorized"}Missing or invalid API key.
403{"error":"This endpoint needs a key bound to an approved app.","code":"app_key_required"}A Personal key was used.
403{"error":"Use the app owner's key for this endpoint.","code":"owner_key_required"}The key was minted by a creator for themselves. App-level calls need a key held by your app owner: their own, or one their agency minted for its personas or managed creators.
403{"error":"This app is not enabled for this endpoint. Contact support.","code":"capability_missing"}Creator sign-up has not been enabled for your app yet.
404{"error":"Account not found"}No such account, or another app created it.
409{"error":"The ID check is already done.","code":"already_verified"}Approved (or being finalised) — nothing to do.
503{"error":"The ID check is unavailable right now. Try again later.","code":"kyc_unavailable"}The verification provider is down.

Rate limiting

Every response carries the X-RateLimit-Tier header and, on limited tiers, the per-minute and per-day trios — read X-RateLimit-Remaining and X-RateLimit-Reset instead of hardcoding limits. Details in Rate limits.

Code samples

curl -X POST "https://www.dropfans.io/api/external/accounts/$ID/kyc-session" \
  -H "Authorization: Bearer $DROPFANS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kycReturnUrl": "https://crm.example.com/onboarding/done"
}'

Questions? [email protected]