Verify KYC
curl --request POST \
--url https://api.example.com/api/v1/auth/kyc/verifyconst options = {method: 'POST'};
fetch('https://api.example.com/api/v1/auth/kyc/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.example.com/api/v1/auth/kyc/verify"
response = requests.post(url)
print(response.text)KYC
Verify KYC
Synchronize the user’s KYC status against Persona and pick up the result.
POST
/
api
/
v1
/
auth
/
kyc
/
verify
Verify KYC
curl --request POST \
--url https://api.example.com/api/v1/auth/kyc/verifyconst options = {method: 'POST'};
fetch('https://api.example.com/api/v1/auth/kyc/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.example.com/api/v1/auth/kyc/verify"
response = requests.post(url)
print(response.text)Requires
Authorization: Bearer <user-access-token> — the token from Verify login code. No X-Api-Key/X-Api-Secret needed; this is a post-login endpoint.inquiryId is omitted, the most recent KYC verification for the user is used.
Request
POST /api/v1/auth/kyc/verify
Authorization: Bearer <user-access-token>
Content-Type: application/json
Body parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
inquiryId | string | No | Persona inquiry ID to check. Defaults to the user’s most recent KYC verification when omitted. |
{
"inquiryId": "inq_abc123"
}
Response
200 OK — KYC state refreshed from Persona.{
"success": true,
"data": {
"verification": {
"id": "ver-uuid",
"status": "approved",
"providerVerificationId": "inq_abc123",
"verificationLevel": "standard",
"riskScore": null,
"riskLevel": null,
"submittedAt": "2026-01-01T00:00:00.000Z",
"reviewedAt": null,
"approvedAt": "2026-01-15T00:00:00.000Z",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-15T00:00:00.000Z"
},
"personaStatus": {
"inquiryId": "inq_abc123",
"status": "approved",
"referenceId": null,
"createdAt": null,
"completedAt": null
},
"statusChanged": true,
"userUpdated": true,
"message": "KYC status updated to approved"
}
}
| Field | Type | Description |
|---|---|---|
data.verification | object | Latest stored KYC verification for the user |
data.verification.status | string | See status values in KYC status |
data.personaStatus | object | Raw status returned by Persona for the inquiry |
data.statusChanged | boolean | true if the stored status was updated as a result of this call |
data.userUpdated | boolean | true if the user record was updated (e.g. approvedAt set) |
data.message | string | Human-readable summary of the outcome |
Errors
| HTTP status | Error | Cause |
|---|---|---|
400 | VALIDATION_ERROR | inquiryId is not a string |
401 | UNAUTHORIZED | Missing or invalid token |
404 | NOT_FOUND | No KYC verification exists for the user |