Берите трафик. Оставляйте себе бренд.
Весь наш каталог туристических eSIM доступен через единый REST API. Покупайте по оптовой цене, продавайте по своей, а доставку, учёт расхода и работу с возвратами оставьте нам. Интеграция занимает один вечер.
Sandbox бесплатна — проведите заказ от начала до конца, прежде чем выходить в продакшн.
curl -X POST https://api.cotaesim.com/partner/v1/orders \
-H "Authorization: Bearer $COTA_TOKEN" \
-H "Idempotency-Key: PO-2026-00931" \
-H "Content-Type: application/json" \
-d '{ "planSlug": "fr-7d-1gb", "quantity": 2 }'
{
"orderId": "por_7f3a…",
"status": "completed",
"unitPriceCents": 499,
"requestedQuantity": 2,
"fulfilledCount": 2,
"esims": [
{ "esimId": "esim_1a2b…",
"lpa": "LPA:1$smdp.example.com$ABC-123-XYZ",
"universalLink": "https://esimsetup.apple.com/…",
"qrUrl": "/partner/v1/esims/esim_1a2b…/qr.png" }
]
}- SandboxТе же эндпоинты, отдельный баланс, тестовые eSIM
- Один вызовЗаказ, доставка и QR-код в одном ответе
- Webhook-иПодписанные события, восемь попыток доставки
- МобильноСледите за заказами с телефона
Четыре шага до первой продажи
- 01
Получите доступы
Мы открываем для вас партнёрский аккаунт. Обменяйте
clientIdиclientSecretна токен доступа со сроком 24 часа; токены непрозрачные, поэтому отзыв срабатывает мгновенно, когда это нужно. - 02
Пройдите весь путь в sandbox
Sandbox отдаёт те же эндпоинты, те же проверки и те же коды ошибок, что и продакшн. Отличия только два: списание идёт с отдельного баланса и возвращается тестовая eSIM. Интеграцию вы завершаете, не потратив денег.
- 03
Запросите выход в продакшн
Запросите доступ к продакшну одной кнопкой в портале. Мы включаем аккаунт, и ваши продакшн-доступы идут по тому же пути в коде — меняется только переменная окружения.
- 04
Настройте счёт и продавайте
Два способа работы: предоплаченный баланс или согласованный кредитный лимит. В любом случае каждый заказ списывается сразу же, а каждое движение записывается в журнал, куда можно только добавлять, — вы видите расходы, не дожидаясь выписки в конце месяца.
Что обычно делают на рынке и что вместо этого делаем мы
Большинство пунктов ниже — не проблемы первой недели. Они начинают болеть на шестом месяце. Мы решили их заранее.
Тестовая среда
Обычная практика на рынкеSandbox либо нет вовсе, либо она ведёт себя иначе, чем продакшн, — и вы отлаживаете интеграцию на реальных деньгах.
COTA Partner APISandbox идёт по тому же пути в коде, что и продакшн: те же проверки, те же коды ошибок, отдельный баланс. Среда входит в ключ идемпотентности, поэтому заказ из sandbox никогда не воспроизведётся на продакшн-запросе.
Частичная поставка
Обычная практика на рынкеВы заказали десять, пришло семь. Деньги за остальные три где-то лежат, и вы открываете обращение в поддержку.
COTA Partner APIСтоимость каждой непоставленной единицы возвращается на ваш баланс в той же транзакции. В ответе отдельно указаны
requestedQuantityиfulfilledCount— догадываться не нужно.Повторные запросы
Обычная практика на рынкеПовтор после тайм-аута создаёт второй заказ и второе списание.
COTA Partner APIПередайте
Idempotency-Key— тот же ключ вернёт исходный ответ и никогда не спишет повторно. Если два запроса приходят одновременно, один берёт блокировку, другой её ждёт.Сбой у поставщика
Обычная практика на рынкеКогда поставщик падает, заказ просто не проходит, и никто не объясняет почему.
COTA Partner APIПри однозначном отказе мы автоматически переключаемся на резервного поставщика. Если ответа не было вовсе, мы намеренно НЕ переключаемся и помечаем строку как неопределённую: купить одну и ту же единицу дважды стоит вам столько же, сколько и нам.
Прозрачность счёта
Обычная практика на рынкеВыписка в конце месяца. Всё, что происходит между, — чёрный ящик.
COTA Partner APIЖурнал, куда можно только добавлять: каждое списание и начисление с причиной, доступное сразу через
GET /ledger. Работайте по предоплате или с согласованным кредитным лимитом — в обоих случаях продакшн- и sandbox-счета остаются раздельными.Доставка событий
Обычная практика на рынкеОпрос. Вы постоянно спрашиваете, изменился ли заказ.
COTA Partner APIПодписанные webhook-и. События пишутся внутри бизнес-транзакции, поэтому заказ не может закрыться с потерянным уведомлением. Если мы не смогли до вас дозвониться, повторяем на восьми возрастающих интервалах, а если ваш эндпоинт помечен как неработоспособный, вам придёт письмо.
Возвраты
Обычная практика на рынкеПереписка по почте и ожидание без срока. Вы никогда не знаете, на какой стадии заявка.
COTA Partner APIОткройте ЗАЯВКУ на возврат через API и следите за ней через
GET /refunds. При одобрении начисление пишется в той же транзакции, что и смена статуса, — состояние «одобрено, но не выплачено» невозможно по устройству системы.Ежедневный контроль
Обычная практика на рынкеПанель на компьютере. Как только вы выходите из офиса, обзор заканчивается.
COTA Partner APIВойдите в наше мобильное приложение под тем же аккаунтом, переключитесь на партнёрскую сторону и смотрите заказы, eSIM и журнал с телефона.
| Обычная практика на рынке | COTA Partner API | |
|---|---|---|
| Тестовая среда | Sandbox либо нет вовсе, либо она ведёт себя иначе, чем продакшн, — и вы отлаживаете интеграцию на реальных деньгах. | Sandbox идёт по тому же пути в коде, что и продакшн: те же проверки, те же коды ошибок, отдельный баланс. Среда входит в ключ идемпотентности, поэтому заказ из sandbox никогда не воспроизведётся на продакшн-запросе. |
| Частичная поставка | Вы заказали десять, пришло семь. Деньги за остальные три где-то лежат, и вы открываете обращение в поддержку. | Стоимость каждой непоставленной единицы возвращается на ваш баланс в той же транзакции. В ответе отдельно указаны requestedQuantity и fulfilledCount — догадываться не нужно. |
| Повторные запросы | Повтор после тайм-аута создаёт второй заказ и второе списание. | Передайте Idempotency-Key — тот же ключ вернёт исходный ответ и никогда не спишет повторно. Если два запроса приходят одновременно, один берёт блокировку, другой её ждёт. |
| Сбой у поставщика | Когда поставщик падает, заказ просто не проходит, и никто не объясняет почему. | При однозначном отказе мы автоматически переключаемся на резервного поставщика. Если ответа не было вовсе, мы намеренно НЕ переключаемся и помечаем строку как неопределённую: купить одну и ту же единицу дважды стоит вам столько же, сколько и нам. |
| Прозрачность счёта | Выписка в конце месяца. Всё, что происходит между, — чёрный ящик. | Журнал, куда можно только добавлять: каждое списание и начисление с причиной, доступное сразу через GET /ledger. Работайте по предоплате или с согласованным кредитным лимитом — в обоих случаях продакшн- и sandbox-счета остаются раздельными. |
| Доставка событий | Опрос. Вы постоянно спрашиваете, изменился ли заказ. | Подписанные webhook-и. События пишутся внутри бизнес-транзакции, поэтому заказ не может закрыться с потерянным уведомлением. Если мы не смогли до вас дозвониться, повторяем на восьми возрастающих интервалах, а если ваш эндпоинт помечен как неработоспособный, вам придёт письмо. |
| Возвраты | Переписка по почте и ожидание без срока. Вы никогда не знаете, на какой стадии заявка. | Откройте ЗАЯВКУ на возврат через API и следите за ней через GET /refunds. При одобрении начисление пишется в той же транзакции, что и смена статуса, — состояние «одобрено, но не выплачено» невозможно по устройству системы. |
| Ежедневный контроль | Панель на компьютере. Как только вы выходите из офиса, обзор заканчивается. | Войдите в наше мобильное приложение под тем же аккаунтом, переключитесь на партнёрскую сторону и смотрите заказы, eSIM и журнал с телефона. |
Ваша операционная работа в кармане
Партнёрская сторона существует не только на компьютере. Войдите в приложение COTA E-SIM с партнёрской почтой — и появится пункт «перейти в партнёрский аккаунт»: коммерческая часть живёт в том же приложении.
Видно только тем, кого вы пригласили
Если ваша почта не зарегистрирована как партнёрский пользователь, приложение не покажет ни партнёрской кнопки, ни намёка на её существование. Для обычного покупателя ничего не изменилось.
Сделано для наблюдения, а не для продаж
Мобильная часть намеренно только для чтения: необратимые действия — создать заказ, перевыпустить доступы — остаются в портале и API. Случайное касание на телефоне не может потратить деньги.
Одинаково на iOS и Android
Одни и те же экраны в одном и том же порядке на обеих платформах: какой телефон у вашей команды, никогда не превращается в разницу в обучении.
Доступ открывается по приглашению
Вы приглашаете коллегу по почте, и аккаунт активируется только после того, как этот человек подтвердит ссылку в своём ящике. Адрес с опечаткой не откроет никаких дверей.
Те же экраны есть в веб-портале на partner.cotaesim.com — доступы, настройки webhook-ов и запрос на выход в продакшн находятся там.
Поверхность, которую осваивают за один вечер
Меньше двадцати эндпоинтов всего: авторизация, каталог, заказы, жизненный цикл eSIM, движения по счёту и webhook-и. У всех одна схема авторизации, один контракт ошибок и одна форма постраничной выдачи — освоив один, вы освоили все.
- Бизнес-ошибки возвращают 422 с машиночитаемым
code; 429 означает только ограничение частоты и ничего больше. - Заказ, доставка и QR-код приходят в одном ответе — второго вызова ждать не нужно.
- Каждый эндпоинт работает одинаково с sandbox- и продакшн-доступами.
Каждый эндпоинт, схемы его запроса и ответа и полный каталог ошибок собраны в справочнике OpenAPI — живом документе, на котором можно пробовать вызовы.
Открыть полный справочник APIО чём нас спрашивают
Розничную цену устанавливаю я?
Да. Мы продаём вам по оптовой цене; сколько брать со своего клиента — полностью ваше решение. Сумма, которую вы видите в каталоге, — это то, что мы выставим вам.
Могу ли я продавать под своим брендом?
Да — API возвращает сырые данные доставки (строку LPA, универсальную ссылку iOS, изображение QR-кода). Вы показываете их в своём приложении, своём письме, своём оформлении. Ваш клиент нас не видит.
Предоплата или кредит?
Доступно и то, и другое. При предоплате внесённая сумма списывается в момент поступления заказа, а когда она заканчивается, заказ не создаётся — долг за вашей спиной не накапливается. При кредите вы можете уходить в минус в пределах согласованного лимита; какой режим у вас включён, задано на вашем счёте, и GET /balance сообщает это вам. Кредит действует только на продакшн-счёте — sandbox всегда работает со своим тестовым балансом. В обоих режимах вы получаете предупреждение при подходе к порогу.
Возвраты обрабатываются автоматически?
Нет, и это сделано намеренно. POST /refunds открывает только ЗАЯВКУ; решение принимает наша команда. В момент одобрения начисление пишется в ваш журнал в той же транзакции, что и смена статуса, а обоснование остаётся при заявке.
Sandbox действительно такая же, как продакшн?
Те же эндпоинты, те же правила проверки, те же коды ошибок, те же события webhook. Отличия: списание идёт с отдельного баланса и возвращается тестовая eSIM, указывающая на тестовый домен. Реальная линия не выделяется.
Могут ли войти несколько человек из моей команды?
Да. Приглашайте в портал и в мобильную часть сколько угодно пользователей; вход по почте и одноразовому коду, без паролей. Каждое приглашение остаётся неактивным, пока его получатель не подтвердит его из своего ящика.
А если у меня нет технической команды?
Портал делает на экране почти всё, что делает API: каталог, история заказов, детали eSIM, журнал и заявки на возврат. Начать работать можно, не написав ни строки под API.
Давайте покажем вам каталог
Мы соберём для вас прайс-лист и откроем доступы к sandbox, чтобы вы попробовали интеграцию в своём темпе. Выход в продакшн — одна кнопка, когда будете готовы.

