{"id":3504,"date":"2026-01-13T09:21:23","date_gmt":"2026-01-13T06:21:23","guid":{"rendered":"https:\/\/docs.unibell.tech\/?page_id=3504"},"modified":"2026-02-17T14:03:43","modified_gmt":"2026-02-17T11:03:43","slug":"hlr-api","status":"publish","type":"page","link":"https:\/\/docs.unibell.tech\/?page_id=3504","title":{"rendered":"HLR API"},"content":{"rendered":"\n<h2 id=\"hlr\" class=\"anchor\">Sending an asynchronous HLR request<\/h2>\n\n\n\n<p>For information about the authentication and authorization procedures that associate API calls with the required applications in your account, see <a href=\"https:\/\/docs.unibell.tech\/?page_id=3582\">Authorization<\/a>.<\/p>\n\n\n\n<p><strong>Request:<\/strong><\/p>\n\n\n\n<p>Parameters can be passed in the request headers:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>POST\/GET https:\/\/api.unibell.ru\/v2\/hlr?X-Authorization=AccessKey d8ac9959r12b43545XXXXX&amp;destAddr=7XXXXXXXXXX<\/code><\/pre>\n\n\n\n<p>Or in the request body:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"destAddr\": \"7XXXXXXXXXX\"\n}<\/code><\/pre>\n\n\n\n<p><strong>Example requests using CURL:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --location --request POST 'https:\/\/api.unibell.ru\/v2\/hlr?X-Authorization=AccessKey%20d8ac9959r12b43545XXXXX&amp;destAddr=7XXXXXXXXXX'<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --location 'https:\/\/api.unibell.ru\/v2\/hlr' \\\n--header 'X-Authorization: AccessKey d8ac9959r12b43545XXXXX' \\\n--header 'Content-Type: application\/json' \\\n--data '{\n    \"destAddr\": \"7XXXXXXXXXX\"\n}'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>Parameter<\/strong><\/th><th><strong>Type<\/strong><\/th><th><strong>Description<\/strong><\/th><\/tr><\/thead><tbody><tr><td>destAddr<\/td><td>string<\/td><td>Phone number to which the HLR request was sent, in e.164 format, for example, for the Russian Federation: 7XXXXXXXXXX<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Response upon successful request execution:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"status\": \"Created\",\n    \"requestId\": \"11273\"\n}<\/code><\/pre>\n\n\n\n<p><strong>Response in case <code>destAddr<\/code> is missing:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"status\": \"Rejected\",\n    \"error\": \"Missing destAddr param\"\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>status<\/strong><\/td><td>string<\/td><td>Request status:<br><sub>Created &#8211; The message has been created in the system but not yet sent<br>Rejected &#8211; The message was not accepted for sending, see error for details<br>prohibitedForServiceError &#8211; The key does not belong to the HLR service<br>invalidAccessKeyError &#8211; Authorization key error<\/sub><br><sub>accountFinanciallyBlocked \u2014 The customer is blocked by the balance\/Blocking by IP address<\/sub><\/td><\/tr><tr><td><strong>requestId<\/strong><\/td><td>string<\/td><td>Unique request identifier<\/td><\/tr><tr><td><strong>error<\/strong><\/td><td>string<\/td><td>Error description:<br><sub>Missing destAddr param &#8211; destAddr is missing in the request<\/sub><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"synchronous_request\" class=\"anchor\">Sending a synchronous HLR request<\/h2>\n\n\n\n<p>A synchronous request \u2014 the system returns a response immediately within the same request.<\/p>\n\n\n\n<p><strong>Request:<\/strong><\/p>\n\n\n\n<p>Parameters can be passed in the request headers:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>POST\/GET https:\/\/api.unibell.ru\/v3\/hlr?X-Authorization=AccessKey d8ac9959r12b43545XXXXX&amp;destAddr=7XXXXXXXXXX<\/code><\/pre>\n\n\n\n<p>Or in the request body:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"destAddr\": \"7XXXXXXXXXX\"\n}<\/code><\/pre>\n\n\n\n<p><strong>Example requests using CURL:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --location --request POST 'https:\/\/api.unibell.ru\/v3\/hlr?X-Authorization=AccessKey%20d8ac9959r12b43545XXXXX&amp;destAddr=7XXXXXXXXXX'<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --location 'https:\/\/api.unibell.ru\/v3\/hlr' \\\n--header 'X-Authorization: AccessKey d8ac9959r12b43545XXXXX' \\\n--header 'Content-Type: application\/json' \\\n--data '{\n    \"destAddr\": \"7XXXXXXXXXX\"\n}'<\/code><\/pre>\n\n\n\n<p><strong>Response upon successful request execution:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"id\": 9654,\n    \"destAddr\": \"7XXXXXXXXXX\",\n    \"requestId\": \"11273\",\n    \"status\": \"Delivered\",\n    \"networkErrCode\": 0,\n    \"mcc\": 250,\n    \"mnc\": 2,\n    \"originalMcc\": 250,\n    \"originalMnc\": 20,\n    \"ported\": 1\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>id<\/td><td>integer<\/td><td>Unique HLR identifier<\/td><\/tr><tr><td>destAddr<\/td><td>string<\/td><td>Phone number to which the HLR request was sent, in e.164 format, for example, for the Russian Federation: 7XXXXXXXXXX<\/td><\/tr><tr><td>requestId<\/td><td>string<\/td><td>Unique request identifier<\/td><\/tr><tr><td>status<\/td><td>string<\/td><td>HLR request status:<br><sub>Delivered &#8211; Phone is active<br>Expired &#8211; Waiting time for network response expired<br>Deleted &#8211; Request canceled before receiving result<br>Undeliverable &#8211; Phone is inactive<br>Accepted &#8211; Request sent, but network result not yet received<br>Unknown &#8211; Unknown error<br>Rejected &#8211; Request rejected by the network, check impossible<\/sub><br><sub>prohibitedForServiceError &#8211; The key does not belong to the HLR service<br>invalidAccessKeyError &#8211; Authorization key error<\/sub><br><sub>accountFinanciallyBlocked \u2014 The customer is blocked by the balance\/Blocking by IP address<\/sub><\/td><\/tr><tr><td>networkErrCode<\/td><td>string<\/td><td>SS7 errors, <a href=\"https:\/\/docs.unibell.tech\/?page_id=3504#Status-error-codes\">see below<\/a><\/td><\/tr><tr><td>mcc<\/td><td>integer<\/td><td>Mobile Country Code<\/td><\/tr><tr><td>mnc<\/td><td>integer<\/td><td>Mobile Network Code \u2013 mobile operator code<\/td><\/tr><tr><td>originalMcc<\/td><td>integer<\/td><td>MCC of the original operator<br><sup>Country code of the mobile network where the subscriber was initially registered<\/sup><\/td><\/tr><tr><td>originalMnc<\/td><td>integer<\/td><td>MNC of the original operator<br><sup>Mobile operator code within the country where the subscriber was initially registered<\/sup><\/td><\/tr><tr><td>ported<\/td><td>integer<\/td><td>Indicates whether the number has been ported:<br><sub>1 &#8211; if the number was ported<br>0 &#8211; if not ported<\/sub><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"hlr_status\" class=\"anchor\">Retrieving status<\/h2>\n\n\n\n<p><strong>Request:<\/strong><\/p>\n\n\n\n<p>Parameters can be passed in the request headers:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GET https:\/\/api.unibell.ru\/v2\/hlr_status?X-Authorization=AccessKey d8ac9959r12b43545XXXXX&amp;requestId=11273<\/code><\/pre>\n\n\n\n<p>As well as in the request body:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"requestId\": \"11273\"\n}<\/code><\/pre>\n\n\n\n<p><strong>Example requests using CURL:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --location 'https:\/\/api.unibell.ru\/v2\/hlr_status?X-Authorization=AccessKey%20d8ac9959r12b43545XXXXX&amp;requestId=11273'<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --location --request GET 'https:\/\/api.unibell.ru\/v2\/hlr_status' \\\n--header 'X-Authorization: AccessKey d8ac9959r12b43545XXXXX' \\\n--header 'Content-Type: application\/json' \\\n--data '{\n    \"requestId\": \"11273\"\n}'<\/code><\/pre>\n\n\n\n<p><strong>Response body upon successful request execution:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"id\": 9654,\n    \"destAddr\": \"7XXXXXXXXXX\",\n    \"requestId\": \"11273\",\n    \"status\": \"Rejected\",\n    \"networkErrCode\": 34,\n    \"mcc\": 0,\n    \"mnc\": 0,\n    \"ported\": 0\n}<\/code><\/pre>\n\n\n\n<p><strong>Response in case the <code>requestId<\/code> parameter is missing:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"status\": \"Rejected\",\n    \"error\": \"Missing requestId param\"\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>id<\/td><td>integer<\/td><td>Unique HLR identifier<\/td><\/tr><tr><td>destAddr<\/td><td>string<\/td><td>Phone number to which the HLR request was sent, in e.164 format, for example, for the Russian Federation: 7XXXXXXXXXX<\/td><\/tr><tr><td>requestId<\/td><td>string<\/td><td>Unique request identifier<\/td><\/tr><tr><td>status<\/td><td>string<\/td><td>HLR request status:<br><sub>Created &#8211; Request created in the system but not yet sent<br>Enroute &#8211; Request is being processed, awaiting network verification<br>Delivered &#8211; Phone is active<br>Expired &#8211; Waiting time for network response expired<br>Deleted &#8211; Request canceled before receiving result<br>Undeliverable &#8211; Phone is inactive<br>Accepted &#8211; Request sent, but network result not yet received<br>Unknown &#8211; Unknown error<br>Rejected &#8211; Request rejected by the network, check impossible<br>notFound &#8211; Record for the requested requestId does not exist\/not found<\/sub><\/td><\/tr><tr><td>networkErrCode<\/td><td>string<\/td><td>SS7 errors, <a href=\"https:\/\/docs.unibell.tech\/?page_id=3504#Status-error-codes\">see below<\/a><\/td><\/tr><tr><td>mcc<\/td><td>integer<\/td><td>Mobile Country Code \u2013 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u044b<\/td><\/tr><tr><td>mnc<\/td><td>integer<\/td><td>Mobile Network Code \u2013 mobile operator code<\/td><\/tr><tr><td>ported<\/td><td>integer<\/td><td>Indicates whether the number has been ported:<br><sub>1 &#8211; if the number was ported<br>0 &#8211; if not ported<\/sub><\/td><\/tr><tr><td>error<\/td><td>string<\/td><td>Error description:<br><sub>Missing requestId param &#8211; requestId is missing in the request<\/sub><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"hlr_webhook\" class=\"anchor\">Retrieving request statuses via Webhook<\/h2>\n\n\n\n<p><strong>Request source:<\/strong><\/p>\n\n\n\n<p>Webhooks will be sent from the IP addresses 185.175.44.211 and 46.148.235.62, which must be added to the ACL on the client\u2019s web server to ensure proper interaction.<\/p>\n\n\n\n<p><strong>Interaction format:<\/strong><\/p>\n\n\n\n<p>Callbacks are performed over the HTTP protocol.<\/p>\n\n\n\n<p>Data is transmitted in JSON format.<\/p>\n\n\n\n<p>Webhook setup is performed by submitting a request to technical support.<\/p>\n\n\n\n<p><strong>Sending a request:<\/strong><\/p>\n\n\n\n<p>The request is sent in JSON format, which has the following structure:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"ported\": 0,\n  \"mnc\": 0,\n  \"requestId\": \"35714061\",\n  \"destAddr\": \"7XXXXXXXXXX\",\n  \"id\": 639073386,\n  \"networkErrCode\": 0,\n  \"mcc\": 0,\n  \"status\": \"Delivered\"\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>ported<\/td><td>integer<\/td><td>Indicates whether the number has been ported:<br><sub>1 &#8211; if the number was ported<br>0 &#8211; if not ported<\/sub><\/td><\/tr><tr><td>mnc<\/td><td>integer<\/td><td>Mobile Network Code \u2013 mobile operator code<\/td><\/tr><tr><td>requestId<\/td><td>string<\/td><td>Unique request identifier<\/td><\/tr><tr><td>destAddr<\/td><td>string<\/td><td>Phone number to which the HLR was sent, in e.164 format, for example, for the Russian Federation: 7XXXXXXXXXX<\/td><\/tr><tr><td>id<\/td><td>integer<\/td><td>Unique HLR identifier<\/td><\/tr><tr><td>networkErrCode<\/td><td>string<\/td><td>SS7 errors, <a href=\"https:\/\/docs.unibell.tech\/?page_id=3504#Status-error-codes\">see below<\/a><\/td><\/tr><tr><td>mcc<\/td><td>integer<\/td><td>Mobile Country Code<\/td><\/tr><tr><td>status<\/td><td>string<\/td><td>HLR request status:<br><sub>Created &#8211; Request created in the system but not yet sent<br>Enroute &#8211; Request is being processed, awaiting network verification<br>Delivered &#8211; Phone is active<br>Expired &#8211; Waiting time for network response expired<br>Deleted &#8211; Request canceled before receiving result<br>Undeliverable &#8211; Phone is inactive<br>Accepted &#8211; Request sent, but network result not yet received<br>Unknown &#8211; Unknown error<br>Rejected &#8211; Request rejected by the network, check impossible<\/sub><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 id=\"Status-error-codes\" class=\"anchor\">Error codes in status<\/h2>\n\n\n\n<p>Possible error codes in the HLR status (<code>networkErrCode<\/code>).<\/p>\n\n\n\n<p>All unspecified codes are considered vendor-dependent and are not handled separately.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Code<\/th><th>Description Key<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td>unknownSubscriber<\/td><td>Unknown subscriber<br><sub>The subscriber is not registered in the network<\/sub><\/td><\/tr><tr><td>5<\/td><td>unidentifiedSubscriber<\/td><td>Unidentified subscriber<br><sub>Subscriber is registered, but information about them is missing or unavailable<\/sub><\/td><\/tr><tr><td>9<\/td><td>illegalSubscriber<\/td><td>Illegal subscriber<br><sub>Access denied due to rule violation<\/sub><\/td><\/tr><tr><td>11<\/td><td>teleserviceNotProvisioned<\/td><td>Telecommunication service not provisioned<br><sub>Subscriber is not subscribed to the requested service<\/sub><\/td><\/tr><tr><td>13<\/td><td>callBarred<\/td><td>Call barred<br><sub>Calls are prohibited for this subscriber (e.g., due to blocking or tariff restrictions)<\/sub><\/td><\/tr><tr><td>21<\/td><td>facilityNotSupported<\/td><td>Facility not supported<br><sub>Requested service is unavailable for the subscriber or network<\/sub><\/td><\/tr><tr><td>27<\/td><td>adsentSubscriber<\/td><td>Address absent<br><sub>Message not delivered due to missing sender information<\/sub><\/td><\/tr><tr><td>31<\/td><td>subscriberBusyForMT-SMS<\/td><td>Subscriber busy for MT-HLR<br><sub>Subscriber cannot receive HLR due to device being busy<\/sub><\/td><\/tr><tr><td>32<\/td><td>sm-DeliverFailure<\/td><td>HLR delivery failure<br><sub>General error related to HLR transmission<\/sub><\/td><\/tr><tr><td>33<\/td><td>messageWaitingListFull<\/td><td>Message waiting list full<br><sub>Subscriber device memory has no space for new messages<\/sub><\/td><\/tr><tr><td>34<\/td><td>systemFailure<\/td><td>System failure<br><sub>General network-side error<\/sub><\/td><\/tr><tr><td>35<\/td><td>dataMissing<\/td><td>Data missing<br><sub>Insufficient information to complete the operation<\/sub><\/td><\/tr><tr><td>36<\/td><td>unexpectedDataValue<\/td><td>Unexpected data value<br><sub>Incorrect or unexpected data provided<\/sub><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sending an asynchronous HLR request For information about the authentication and authorization procedures that associate API calls with the required applications in your account, see Authorization. Request: Parameters can be passed in the request headers: Or in the request body: Example requests using CURL: Parameter Type Description destAddr string Phone number to which the HLR <a href=\"https:\/\/docs.unibell.tech\/?page_id=3504\" class=\"more-link\">&#8230;<span class=\"screen-reader-text\">  HLR API<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"tpl\/http-content.php","meta":{"footnotes":""},"class_list":["post-3504","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/docs.unibell.tech\/index.php?rest_route=\/wp\/v2\/pages\/3504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.unibell.tech\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/docs.unibell.tech\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/docs.unibell.tech\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.unibell.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3504"}],"version-history":[{"count":5,"href":"https:\/\/docs.unibell.tech\/index.php?rest_route=\/wp\/v2\/pages\/3504\/revisions"}],"predecessor-version":[{"id":3599,"href":"https:\/\/docs.unibell.tech\/index.php?rest_route=\/wp\/v2\/pages\/3504\/revisions\/3599"}],"wp:attachment":[{"href":"https:\/\/docs.unibell.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}