API
API
API
API
API
API
API

BSG використовує HTTP-cookies (а також подібні або додаткові технології), щоб:
1) забезпечити безпечну, стабільну та доступну роботу сайту (через використання обов’язкових cookies) та
2) зрозуміти, як ви користуєтеся сайтом (через використання необов’язкових cookies) — з метою покращення вашого досвіду та надання персоналізованого контенту.

Інформація у cookie-файлах може бути пов’язана з вашими уподобаннями або пристроєм і допомагає сайту працювати так, як ви очікуєте. Зазвичай ці файли не ідентифікують вас безпосередньо, але дозволяють забезпечити більш персоналізовану взаємодію з сайтом.

Відповідно до вимог Загального регламенту про захист даних (GDPR), який регулює обробку та передачу персональних даних осіб у ЄС, ми надаємо вам можливість заборонити використання певних типів cookies під час відвідування нашого сайту.

Ознайомтеся з нашими Правилами використання cookies та Політикою конфіденційності, щоб дізнатися більше про те, як BSG збирає та використовує cookies.
Зверніть увагу, що заборона певних типів cookies може вплинути на роботу сайту та обмежити доступ до деяких сервісів. Оберіть відповідну категорію нижче, щоб дізнатися більше або вимкнути cookies.

Прийняти всі cookies*
*Рекомендовано для комфортного користування сайтом
Прийняти лише необхідні cookies
Прийняти лише вибрані cookies
Необхідні cookies
Соціальні мережі
Аналітика
Маркетинг

BSG переїхав на новий DevPortal
щоб швидше випускати найновіші версії One API

Використовуйте його для актуальних ендпоінтів, гайдів і журналів змін

Перейти на новий DevPortal
Документація для розробників
Number Intelligence

Number Verifier

1. Загальна інформація

Сервіс Number Verifier призначений для перевірки мобільних номерів: він визначає їхній поточний статус у мережі, чинного оператора, країну та ознаку перенесення номера.

Інтеграція доступна двома способами: через HTTP API та ENUM API.

Сервіс підтримує автентифікацію за IP-адресою та портом і надає тестові ендпоінти для перевірки коректності інтеграції.

2. HTTP API

2.1. Автентифікація

Запити до HTTP API потребують автентифікації, щоб ідентифікувати клієнта, повертати коректні результати та гарантувати безпеку.

Автентифікація виконується за IP-адресою клієнта, зазначеною в його профілі, та портом, використаним під час запиту.

Перед використанням HTTP API для запитів Number Verifier (як у тестовому, так і в робочому середовищі) клієнт має передати список своїх IP-адрес акаунт-менеджеру для автентифікації.

2.2. Формат запиту

Метод: GET / POST

Робоче середовище:

Домен: hlr.bsg.world
Порт: 5011
Синтаксис URL: https://hlr.bsg.world:5011/msisdn/{NUMBER}
Синтаксис URL (необовʼязково)*: https://hlr.bsg.world:5011/msisdn/{NUMBER}/tariff/{TARIFF_ID}

*HTTP API також дозволяє обрати тариф, передавши його код у запиті (необовʼязково, лише для клієнтів із кількома тарифами).

Тестове середовище:

Домен: hlr-test.bsg.world
Порт: 5013
Синтаксис URL: https://hlr-test.bsg.world:5013/msisdn/{NUMBER}

{NUMBER} — це MSISDN (телефонний номер у міжнародному форматі) без знака «+».

{TARIFF_ID} — це код тарифу в системі BSG.

2.3. Отримання результату Number Verifier для номера

Опис:Повертає інформацію про мобільний номер: країну, MCC/MNC, чинного оператора, ознаку перенесення номера, поточний статус у мережі та додаткові атрибути (докладніше — у розділі 5).

2.3.1. Приклад запиту (робоче середовище):

Стандартний запит:

https://hlr.bsg.world:5011/msisdn/380123456789
              

Необовʼязковий запит (із кодом тарифу):

https://hlr.bsg.world:5011/msisdn/380123456789/tariff/22
              

2.3.2. Приклад запиту (тестове середовище):

https://hlr-test.bsg.world:5013/msisdn/380123456789
              

2.3.3. Приклад відповіді

Успіх:

{
  "tn": "380123456789"
  "cc": "UA"
  "cn": "lifecell"
  "mcc": "255"
  "mnc": "06"
  "sii": 1
  "npi": false
  "nt": "mobile"
  "ls": "000"
  "rc": "000"
}
              

