Русский
Программный приём индонезийских OTP-кодов +62
Да, OTP Route может принимать индонезийские (+62) SMS-коды подтверждения на одноразовый номер из OTP Gateway и передавать их в панель или в ваш код через REST-опрос или подписанный вебхук. Цены начинаются от $0.20 за код и различаются по сервисам, а деньги не списываются, если код не пришёл в течение 20-минутного окна активации.
Какие эндпоинты вызывает интеграция Indonesia OTP API?
Всё работает через https://otproute.com/api/v1 с Bearer-ключом с префиксом or_live_. Создайте его в консоли разработчика; в аккаунте может быть до 10 ключей, что позволяет легко разделить CI-раннер и тестовый сервер.
- Получите
GET /api/v1/servicesиGET /api/v1/countriesи закэшируйте оба списка. Индонезия указана с idid. - Запросите
GET /api/v1/prices?country=id&service=<id>, чтобы узнать текущую цену и доступность сервиса, который вы собираетесь тестировать. Наличие меняется в течение дня, поэтому запрашивайте его на каждый прогон, а не прописывайте жёстко. - Создайте заказ через
POST /api/v1/activationsс телом вида{"service": "tokopedia", "country": "id"}. В ответ придут id активации и номер +62. - Введите или подставьте этот номер в поле телефона вашего приложения или тестового аккаунта.
- Прочитайте результат через вебхук или опросом
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 не связан с ними. Используйте номера законно, соблюдайте условия каждого сервиса и нашу Политику допустимого использования.