Встраиваем SMS-верификацию Египта (+20) в API OTP Route

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

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

Какие запросы действительно нужны для интеграции Egypt OTP API?

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

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

Короткий GET /api/v1/balance в начале каждого набора тестов позволяет CI-задаче остановиться заранее, а не падать на полпути. Лимит — 300 запросов в минуту на аккаунт, чего хватает на параллельный опрос нескольких активаций. Полные примеры запросов — в документации для разработчиков.

Как принимать коды +20 через подписанный вебхук вместо опроса?

Опрос подходит для одиночного локального теста; вебхук лучше, когда конвейер запускает много египетских активаций одновременно. Добавьте эндпоинт в консоли разработчика (пять на аккаунт) и подпишитесь на activation.sms_received, а также на activation.expired и activation.cancelled, чтобы ваша задача знала, когда прекращать ожидание.

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

Используйте идентификатор активации как ключ идемпотентности: сохраняйте событие один раз, игнорируйте повторы и быстро возвращайте 2xx. Руководство по приёму OTP через вебхуки разбирает версию такого обработчика с очередью.

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

В живом срезе по Египту указано более 1 600 сервисов. Среди популярных, которые команды тестируют на номерах +20, — WhatsApp, Facebook, Instagram, TikTok, Telegram, Google (Gmail & YouTube), Microsoft & Outlook, Uber, Snapchat, Viber, imo, ChatGPT (OpenAI), Amazon и LinkedIn.

Этот список — снимок на момент времени, а не обещание. У сервиса, у которого утром были номера, днём их может быть мало, и именно поэтому эндпоинт цен сообщает о доступности вместе со стоимостью. Некоторые сервисы вообще отказывают виртуальным номерам; в этом случае вас защищает правило возврата, описанное ниже.

Как приложению хранить и проверять египетские мобильные номера?

Египет использует код страны +20 и внутренний префикс междугородной связи 0. Локально мобильный номер записывается одиннадцатью цифрами, начинающимися с 01, а в международной форме ноль исчезает, и после +20 следуют десять цифр. Несколько привычек избавят от большинства ошибок:

  • Сохраняйте только E.164, например +201XXXXXXXXX, а форматирование для показа делайте при отрисовке.
  • Отбрасывайте нулевой префикс, когда пользователь вводит 01…, а страна уже выбрана как Египет; иначе получится недопустимое значение +2001….
  • Нормализуйте цифры. Пользователи с арабской раскладкой могут вводить арабо-индийские цифры, поэтому перед валидацией и перед сравнением введённого OTP преобразуйте их в обычные ASCII-цифры.

Официальный язык — арабский, поэтому многие сервисы присылают египетским пользователям коды на арабском, а другие по умолчанию используют английский. Если ваш парсер вытаскивает код регулярным выражением, проверьте его на текстах сообщений с письмом справа налево, а не только на английских.

Может ли операционная команда заказать египетский номер без кода?

Да. Не каждая проверка требует скрипта, и коллеги из поддержки или роста могут пользоваться тем же OTP Gateway из браузера:

  1. Зарегистрируйтесь по электронной почте и 6-значному коду или через Google.
  2. Пополните кошелёк и откройте OTP Gateway.
  3. Выберите Египет и сервис; цена показывается до подтверждения.
  4. Скопируйте номер +20 в приложение и ждите, пока код появится на экране.

Активация такая же, как при заказе через API, поэтому ручная и автоматическая проверки ведут себя одинаково.

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

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

Если коды продолжают не приходить:

  • Дайте окну отработать, прежде чем решать, что попытка неудачна: время доставки зависит от сервиса и маршрута.
  • Убедитесь, что сервис вообще принимает виртуальные номера. Некоторые отказывают, и выбор маршрута этого не изменит.
  • Повторите чуть позже или через соседний маршрут, если ваш тест не зависит от египетского номера.
  • Не заказывайте заново в плотном цикле. Оставляйте всё более длинную паузу между заказами и записывайте идентификатор каждой активации в логи.

Наши заметки о том, как снизить число недоставленных OTP, подробнее рассматривают политику повторов.

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

Египет — один из крупнейших арабоязычных рынков, поэтому он становится естественной первой остановкой для команд, локализующих продукт на арабский. Настоящий номер +20 проверяет то, что пропускают эмуляторы: селектор страны, обработку нулевого префикса, арабские шаблоны SMS и разметку справа налево на экране ввода кода.

Региональные операционные команды также используют OTP-маршрутизацию, чтобы убедиться, что после релиза регистрация по-прежнему работает для египетских клиентов, а компании, обслуживающие египтян за рубежом, проверяют, что номер +20 принимается и за пределами страны.

Есть ли долгосрочная египетская линия и как устроена оплата?

Самостоятельно оформляемого долгосрочного номера для Египта нет. Выделенные линии — продукт только для США и Канады, от $1.95/month; если вам нужна постоянная египетская линия, напишите на [email protected], и команда подскажет, возможна ли она по местным правилам, без обещания, что это так.

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

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

Можно ли проверить OTP регистрации в моём приложении для Египта без египетской SIM-карты?

Да. Закажите номер +20 в OTP Gateway, введите его в форму регистрации и прочитайте код в панели или через API — всё без местной SIM-карты.

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

Египет — eg. Передавайте его в эндпоинт цен и в теле POST /api/v1/activations.

Плачу ли я за номер +20, если SMS не пришло?

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

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

Нет. 0 — это внутренний префикс междугородной связи; отбросьте его и храните номер в формате E.164, начинающемся с +20.

Можно ли в следующем месяце снова войти с тем же египетским тестовым номером?

Ненадёжно. Каждый номер OTP Gateway принимает один проверочный код, а самостоятельно оформляемые выделенные линии есть только в США и Канаде, поэтому планируйте аккаунты, которым нужны повторные входы, с учётом этого.

Можно ли использовать египетские номера, чтобы открыть много аккаунтов на платформе?

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

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

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

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