Программный приём индонезийских OTP-кодов +62

Телефонный код +62OTP Gateway от $0.20 за кодВыделенные номера: только США и КанадаID API: id
Краткий ответ

Да, OTP Route может принимать индонезийские (+62) SMS-коды подтверждения на одноразовый номер из OTP Gateway и передавать их в панель или в ваш код через REST-опрос или подписанный вебхук. Цены начинаются от $0.20 за код и различаются по сервисам, а деньги не списываются, если код не пришёл в течение 20-минутного окна активации.

Какие эндпоинты вызывает интеграция Indonesia OTP API?

Всё работает через https://otproute.com/api/v1 с Bearer-ключом с префиксом or_live_. Создайте его в консоли разработчика; в аккаунте может быть до 10 ключей, что позволяет легко разделить CI-раннер и тестовый сервер.

  1. Получите GET /api/v1/services и GET /api/v1/countries и закэшируйте оба списка. Индонезия указана с id id.
  2. Запросите GET /api/v1/prices?country=id&service=<id>, чтобы узнать текущую цену и доступность сервиса, который вы собираетесь тестировать. Наличие меняется в течение дня, поэтому запрашивайте его на каждый прогон, а не прописывайте жёстко.
  3. Создайте заказ через POST /api/v1/activations с телом вида {"service": "tokopedia", "country": "id"}. В ответ придут id активации и номер +62.
  4. Введите или подставьте этот номер в поле телефона вашего приложения или тестового аккаунта.
  5. Прочитайте результат через вебхук или опросом GET /api/v1/activations/{id}. Аккуратно прервите прогон через POST /api/v1/activations/{id}/cancel, если тест упал до шага с SMS.

Быстрый GET /api/v1/balance перед стартом набора тестов позволяет прогону упасть заранее, а не посередине. Опрос с разумным интервалом легко укладывается в потолок в 300 запросов в минуту. Полные схемы — в документации API.

Как обрабатывать коды +62 с помощью подписанного вебхука?

Опрос подходит одному разработчику; параллельным задачам спокойнее с push-доставкой. Зарегистрируйте до 5 эндпоинтов на аккаунт и подпишитесь на activation.sms_received, activation.expired и activation.cancelled.

Каждый запрос содержит заголовок X-OTPRoute-Signature в формате t=<unix>,v1=<hex>. Соберите подписываемую строку как <t>.<raw body>, вычислите HMAC-SHA256 с секретом эндпоинта и сравните с v1 за постоянное время. Хэшируйте сырые байты до любого разбора JSON и отбрасывайте запросы со слишком старой меткой времени, чтобы перехваченную нагрузку нельзя было воспроизвести повторно.

Считайте, что события привязаны к id активации, и делайте обработчик идемпотентным: повторная доставка должна просто обнаружить, что код уже сохранён. Материал о безопасности вебхуков с HMAC разбирает проверки по шагам.

Какие сервисы могут принимать индонезийские SMS с OTP в OTP Route?

Актуальный срез по Индонезии охватывает более 3 000 сервисов. Популярные маршруты — WhatsApp, Tokopedia, Shopee, Lazada, Telegram, Google (Gmail & YouTube), Facebook, Instagram, TikTok, LINE, Discord, Microsoft & Outlook и ChatGPT (OpenAI).

Для коллег, которые никогда не трогают API, ту же работу выполняет панель: войдите, выберите сервис, выберите Индонезию, проверьте показанную цену и закажите. Номер +62 появится на экране, а код отобразится рядом, как только придёт SMS. Если тест отменён, отмените заказ в том же окне.

Как хранить и нормализовать номер +62?

В Индонезии транковая приставка — 0, поэтому внутри страны мобильные номера пишут как 08 и остальные цифры. В E.164 этот 0 исчезает: номер, записанный локально как 0812..., становится +62812.... Храните форму E.164, нормализуйте всё, что вводит пользователь, убирая пробелы, дефисы и ведущий 0, а оценку корректности доверьте поддерживаемой библиотеке для телефонных номеров, потому что индонезийские абонентские номера имеют разную длину.

