SMS: URI
URI-схема для отправки SMS, открывающая приложение сообщений с предзаполненными номером получателя и текстом. Стандарт RFC 5724. Применяется в QR-кодах на стендах, листовках и коротких номерах для голосований и обратной связи.
Что такое SMS-URI
SMS URI — это URI-схема sms:, описанная в RFC 5724 (2009) и предназначенная для инициирования отправки SMS. Ссылка вида sms:+79991234567?body=Привет при клике или сканировании QR-кода открывает штатное приложение сообщений на смартфоне и автоматически подставляет номер получателя и текст. Пользователь видит готовое сообщение и нажимает «Отправить» сам — автоматической отправки без подтверждения нет.
Схема поддерживается с первых лет массовых смартфонов: iOS — с 2007 года, Android — с 2009-го, Windows Phone, KaiOS. Сегодня её понимают все современные ОС без дополнительных приложений. В отличие от мессенджерных WhatsApp URI и схожих deep link, sms: работает на любом телефоне с SIM-картой — в том числе кнопочном.
Для сравнения: tel: открывает набор номера, mailto: — почтовый клиент, а sms: открывает SMS-приложение. Механика одна, сценарии разные.
Синтаксис и примеры
Базовая структура: sms:{номер}?body={текст}. Номер в международном формате E.164 (с ведущим +). Текст — URL-кодированный.
- Только номер:
sms:+79991234567— откроет SMS без текста, пользователь напишет сам. - С предзаполненным текстом:
sms:+79991234567?body=Хочу%20записаться - Короткий номер:
sms:5555?body=ДА— голосование, подписка, регистрация на мероприятие. - 8-800 номер:
sms:88001234567?body=Перезвоните— обратная связь без звонка. - Несколько получателей (через запятую, RFC 5724):
sms:+7916,+7926?body=Привет— поддерживается не везде, лучше не использовать в QR.
Устаревшая нотация smsto: (ранний Android): smsto:+79991234567:Текст — двоеточие вместо ?body=. Deprecated, на современных Android ещё работает, на iOS — нет. В QR-кодах использовать только sms: из RFC 5724.
Пробелы в тексте кодируются как %20, кириллица — полным UTF-8 percent-encoding. Большинство генераторов QR-кодов, включая QRkoder, делают это автоматически: вводите текст на русском, сервис формирует корректный URI.
Где применяется в QR
SMS-URI в QR-коде — классический сценарий «офлайн → мобильное действие». Стенд, листовка, упаковка становятся точкой входа в интерактив без приложений и интернета.
- Голосования и конкурсы. QR на экране мероприятия или баннере: «Сканируй и отправь SMS на номер 4321 со словом ПОБЕДА». Ссылка
sms:4321?body=ПОБЕДАоткрывает готовое сообщение. Бизнес-модель: короткий номер арендуется у оператора, входящие SMS тарифицируются. - Регистрация на событие. QR на приглашении открывает
sms:5555?body=РЕГИСТРАЦИЯ%20Иванов— отправка SMS = подтверждение участия. Работает без интернета на месте. - Подписка на рассылку. Листовка в магазине: «Получайте акции SMS. Сканируй QR.» За сообщением на короткий номер — автоответчик с подтверждением подписки.
- Обратная связь и жалобы. QR на чеке или этикетке ведёт на
sms:+74951234567?body=Отзыв%20о%20покупке%20№— предзаполненный шаблон снижает барьер.
Ключевое отличие SMS-сценария от мессенджерного: SMS не требует смартфона с интернетом и аккаунта в приложении. На мероприятии в 2000 человек часть аудитории не пользуется WhatsApp, но SMS-телефон есть у всех.
Частые вопросы
Отправляется ли SMS автоматически при сканировании QR?
Нет. sms: только открывает приложение сообщений с предзаполненными данными — пользователь всегда нажимает «Отправить» вручную. Это намеренное ограничение: автоматическая отправка без подтверждения запрещена на уровне iOS и Android. Для вас как организатора это даже лучше: пользователь осознанно подтверждает действие, что снижает риск спора «я не отправлял». Текст в поле он может отредактировать до отправки.
Работает ли sms: на iPhone и Android одинаково?
В целом — да, но есть нюансы. iOS с 2007 года использует стандартный обработчик sms:, открывает приложение «Сообщения». Android с 2009-го — стандартное SMS-приложение (Google Messages или прошивочное). Разница: Android-приложения от Samsung, Xiaomi, OPPO иногда игнорируют параметр body= и открывают пустое сообщение — проверяйте на целевых устройствах перед запуском акции. iOS с параметром body= работает надёжно на всех версиях. Устаревшую нотацию smsto: iOS не понимает совсем — используйте только RFC 5724 формат.
Как подключить короткий номер типа 5555 для QR-кампании?
Короткие номера (4–5 цифр) арендуются у операторов связи или агрегаторов SMS-рассылок — «СМС-Центр», «МТС Маркетолог», СМPP-партнёры МегаФона, Билайна. Стоимость аренды — от 5000 ₽/месяц за федеральный короткий номер, входящие SMS тарифицируются отдельно (обычно 1–3 ₽/SMS). Для короткосрочных акций есть субаренда — отдельный ключевой префикс на общем номере агрегатора. В QR-ссылке указываете номер как есть: sms:5555?body=КОД. Операторы гарантируют доставку входящих на ваш API-эндпоинт или email.
Как кодировать кириллицу в body параметре?
Кириллицу нужно кодировать в UTF-8 и затем percent-encode каждый байт. «Привет» превращается в %D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82. Делать это руками не нужно — генератор QR-кодов кодирует автоматически. Если пишете URI вручную (например, в коде), используйте encodeURIComponent() в JavaScript или аналог в вашем языке. Важно: не заменяйте пробелы на + — в sms: схеме это не работает, только %20.
Можно ли указать несколько получателей?
RFC 5724 формально допускает запись через запятую: sms:+7916...,+7926.... На практике — поддержка неравномерная. iOS открывает групповое сообщение корректно. Часть Android-приложений принимает только первый номер и молча отбрасывает остальные. Для QR-кодов в массовых кампаниях лучше указывать один номер: надёжность важнее многополучательской фичи, которая ломается на каждом третьем устройстве.