Помилка (лише для діапазону Reason Code 100 - 199):

{
  "tn": "380123456789"
  "cc": "UA"
  "cn": "lifecell"
  "mcc": "255"
  "mnc": "06"
  "sii": 1
  "npi": false
  "nt": "mobile"
  "ls": "201"
  "rc": "120"
}
              

Помилка (лише для діапазону Reason Code 010 - 070):

{
  "rc": "010"
}
              

Примітка: опис полів відповіді наведено в розділах 5–7.

3. ENUM API

3.1. Автентифікація

Запити до ENUM API потребують автентифікації, щоб ідентифікувати клієнта, повертати коректні результати та гарантувати безпеку.

Автентифікація виконується за IP-адресою клієнта, зазначеною в його профілі, та портом, використаним під час запиту.

Перед використанням ENUM API для запитів Number Verifier (як у тестовому, так і в робочому середовищі) клієнт має передати список своїх IP-адрес акаунт-менеджеру для автентифікації.

3.2. Формат запиту

Робоче середовище:

IP-адреса сервера: 141.95.255.235
Порт: 5001
Синтаксис запиту: dig @141.95.255.235 -p 5001 -t naptr {NUMBER}.enum

Тестове середовище:

IP-адреса сервера: 141.95.255.235
Порт: 5003
Синтаксис запиту: dig @141.95.255.235 -p 5003 -t naptr {NUMBER}.enum

{NUMBER} — це MSISDN (телефонний номер у міжнародному форматі) без знака «+».

Примітка: MSISDN у запиті вказується у зворотному порядку з крапками між цифрами (наприклад, 380123456789 → 9.8.7.6.5.4.3.2.1.0.8.3).

3.3. Отримання результату Number Verifier для номера

Опис: Повертає інформацію про мобільний номер: країну, MCC/MNC, чинного оператора, ознаку перенесення номера, поточний статус у мережі та додаткові атрибути (докладніше — у розділі 5).

3.3.1. Приклад запиту (робоче середовище):

dig @141.95.255.235 -p 5001 -t naptr 9.8.7.6.5.4.3.2.1.0.8.3.enum
              

3.3.2. Приклад запиту (тестове середовище):

dig @141.95.255.235 -p 5003 -t naptr 9.8.7.6.5.4.3.2.1.0.8.3.enum
              

3.3.3. Приклад відповіді:

Успіх:

; <<>> DiG 9.20.4-3ubuntu1.2-Ubuntu <<>> @141.95.255.235 -p 5001 -t naptr 9.8.7.6.5.4.3.2.1.0.8.3.enum
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38477
;; flags: qr; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;9.8.7.6.5.4.3.2.1.0.8.3.enum.   IN  NAPTR

;; ANSWER SECTION:
9.8.7.6.5.4.3.2.1.0.8.3.enum. 300 IN NAPTR 100 10 "U" "E2U+pstn:tel" "!^.*$!tn:380123456789;cc:UA;cn:lifecell;mcc:255;mnc:06;sii:1;npi:false;nt:mobile;ls:000;rc:000!" .

;; Query time: 32 msec
;; SERVER: 141.95.255.235#5001(141.95.255.235) (UDP)
;; WHEN: Tue Aug 11 11:11:11 EEST 2025
;; MSG SIZE  rcvd: 174
              

Помилка (лише для діапазону Reason Code 100 - 199):

; <<>> DiG 9.20.4-3ubuntu1.2-Ubuntu <<>> @141.95.255.235 -p 5001 -t naptr 9.8.7.6.5.4.3.2.1.0.8.3.enum
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44972
;; flags: qr; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;9.8.7.6.5.4.3.2.1.0.8.3.enum.   IN  NAPTR

;; ANSWER SECTION:
9.8.7.6.5.4.3.2.1.0.8.3.enum. 300 IN NAPTR 100 10 "U" "E2U+pstn:tel" "!^.*$!tn:380123456789;cc:UA;cn:lifecell;mcc:255;mnc:06;sii:1;npi:false;nt:mobile;ls:201;rc:120!" .

;; Query time: 38 msec
;; SERVER: 141.95.255.235#5001(141.95.255.235) (UDP)
;; WHEN: Tue Aug 11 11:11:11 EEST 2025
;; MSG SIZE  rcvd: 174
              

