Підготуйте збережений профіль і номер
Використовуйте цю процедуру, щоб пов’язати збережений реєстраційний профіль із придбаним номером і, для номерів, які обслуговує оператор із підтримкою цієї функції, надіслати запит на розгляд реєстрації. Це не універсальний API активації для всіх постачальників номерів. Успішний запит не доводить, що документи схвалено або номер активний.
Використовуйте ввімкнений обліковий запис MultiTEL API через HTTPS із налаштованими для нього обліковими даними та обмеженнями IP. І невидалений профіль, і придбаний неанульований номер мають належати вашому обліковому запису.
- Створіть реєстраційний профіль або виберіть наявний. Збережіть uuid локального профілю, отриманий від create_document; get_document повертає те саме локальне посилання в полі id.
- Для подання оператору профіль має містити збережені посилання на ідентифікаційні дані та адресу. Додайте потрібні докази та супровідні документи перед поданням, скориставшись відповідними процедурами їх додавання.
- Перевірте, чи відповідають номер і профіль чинним вимогам країни та номера. Не вважайте, що збережений профіль схвалено для кожного номера.
Надішліть запит на пов’язування
curl --silent --show-error --request POST \
--user "$API_USER:$API_PASSWORD" \
--form-string document_uuid="$PROFILE_UUID" \
--form-string service_description="Example customer support line" \
https://api.multitel.net/v3/number_identity/12125550123Шлях містить придбаний телефонний номер, а не його UUID, внутрішній номер АТС чи ідентифікатор ідентифікаційних даних. Обробник видаляє з номера всі символи, крім цифр. Використовуйте повний міжнародний номер із кодом країни. Приклад вигаданий: замініть його дані власним номером і збереженим посиланням на локальний профіль.
| Поле | Обов’язкове | Значення |
|---|---|---|
document_uuid | Так | Точний uuid збереженого локального профілю. Не підставляйте замість нього замасковані віддалені identity_id, address_id, ідентифікатор завантаження або повернуте значення registration_details_id. |
service_description | Ні | Опис запланованої послуги, який передається оператору для перевірки. Пробіли на початку та в кінці видаляються. |
onetime_files | Залежить від процедури | Масив, який приймається для одноразових документів оператора. Поточний обробник видаляє пробіли на початку й у кінці його рядків та передає їх, не визначаючи ідентифікатори за локальними посиланнями на завантаження. Сумісність із замаскованими ідентифікаторами, які повертає create_encrypt_files, не встановлено; перш ніж використовувати це поле, перегляньте наведене нижче обмеження щодо одноразових документів. |
У багаточастинних запитах масив передається через повторювані поля onetime_files[]. Також приймається JSON-запит із Content-Type: application/json; його властивості об’єднуються з даними форми. Поле number можна передати в даних запиту, якщо номер не вказано в шляху. Щоб уникнути неоднозначності, використовуйте явний шлях, наведений вище.
Розрізняйте пов’язування та схвалення
Перевіряйте і результат HTTP, і status.code у JSON. Помилки JSON можуть надходити з HTTP 200. Успішне подання оператору супроводжується повідомленням Address verification task created; awaiting carrier review. У цьому прикладі використано вигадані посилання.
{
"status": {
"code": 200,
"msg": "Address verification task created; awaiting carrier review."
},
"response": {
"number": "+12125550123",
"did_id": "11111111111111111111111111111111",
"document_uuid": "0123456789abcdef0123456789abcdef",
"identity_id": "22222222222222222222222222222222",
"address_id": "33333333333333333333333333333333",
"address_verification_id": "44444444444444444444444444444444",
"verification_status": "pending",
"verification_reference": null,
"requirement_id": "55555555555555555555555555555555",
"registration_details_id": "8516ac99dc60603295de7bdb6a153530"
}
}Ідентифікатори, пов’язані з постачальником, є замаскованими посиланнями, а не взаємозамінними ідентифікаторами локальних профілів. document_uuid залишається тим посиланням на локальний профіль, яке ви подали. У гілці цього обробника, що працює з оператором, registration_details_id є результатом додаткового хешування цього локального посилання; не замінюйте ним document_uuid у подальших запитах щодо профілю чи подання.
Для деяких виділених номерів використовується локальне пов’язування ідентифікаційних даних замість створення перевірки оператором. Їхній успішний результат — Identity associated. із порожнім масивом response. Це не створює завдання на розгляд оператором і не підтверджує схвалення. На порталі є новіша процедура пов’язування, у якій робота з постачальниками та перевірки повторного подання відрізняються від цього кінцевого пункту.
Обробляйте помилки, не створюючи дублікати завдань
Код API 400 означає відсутність номера або посилання на профіль. Код 404 означає, що профіль чи номер недоступний для облікового запису або номера немає в переліку номерів оператора. Код 422 може повідомляти про відсутні посилання на ідентифікаційні дані чи адресу, вимоги продавця або відхилення під час перевірки оператором. Відсутність налаштувань зворотного виклику може спричинити 503, а транспортний збій під час створення — 502. Читайте повідомлення та всі наявні дані requirement_diagnostics, замість того щоб однаково трактувати всі збої.
Гілка роботи з оператором може оновити локальні прапорці очікування реєстрації ще до завершення перевірки вимог, перевірки налаштувань зворотного виклику або створення завдання. Тому помилка не означає, що локальний стан не змінився, а сам прапорець очікування не доводить існування завдання. Не використовуйте ці прапорці як підтвердження схвалення або доставлення запиту.
Постачальник може прийняти завдання, навіть якщо пізніша операція з локальною базою даних завершиться невдачею, а ця допоміжна функція не перевіряє результат кожного локального запису, перш ніж повідомити про успіх. У цьому обробнику немає клієнтського параметра ідемпотентності або захисту від повторного подання. Після перевищення часу очікування, помилки чи невизначеного результату перевірте історію реєстрації номера на порталі або зверніться до служби підтримки, перш ніж подавати запит знову. Сама відсутність локального запису не доводить, що постачальник нічого не отримав.
Обмеження щодо одноразових документів
Обробник приймає onetime_files і передає кожен непорожній рядок до зв’язку із зашифрованими файлами в системі оператора. Він не шукає записи завантажень облікового запису власника та не перетворює зовнішні замасковані ідентифікатори завантажень на ідентифікатори файлів постачальника. Офлайн-аудит підтвердив механізм передавання, але не успішне прикріплення файлів у системі оператора.
Не вважайте, що ідентифікатор файлу з create_encrypt_files можна скопіювати в це поле, щоб завершити процедуру одноразової угоди. Якщо для номера потрібні ці документи, скористайтеся порталом або уточніть у MultiTEL підтримувану процедуру використання ідентифікаторів. Це залишається невирішеною частиною перевірки API, а не перевіреним наскрізним прикладом.
Захищайте реєстраційну інформацію
Подавайте лише інформацію та документи, які ви маєте право використовувати для цього номера. Стежте, щоб посилання на профіль і перевірку були пов’язані з правильним обліковим записом, та уникайте записування повних даних реєстраційних запитів у журнали. Цей запит не видаляє й не замінює всі попередні докази чи перевірки. Розгляд оператором, активація та зберігання даних є окремими процесами.