Instead of sending an SMS code, the user calls the number provided to them. The call itself confirms that the user actually has access to the specified phone number.
How it works
Your website sends two parameters to the API:
the user's phone number;
how long to wait for the call (
sessionTtlMs).
The API returns a phone number to call.
This number should be displayed to the user on the website.
The user calls this number.
If the call is received within the allotted time:
the authorization is considered successful;
you receive a webhook
Authorization call (Call Verify)with a success status.
If the user does not call before the session expires:
the authorization is considered unsuccessful;
you receive a webhook with a failure status.
The unsuccessful attempt is also charged.
Flow:
Your website → sends the user's phone number → receives a number to call → displays it to the user → the user calls → your webhook receives the authorization result.
curl -X'POST' \'<https://paidmethods.kompaas.tech/api/v2/protected/auth/call-verify>' \ -H'accept: application/json' \ -H'Content-Type: application/json' \ -H'Sec-Fetch-Mode: cors' \ -d'{ "userPhoneNumber": "string", "sessionTtlMs": 1}'
Method URL: https://paidmethods.kompaas.tech/api/v2/protected/auth/call-verify
Request:
{ "userPhoneNumber": "3612345678", "sessionTtlMs": 100 }
API response:
{ "sessionId": "b803e6e94146_139245", "phoneNumber": "3687654321", "expiresAt": "2026-09-24T07:35:55.665Z" }
This means that you need to show the user:
Call +36 8 765 4321
After the call, your server will receive the result through the configured 'Call Verify' webhook.
Important: phoneNumber in the response is the number the user should call, while userPhoneNumber in the request is the user's own phone number.
Example of a successful request.
{
"linkedId": "119-1790236307.926540",
"accountId": 139245,
"occurredAt": "2026-09-24T07:51:47.584Z",
"poolPhoneNumber": "3687654321",
"idempotencyKey": "3780cdc9-014b-4be0-98cb-9cd57cc4f220",
"userPhoneNumber": "3612345678",
"isConfirmed": true,
"eventType": "callVerify",
"sessionId": "9a738796f749_139245",
"callerPhoneNumber": "3612345678"
}
Where:
isConfirmed: true— the user successfully confirmed the number;callerPhoneNumber— the number from which the call was actually received;userPhoneNumber— the number that was initially submitted for verification;poolPhoneNumber— the number the user was supposed to call;sessionId— the identifier of the specific verification session.
Example of an unsuccessful request.
{
"linkedId": null,
"accountId": 139245,
"occurredAt": "2026-09-24T07:35:56.102Z",
"poolPhoneNumber": "3687654321",
"idempotencyKey": "7d29db08-48bd-4926-91ed-c02eae6a0d57",
"userPhoneNumber": "3687654321",
"isConfirmed": false,
"eventType": "callVerify",
"sessionId": "b803e6e94146_139245",
"callerPhoneNumber": null
}
Where:
isConfirmed: false— the verification was not completed successfully;callerPhoneNumber: null— no call was received from the user;the session ended due to a timeout.

Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article