SMS-шаблоны, отправляемые на индонезийские номера, часто составлены на индонезийском языке (бахаса), хотя некоторые сервисы отправляют английский. Извлекайте код по шаблону цифр, а не по словам вроде «kode» или «code», и вашему парсеру будет всё равно, на каком языке шаблон.

Зачем продуктовым командам тестировать регистрацию в Индонезии?

Индонезия — одна из самых населённых стран мира, а пользование интернетом там в основном мобильное, поэтому проверка номера телефона стоит в начале многих потоков онбординга. Команды, выходящие в Юго-Восточную Азию, хотят убедиться, что их индонезийские экраны регистрации и входа правильно работают с настоящим номером +62, что тексты на индонезийском отображаются без обрезания и что антифрод-правила не блокируют законных местных пользователей.

Региональные операционные команды и команды маркетплейсов также используют маршрут для проверки бизнес-аккаунтов, которыми они управляют для индонезийских магазинов. На странице тестирования QA описано, как встроить это в план регрессии.

Что делать, если индонезийский код так и не появился?

Время доставки зависит от сервиса и маршрута, поэтому дайте активации время, прежде чем решать, что попытка не удалась. Когда SMS не приходит:

  • Дождитесь конца 20-минутного окна или отмените заказ; в любом случае вся сумма автоматически вернётся на кошелёк.
  • Закажите снова чуть позже или попробуйте другой маршрут сервиса, если тест это допускает.
  • Убедитесь, что целевой сервис принимает виртуальные номера для этого действия. Некоторые не принимают, и именно поэтому существует правило возврата.
  • Не заказывайте заново в плотном цикле. Делайте паузы между попытками, чтобы CI-задача не израсходовала все повторы за секунды.

Больше идей для диагностики — в материале о снижении числа неудачных доставок OTP.

Есть ли выделенный номер +62 и как он тарифицируется?

Нет. Долгосрочная индонезийская линия по самообслуживанию не предлагается. Выделенные номера — продукт для США и Канады, от $1.95/месяц. Если вашей команде действительно нужна постоянная линия +62, напишите на [email protected]; возможность организовать её зависит от местных правил и не обещается.

Оплата OTP Gateway идёт с единого предоплаченного кошелька в USD без абонентской платы и тарифного плана на выбор. Пополняйте кошелёк картой или стейблкоинами USDT/USDC; каждое пополнение сопровождается PDF-счётом на email для вашей бухгалтерии. Аккаунты разработчика могут запросить режим песочницы, который возвращает имитированные номера и коды для сквозных интеграционных тестов без расходования средств. Смотрите цены или создайте аккаунт.

Частые вопросы

Можно ли протестировать регистрацию в моём приложении по Индонезии без местной SIM?

Да. Закажите номер +62 в OTP Gateway для нужного сервиса, введите его в приложении и прочитайте код в панели или через API.

Какой id страны использует API OTP Route для Индонезии?

Индонезия — это id, поэтому запрос цены выглядит как GET /api/v1/prices?country=id&service=<id>.

Нужно ли платить, если индонезийское SMS так и не пришло?

Нет. Если за 20-минутное окно ничего не пришло или вы отменили активацию, вся сумма автоматически возвращается на кошелёк.

Нужно ли сохранять ведущий 0 при записи индонезийского мобильного номера?

Оставляйте его только для отображения в местном формате. Храните +62 и национальный номер без 0 — это и есть формат E.164.

Будут ли индонезийские проверочные тексты на английском?

Не всегда. Многие приходят на индонезийском, поэтому разбирайте числовой код, а не полагайтесь на окружающие слова.

Разрешены ли индонезийские номера для любых целей?

Только для законного использования: тестирования и работы с собственными продуктами и аккаунтами в рамках условий каждого сервиса. К каждому заказу применяется Политика допустимого использования OTP Route.

Названия сервисов являются товарными знаками их владельцев. OTP Route не связан с ними. Используйте номера законно, соблюдайте условия каждого сервиса и нашу Политику допустимого использования.

Направьте первый OTP за несколько минут

Создайте бесплатный аккаунт, пополните USD-кошелёк и закажите номер в панели или через API. Без абонентской платы.