Помилка (лише для діапазону Reason Code 010 - 070):

; <<>> DiG 9.20.4-3ubuntu1.2-Ubuntu <<>> @141.95.255.235 -p 5001 -t naptr 9.8.7.6.5.4.3.2.1.0.8.3.enum
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 80127
;; flags: qr; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;9.8.7.6.5.4.3.2.1.0.8.3.enum.   IN  NAPTR

;; ANSWER SECTION:
9.8.7.6.5.4.3.2.1.0.8.3.enum. 300 IN NAPTR 100 10 "U" "E2U+pstn:tel" "!^.*$!rc:013!" .

;; Query time: 51 msec
;; SERVER: 141.95.255.235#5001(141.95.255.235) (UDP)
;; WHEN: Tue Aug 11 11:11:11 EEST 2025
;; MSG SIZE  rcvd: 78
              

Примітка: опис полів відповіді наведено в розділах 5–7.

4. Тестування налаштування інтеграції

Тестові ендпоінти доступні для перевірки вашої інтеграції з HTTP та ENUM API. Вони дають змогу перевірити авторизацію, зʼєднання та коректність формату запитів і відповідей.

Як і в робочому середовищі, доступ до тестового середовища мають лише заздалегідь подані IP-адреси клієнта.

Примітка: подробиці про тестові ендпоінти наведено в розділах 2.2. і 3.2.

Примітка: тестові відповіді не містять реальних даних абонентів і включають таку інформацію:

  • cc — реальне значення, визначається за префіксом запитаного номера;

  • решта параметрів (cn, mcc, mnc, sii, npi, nt, ls, rc тощо) — нереальні, тестові значення.

5. Поля відповіді Number Verifier

Поле Тип Опис
tn string Телефонний номер, для якого виконано запит
cc string Країна оператора (код країни) у форматі ISO 3166-1 alpha-2 (наприклад, UA)
cn string Назва оператора (Carrier Name)
mcc string Мобільний код країни (Mobile Country Code)
mnc string Код мобільної мережі (Mobile Network Code)
sii integer Індикатор джерела інформації (Source Information Indicator)
1 — tn перевірено через HLR-запит; доступні як поточний статус у мережі, так і актуальна маршрутна інформація
2 — tn перевірено через MNP-запит; доступна лише актуальна маршрутна інформація
3 — tn перевірено за даними маршрутизації BSG; доступна лише маршрутна інформація з глобальної бази нумерації
npi boolean Індикатор перенесення номера (Number Portability Indicator)
true — номер було перенесено
false — номер не переносився
nt string Тип номера (Number Type)
• mobile
• landline
ls string Поточний статус у мережі (Live Status) — докладніше в розділі 6
rc string Код причини (Reason Code) — докладніше в розділі 7

6. Статус активності (Live Status)

Поле Статус активності (ls) показує, чи активний мобільний номер у мережі на цей момент. Сервіс динамічно опитує HLR (Home Location Register) цільового оператора через мережу SS7, щоб перевірити статус мобільного номера й отримати інформацію про відповідного абонента.

У таблиці нижче наведено поточні значення поля; перелік може розширюватися з появою нових статусів або сервісів.

Код Опис Коментар
000 STATUS: ACTIVE Запитаний номер — активний мобільний абонент, що підтверджено HLR його обслуговувального оператора.
201 STATUS: ABSENT Запитаний номер наразі недоступний через технічні проблеми в мобільній мережі, тривалу відсутність у зоні радіопокриття або вимкнений пристрій. Це тимчасовий статус, який може змінитися.
202 STATUS: BARRED Запитаний номер має обмеження сервісів через білінгові чи технічні проблеми в мережі або наразі не може приймати SMS. Це тимчасовий статус, який може змінитися.
203 STATUS: INVALID Запитаний номер не є активним мобільним абонентом, що підтверджено HLR його обслуговувального оператора.
204 STATUS: ERROR Запит не отримав відповіді від оператора, що обслуговує абонента, або вичерпано час очікування відповіді. Залежно від випадку статус може бути як постійним, так і тимчасовим.
205 STATUS: UNKNOWN Запит отримав неочікувану помилку від HLR оператора, що обслуговує абонента, або конкретний статус абонента наразі неможливо однозначно визначити. Залежно від випадку статус може бути як постійним, так і тимчасовим.

7. Код причини (Reason Code)

