Разработчикам

GET/v3/lnp/project/{uniqueid}

Получение сведений о проекте переноса номеров

Получите сведения о проекте, номерах, истории и метаданных документов в одном конфиденциальном ответе для вашей учётной записи.

На этой странице
  1. Доступ к учётной записи и проекту
  2. Запрос
  3. Обращайтесь с этим ответом как с конфиденциальными данными
  4. Структура ответа
  5. Как понимать сводку и метаданные
  6. Ошибки и ограничения
  7. Последствия вызова и рабочий процесс

Доступ к учётной записи и проекту

Используйте активную учётную запись API и подключайтесь по HTTPS с разрешённого IP-адреса. Проект должен принадлежать этой учётной записи и не должен быть удалён. Используйте уникальный идентификатор проекта из процесса оформления заявки на перенос, а не числовой идентификатор из базы данных или телефонный номер. При формировании запроса применяйте URL-кодирование к идентификатору проекта.

Запрос

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  "https://api.multitel.net/v3/lnp/project/$PROJECT_ID"

Обращайтесь с этим ответом как с конфиденциальными данными

Полный ответ содержит платёжные сведения для оператора, от которого переносятся номера, включая сохранённое значение billing_pin, данные платёжного счёта, телефона, адреса, компании и уполномоченного контактного лица. API не маскирует эти поля. Запрашивайте только статус или список номеров, если для вашего рабочего процесса этого достаточно. Не сохраняйте полный ответ с подробными сведениями в хранилище браузера, системах аналитики, общедоступных журналах или на снимках экрана для службы поддержки; показывайте только те поля, которые нужны клиенту с соответствующими правами доступа.

Структура ответа

Вымышленный пример с избранными полями; в ответе могут возвращаться дополнительные поля.

{
  "status": {
    "code": 200,
    "msg": "Project Detail"
  },
  "response": {
    "project": {
      "id": 11,
      "uniqueid": "PROJECT_EXAMPLE",
      "project_name": "Example transfer",
      "location": "US",
      "status": 0,
      "status_str": "Pending"
    },
    "counts": {
      "total": 0,
      "pending": 0,
      "in_progress": 0,
      "completed": 0,
      "rejected": 0
    },
    "numbers": [],
    "events": [],
    "uploads": []
  }
}

В этом намеренно неполном примере опущены все платёжные реквизиты для проверки доступа и личные контактные данные. Их отсутствие в примере не означает, что они скрываются в реальном ответе.

Разделы подробных сведений о проекте
РазделСодержимое
projectЧисловой идентификатор строки, уникальный идентификатор проекта, название проекта, местоположение, сохранённые платёжные и контактные данные и адрес, время создания и вычисляемый статус. Устаревшее поле оператора, от которого переносятся номера, имеет имя loosing_carrier.
countsОбщее количество строк с номерами и счётчики статусов Pending, In Progress, Completed и Rejected.
numbersТот же состав данных о номерах, что и у конечной точки списка номеров проекта, включая комментарии клиента и сохранённые значения планирования.
eventsСохранённые строки событий и поля полезной нагрузки в исходном и разобранном виде с учётом ограничений видимости и формата конечной точки событий.
uploadsМетаданные документов: числовой идентификатор, upload_type, file_name, file_extension, date_created и относительный адрес download_url. Для доступа по этому URL по-прежнему требуется аутентификация учётной записи.

Как понимать сводку и метаданные

При вычислении статуса приоритет имеет In Progress, затем Pending, затем Completed, затем Rejected; если ни один вариант не подходит, используется Pending. Сводный статус Completed возможен и при наличии номеров, перенос которых отклонён. Проверяйте счётчики и статусы номеров, а не предполагайте, что перенос каждого номера завершён.

Ответ содержит метаданные документов, а не байты файлов. В нём нет постраничной выдачи или курсора для последовательного получения изменений. Запросы подробных сведений и списков выполняют отдельные операции чтения и не образуют единый снимок с гарантированной транзакционной согласованностью. Даты возвращаются в сохранённом виде; преобразование часового пояса не задокументировано. Для маршрутов проекта используйте uniqueid; числовой идентификатор проекта не может его заменить.

Ошибки и ограничения

Проверяйте как ответ HTTP, так и status.code/status.msg. Если проект отсутствует, удалён или не принадлежит учётной записи, возвращается код API 404 с сообщением о том, что проект не найден. Также действуют требования аутентификации и ограничения по исходному IP-адресу. Примеры не выполняют реальный запрос, а успешный ответ не доказывает, что оператор принял заявку на перенос или завершил перенос.

Последствия вызова и рабочий процесс

Это канонический маршрут подробных сведений, который используется в представлении заявки на перенос в текущем портале. Портал сопоставляет поля со своим интерфейсом и формирует собственный набор данных для клиента; не предполагайте, что исходный ответ API совпадает с JSON портала или отображаемыми в нём данными. Проверенный обработчик подробных сведений не изменяет проект и напрямую не инициирует запрос оператору или списание средств.