Справочник APIeSIM
Список пакетов eSIM
GET
/api/partner/v1/esim/packages- Scope
esim:read
Каталог eSIM, доступный вам, с ценами для вашего аккаунта в USD.
Постраничный по курсору: передавайте next_cursor обратно, пока он не исчезнет. Каталог меняется вслед за каталогами провайдеров — синхронизируйте его периодически, а не кэшируйте навсегда, и будьте готовы к ответу 404 esim_package_not_available при покупке пакета, который успел пропасть.
404 tariff_not_available означает, что eSIM для вашего аккаунта не включён.
Параметры запроса
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
country | string | нет | ISO alpha-2: пакеты этой страны и региональные пакеты, которые её покрывают (до 2 символов) |
region | string | нет | Точное значение region_code (до 32 символов) |
cursor | string | нет | next_cursor предыдущей страницы |
limit | integer | нет | — (по умолчанию: 500; мин. 1; макс. 1000) |
Пример запроса
TS=$(date +%s)
SIG=$(printf '%s\n%s\n%s\n%s' "$TS" "GET" "/api/partner/v1/esim/packages?country=TR" "" \
| openssl dgst -sha256 -hmac "$PP_SECRET" -hex | awk '{print $NF}')
curl -sS -X GET "https://api.plativputi.com/api/partner/v1/esim/packages?country=TR" \
-H "X-Key-Id: $PP_KEY_ID" \
-H "X-Timestamp: $TS" \
-H "X-Signature: $SIG"const res = await pp("GET", "/esim/packages?country=TR");res = pp("GET", "/esim/packages?country=TR")$res = pp('GET', '/esim/packages?country=TR');pp() — функция-обёртка с подписью из раздела Аутентификация и подпись.
Ответ
200 OK — ListEsimPackagesOutputBody
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
items | array<EsimPackageDTO> | да | — |
items[].countries | array<string> | да | ISO alpha-2 коды стран, которые покрывает пакет. Пусто, если провайдер не опубликовал список. |
items[].currency | string | нет | — |
items[].data_gb | string | да | Объём трафика в ГБ, десятичная строка. Не имеет смысла, если unlimited = true. |
items[].has_5g | boolean | да | true, если в опубликованной сети упомянут 5G. false означает и «не указано». |
items[].id | string | да | Идентификатор пакета — передайте его как package_id в POST /esim/orders |
items[].network | string | нет | Поколение сети / операторы, как их опубликовал провайдер, если известны |
items[].price_usd | string | нет | Сколько покупка этого пакета спишет с вашего баланса, USD |
items[].region_code | string | да | ISO 3166-1 alpha-2 для пакета одной страны, иначе код региона (EUROPE, ASIA, GLOBAL, …) |
items[].region_name | string | да | — |
items[].sms | integer | нет | Включённые SMS, если они есть в пакете |
items[].title | string | да | — |
items[].unlimited | boolean | да | — |
items[].validity_days | integer | да | — |
items[].voice_minutes | integer | нет | Включённые минуты звонков, если они есть в пакете |
next_cursor | string | нет | Передайте как cursor, чтобы получить следующую страницу; на последней странице отсутствует |
Примеры ответа
{
"items": [
{
"id": "5b2f7c1a-3d4e-4f60-8a71-9c0d1e2f3a4b",
"title": "Turkey · 5GB 30 days",
"region_code": "TR",
"region_name": "Turkey",
"countries": [
"TR"
],
"data_gb": "5",
"unlimited": false,
"validity_days": 30,
"network": "4G/5G",
"has_5g": true,
"price_usd": "5.26",
"currency": "USD"
}
]
}Ошибки
| HTTP | Код | Когда |
|---|---|---|
| 404 | tariff_not_available | eSIM для вашего аккаунта не включён. |
Плюс общие ошибки подписи и лимитов — см. Ошибки.