Доступ до облікового запису та проєкту
Використовуйте активований обліковий запис API і підключайтеся через HTTPS з дозволеної IP-адреси. Проєкт має належати цьому обліковому запису й не бути видаленим. Використовуйте унікальний ідентифікатор проєкту з процесу оформлення замовлення на перенесення, а не його числовий ідентифікатор у базі даних чи номер телефону. Під час формування запиту застосовуйте URL-кодування до ідентифікатора проєкту.
Підготовка до додавання
Ця операція змінює наявний проєкт перенесення номерів. Спочатку підтвердьте номери та дозвіл клієнта в межах вашого процесу оформлення замовлення на перенесення. Подайте кожен номер повною послідовністю цифр у міжнародному форматі, самостійно вилучіть дублікати й перевірте наявний список номерів проєкту. Не використовуйте цю кінцеву точку для перевірки довільних номерів.
Поточний портал перевіряє та нормалізує номери перед викликом цього маршруту. Прямий виклик застарілої кінцевої точки не забезпечує таких самих запобіжних перевірок: вона вилучає пробіли на початку й у кінці введених даних, але не перевіряє формат телефонного номера, код країни, дублікати чи стан проєкту в робочому процесі.
Запит POST
Створіть локальний файл numbers.json з наведеною нижче структурою. Номери вигадані; замініть їх номерами, на використання яких у вибраному проєкті є дозвіл.
{
"numbers": [
"12025550123",
"12025550124"
],
"isocode": "US"
}curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--header "Content-Type: application/json" \
--data-binary @numbers.json \
"https://api.multitel.net/v3/lnp/project/$PROJECT_ID/addnumbers"| Поле | Значення |
|---|---|
| numbers | Обов’язковий непорожній масив рядків із номерами або рядок, у якому кожен номер подано з нового рядка. Порожні записи відкидаються, а пробіли на початку й у кінці вилучаються. Текст із комами як роздільниками не розбивається на окремі номери. |
| isocode | Необов’язковий код країни для доданих записів. Якщо його не вказано або він порожній, використовується місцезнаходження проєкту. Обробник вилучає пробіли на початку й у кінці наданого значення, але не переводить літери у верхній регістр і не перевіряє значення. Самостійно вкажіть правильний код країни великими літерами. |
У цьому прикладі використовуйте POST із application/json. Також зчитуються дані форми, надіслані методом POST. Метод не визначає ключа ідемпотентності чи гарантованого безпечного розміру пакета для цієї кінцевої точки; надсилайте й звіряйте пакети з такою кількістю записів, яку зручно перевірити, замість того щоб покладатися на припущення про обмеження.
Результат у відповіді
Вигаданий приклад відповіді.
{
"status": {
"code": 200,
"msg": "Success add numbers"
},
"response": {
"uniqueid": "PROJECT_EXAMPLE",
"count": 2,
"numbers": [
{
"id": 21,
"number": "12025550123",
"status": 0,
"status_str": "Pending",
"isocode": "US"
},
{
"id": 22,
"number": "12025550124",
"status": 0,
"status_str": "Pending",
"isocode": "US"
}
]
}
}У відповіді записи, які намагалися додати, позначаються станом Pending. Перед повідомленням результату не перевіряється результат кожного вставлення в базу даних. Тому сама лише кількість або повернутий ідентифікатор не доводять, що кожен запис було збережено. Доданий запис зі станом Pending не означає прийняття оператором, запланованого перенесення чи завершеної активації.
Звірте дані перед повторною спробою
- Перед додаванням номерів зчитайте список номерів проєкту та збережіть перелік запланованих додавань у власному журналі запитів.
- Надішліть запит на додавання один раз.
- Знову зчитайте список номерів проєкту та звірте кожен запланований номер. Перевірте дублікати й стан кожного номера.
- Якщо час очікування запиту вичерпано, повернуто помилку або повідомлено неоднозначний результат, перед повторною спробою знову зчитайте дані. Деякі записи вже можуть бути додані.
- Вирішуйте проблеми з відсутніми чи дубльованими записами через процес оформлення замовлення на перенесення або службу підтримки, замість того щоб наосліп повторювати весь запит.
Обробник вставляє записи по одному без транзакції та захисту від дублікатів. У разі переривання раніше записані дані можуть залишитися; невдале вставлення, що повертає false, усе одно може бути враховане в повідомленій кількості. Повторення запиту може додати дубльовані записи. Сам обробник не записує подію й не завершує перенесення номера в оператора.
Помилки застарілого інтерфейсу
Для методу, відмінного від POST, повертається код API 403. Якщо проєкт відсутній, видалений або не належить цьому обліковому запису, повертається код API 404. Якщо вхідні дані номерів порожні, також повертається код API 404. Діють вимоги автентифікації та обмеження щодо IP-адреси джерела. Ці коди застарілого інтерфейсу не доводять, що після початку обробки до виникнення помилки не було виконано жодного вставлення.
Оплата та межі операції перенесення
Перевірений обробник вставляє записи номерів проєкту й не містить прямого списання коштів з облікового запису чи надсилання заявки оператору. Це не робить послугу перенесення загалом безкоштовною та не скасовує узгоджених платежів за перенесення. Перш ніж очікувати перенесення, виконайте вимоги проєкту щодо дозволів, документів і перевірки.