OAuth Verify / Validate verification token
/verify/validateOne-shot server validation. Pass access_token as verification_token. Replay returns 409. Create your app session only after valid: true.
verification_token (+ optional client_id) — No partner secret. Call from your backend with the token from token exchange.
Content-Type: application/json · required
client_idstringOptional; when set must match the token's client
verification_tokenstringrequiredUse access_token from POST /oauth/token
200 Token valid and consumed
client_idstringexpires_atstring (date-time)userobjectrequiredaccessRolestringnullableemailstringnullablefullNamestringnullableidinteger | stringrequiredisAdminbooleannullablephonestringnullablerolestringnullablevalidbooleanrequiredEnum: true
verification_idstring400 verification_token missing
errorstringerror_descriptionstringvalidboolean401 invalid_verification_token or invalid_client
errorstringrequiredEnum: invalid_verification_token, invalid_client, verification_token_already_used
validbooleanrequiredEnum: false
409 Token already consumed
errorstringrequiredEnum: invalid_verification_token, invalid_client, verification_token_already_used
validbooleanrequiredEnum: false
| Error | HTTP | Meaning | Fix |
|---|---|---|---|
invalid_verification_token | 401 | Unknown, expired, or malformed token | Send fresh access_token from /oauth/token Diagnose → |
invalid_client | 401 | client_id does not match token | Omit client_id or match the starting publishable id Diagnose → |
verification_token_already_used | 409 | Token already consumed | Start a new login; do not retry validate Diagnose → |
@keyra/typescript-sdk: validateVerification({ verification_token, client_id? })ie.keyra:keyra-java-sdk: validateVerification(token, clientId)curl -X POST "https://auth.keyra.ie/verify/validate" \
-H "Content-Type: application/json" \
-d '{"verification_token":"oat_xxxxxxxx","client_id":"cp_test_xxxxxxxx"}'Response
{
"valid": true,
"verification_id": "tok_row_id",
"client_id": "cp_test_xxxxxxxx",
"expires_at": "2026-08-05T12:00:00.000Z",
"user": {
"id": "usr_123",
"phone": "+15551234567",
"fullName": "Ada Lovelace",
"email": "ada@example.com"
}
}