SIM Verification
Common objects & errors
Every SIM Verification response carries the same errors array alongside data, and every call fails the same way at the transport layer — both defined once here and referred to by name from each endpoint page.
Error envelope
When data.status is "failure", errors tells you why the request failed. In case of any other errors, data is empty and errors carries the code the server sent alongside the HTTP status.
{
"errors": [
{
"code": string,
"message": string,
"detail": {
"field": string, // optional, which parameter is invalid.
... // any other information that can be useful for client
},
},
... // other errors
]
}
Each entry contains:
| Name | Type | Description |
|---|---|---|
code | string | which error occurred — see Shared transport errors, or the failure codes on the endpoint's own page |
message | string | the message that accompanies the code |
detail | json_object | field is optional and says which parameter is invalid, plus any other information that can be useful for client |
Shared transport errors
In case of any other errors, the data field will be empty, and the server sends one of the following HTTP status codes with an error code. These are the same on every SIM Verification call.
| HTTP code | error code | description |
|---|---|---|
401 | access_denied_exception | You are not authorized to perform the action. |
400 | invalid_parameter_exception | Input parameter violates a constraint. |
400 | request_time_too_skewed | The X-TV-Timestamp header is expired, need a newer one. |
408 | request_timeout_exception | Request takes too long to process |
429 | rate_limit_exception | The number of requests exceeded your throughput limit. |
500 | internal_server_error | Some unexpected error occurs while processing the request |
A code that arrives with HTTP 200 and data.status: "failure" belongs to the endpoint that returned it, and is documented under Failure codes on that endpoint's own page.