Поле Код причини (rc) надає додаткову інформацію про те, як запит було оброблено в системі BSG. Ці коди можуть вказувати на причини помилок (наприклад, некоректну довжину номера) або містити іншу корисну інформацію.

У таблиці нижче наведено поточні значення поля; перелік може розширюватися з появою нових кодів причин або сервісів.

Код Опис Коментар
000 ACTIVE Успішний запит
010 ERROR_AUTH Помилка авторизації, перевірте параметри
011 ERROR_SYSTEM Внутрішня помилка системи BSG. Зазвичай це тимчасове явище
012 ERROR_INVALID_ MSISDN Некоректна послідовність цифр номера; невідомі країна та оператор
013 ERROR_INVALID_ MSISDN_LENGTH Довжина номера не відповідає стандартній довжині для вказаної країни
014 ERROR_INVALID_ MSISDN_MCC Перевірка номера повернула результат із неочікуваним MCC для вказаної країни
015 ERROR_INVALID_ BY_WRONG_PREFIX Номер належить до недійсного або нерозподіленого діапазону нумерації
016 ERROR_INVALID_ USER_TARIFF У запиті вказано код тарифу, який не призначено клієнтові, або для сервісу не призначено жодного тарифу
110 BARRED Запит повернув статус «BARRED» для абонента; цей статус означає, що абоненту заблоковано доступ до сервісів мережі, наприклад через несплату чи шахрайство.
111 BARRED_NO_SMS_ SERVICE Запит повернув статус «BARRED»: SMS-сервіс абонента наразі заблоковано
112 BARRED_NO_SMS_ SERVICE_SUBSCRIBER_ BLOCKED Запит повернув статус «BARRED»: наразі заблоковано SMS-сервіс абонента або самого абонента
113 BARRED_SUBSCRIBER_ BLOCKED_OR_UNAVAILABLE_ ROAMING Запит повернув статус «BARRED»: абонента заблоковано або він перебуває в роумінгу без активного сервісу
120 ABSENT Запит повернув статус «ABSENT»: пристрій абонента наразі не зареєстрований у мережі (наприклад, вимкнений або поза зоною покриття)
121 ABSENT_SUBSCRIBER_ UNAVAILABLE_OR_DEVICE_ SWITCHED_OFF Запит повернув статус «ABSENT»: пристрій абонента недоступний, найімовірніше через вимкнений телефон
122 ABSENT_BAD_CONNECTION_ OR_CURRENTLY_UNAVAILABLE Запит повернув статус «ABSENT»: пристрій абонента недоступний, найімовірніше через поганий радіодоступ
123 ABSENT_SUBSCRIBER_IS_ IN_BAD_CONNECTION_OR_ CURRENTLY_UNAVAILABLE Запит повернув статус «ABSENT»: пристрій абонента недоступний, найімовірніше через проблеми в мережі
124 ABSENT_DEVICE_CANNOT_ RECEIVE_SMS_FAILURE_OR_ NETWORK_IS_BUSY Запит повернув статус «ABSENT»: пристрій абонента не зміг прийняти повідомлення, найімовірніше через проблеми в мережі
125 ABSENT_DEVICE_CANNOT_ RECEIVE_SMS_FAILURE_OR_ NO_SPACE_FOR_SMS Запит повернув статус «ABSENT»: пристрій абонента не зміг прийняти повідомлення, найімовірніше через проблему з пристроєм (наприклад, брак місця для SMS)
126 ABSENT_DEVICE_CANNOT_ RECEIVE_SMS_DEVICE_FAILURE Запит повернув статус «ABSENT»: пристрій абонента не зміг прийняти повідомлення, найімовірніше через несправність мобільного пристрою
127 ABSENT_MAP_UNEXPECTED_ DATA_VALUE Запит повернув статус «ABSENT»: помилка протоколу MAP, спричинена проблемою в мережі
128 ABSENT_INVALID_MSC Запит повернув статус «ABSENT»: тимчасова помилка реєстрації абонента
129 ABSENT_SUBSCRIBER_IN_ POOR_COMMUNICATION_CONDITIONS_ OR_CURRENTLY_UNAVAILABLE Запит повернув статус «ABSENT»: пристрій абонента недоступний, найімовірніше через проблеми в мережі або погані радіоумови
130 ABSENT_GSM_MAPERR_ ABSENT_SUBSC_SM_V2P Запит повернув статус «ABSENT»: помилка протоколу MAP, спричинена проблемою в мережі
150 ERROR Запит повернув статус «ERROR»: проблема на боці абонента; надано маршрутну інформацію BSG
151 ERROR_TIMEOUT_NO_ RESPONSE_FROM_HLR Запит повернув статус «ERROR»: проблема на боці HLR; надано маршрутну інформацію BSG
152 ERROR_TIMEOUT_NO_ RESPONSE_FROM_MSC Запит повернув статус «ERROR»: проблема на боці MSC; надано маршрутну інформацію BSG
170 UNKNOWN Запит повернув статус «UNKNOWN» через тимчасову проблему в мережі SS7, що завадила визначити статус абонента; BSG присвоює «UNKNOWN» щоразу, коли не може визначити статус абонента як «ACTIVE», «BARRED», «ABSENT» або «INVALID»
171 UNKNOWN_NO_RESOURCES_ ON_SMSC Запит повернув статус «UNKNOWN» через тимчасову проблему SMSC, що завадила визначити статус абонента
172 UNKNOWN_RECEIVED_ SCCP_TCAP_ABORT Запит повернув статус «UNKNOWN» через тимчасову проблему протоколу SS7, що завадила визначити статус абонента
173 UNKNOWN_DELIVERY_ ERROR_OF_SMS_EQUIPMENT_ NOT_SM_EQUIPPED Запит повернув статус «UNKNOWN» через проблему з мобільним обладнанням (зазвичай неможливість приймати SMS), що завадила визначити статус абонента
174 UNKNOWN_ERROR_OF_ SMS_DELIVERY_UNKNOWN_ SERVICE_CENTRE Запит повернув статус «UNKNOWN» через проблему файрвола мобільної мережі, що завадила визначити статус абонента
175 UNKNOWN_SMS_DELIVERY_ ERROR_SC_CONGESTION Запит повернув статус «UNKNOWN» через тимчасове перевантаження SMSC, що завадило визначити статус абонента
176 UNKNOWN_SMS_DELIVERY_ ERROR_INVALID_SME_ADDRESS Запит повернув статус «UNKNOWN» через тимчасову проблему файрвола SMSC, що завадила визначити статус абонента
177 UNKNOWN_SMS_DELIVERY_ ERROR_SUBSCRIBER_NOT_ SC_SUBSCRIBER Запит повернув статус «UNKNOWN» через проблему з мобільним обладнанням (зазвичай неможливість приймати SMS), що завадила визначити статус абонента
179 UNKNOWN_SYSTEM_ FAILURE_HLR Запит повернув статус «UNKNOWN» через проблему HLR у мобільній мережі, що завадила визначити статус абонента
180 UNKNOWN_SYSTEM_ FAILURE_MSC Запит повернув статус «UNKNOWN» через проблему MSC у мобільній мережі, що завадила визначити статус абонента
190 INVALID Запит повернув статус «INVALID» для абонента; цей статус означає, що запитаний номер не повʼязаний із жодним абонентом або відсутній у базі HLR мережі
191 INVALID_UNKNOWN_ SUBSCRIBER Запит повернув статус «INVALID» для абонента; цей статус означає, що запитаний номер не повʼязаний із жодним абонентом або відсутній у базі HLR мережі

Зацікавлені у спеціальній пропозиції?

Готові розширювати можливості?
Давайте обговоримо.

Надіслати

Корисні Матеріали

WhatsApp Business API: повний гайд — налаштування, ціни, сценарії [2026]
WhatsApp Business API: повний гайд — налаштування, ціни, сценарії використання [2026]

WhatsApp Business API у 2026 — кроки налаштування, нова модель тарифікації за повідомлення та перевірені сценарії використання за галузями.

Що таке CPaaS? Повний бізнес-гайд із Communications Platform as a Service
Що таке CPaaS? Повний бізнес-гайд із Communications Platform as a Service

Що таке CPaaS? Хмарний API-шар, що додає SMS, WhatsApp, голос та OTP у ваші застосунки — як це працює і чому це краще за стек із кількох вендорів.

Один комунікаційний API для SMS, WhatsApp, Viber і RCS — чому він кращий за пʼять
Один комунікаційний API для SMS, WhatsApp, Viber та RCS — чому він кращий за пʼять

Чому один комунікаційний API для SMS, WhatsApp, Viber та RCS кращий за пʼять окремих інтеграцій — каскадний fallback, єдині звіти.