[{"data":1,"prerenderedAt":1631},["ShallowReactive",2],{"blog-chto-takoe-flash-call":3,"blog-related-chto-takoe-flash-call":370,"mdc-g385s9-key":1584,"mdc--eprghr-key":1595,"mdc--k955j2-key":1604,"mdc-r4mwri-key":1613,"mdc--ua4s1h-key":1622},{"id":4,"title":5,"body":6,"category":334,"cta":335,"description":340,"draft":341,"extension":342,"faq":343,"h1":356,"meta":357,"navigation":358,"order":359,"path":360,"published":361,"related":362,"seo":366,"stem":367,"summary":368,"updated":361,"__hash__":369},"blog\u002Fblog\u002Fchto-takoe-flash-call.md","Что такое Flash Call — и чем отличается reverse flash call",{"type":7,"value":8,"toc":324},"minimark",[9,13,18,21,24,27,35,39,46,62,69,72,76,81,95,102,110,114,227,230,234,237,264,276,280,283,321],[10,11,12],"p",{},"Термин flash call встречается в двух противоположных значениях, и разница между ними определяет, заработает сценарий в вашем продукте или нет. Разбираем оба, чтобы при разговоре с провайдером было понятно, о чём именно речь.",[14,15,17],"h2",{"id":16},"chto-takoe-flash-call-prostymi-slovami","Что такое flash call простыми словами",[10,19,20],{},"Flash call — это подтверждение номера телефона с помощью короткого вызова, который сбрасывается до ответа. Соединение не устанавливается, разговора не происходит, тарификация как за разговор не наступает. Полезную информацию несёт не содержание звонка, а сам факт вызова и номер, который при этом определился.",[10,22,23],{},"Название переводится буквально: flash — «вспышка», call — «вызов». То есть «вызов-вспышка», мелькнувший звонок. В русских текстах пишут по-разному — флеш колл, флэш колл, флешколл, — и все варианты означают одно и то же. Встречается также описательное «звонок-сброс».",[10,25,26],{},"Смысл в сравнении с SMS: там нужно доставить сообщение и заставить пользователя переписать код, здесь достаточно установить и оборвать вызов. Меньше шагов, меньше зависимости от доставки.",[10,28,29,30,34],{},"Синоним, который стоит знать, — ",[31,32,33],"strong",{},"call to auth"," (иногда call2auth), «звонок для аутентификации». Термин описывает ту же идею: вызов вместо кода как способ подтвердить владение номером. В маркетинговых материалах он встречается наравне с flash call.",[14,36,38],{"id":37},"kak-rabotaet-obychnyy-flash-call","Как работает обычный flash call",[10,40,41,42,45],{},"Направление вызова: ",[31,43,44],{},"сервис звонит пользователю",".",[47,48,49,53,56,59],"ol",{},[50,51,52],"li",{},"Пользователь вводит номер в приложении.",[50,54,55],{},"Сервис инициирует вызов на этот номер с заранее известного номера и сразу сбрасывает.",[50,57,58],{},"Приложение видит входящий вызов и считывает номер звонившего.",[50,60,61],{},"Последние цифры этого номера играют роль кода: приложение подставляет их само либо просит пользователя ввести.",[10,63,64,65,68],{},"Схема выглядит изящно, но у неё есть жёсткое ограничение: ",[31,66,67],{},"приложению нужен доступ к журналу вызовов",". Это чувствительное разрешение, и платформы его ограничивают. В Google Play выдача разрешения на журнал вызовов требует обоснования и проходит отдельную проверку, а в iOS публичного интерфейса для чтения журнала нет вовсе. В браузере такой сценарий невозможен по определению — веб-страница к журналу вызовов доступа не имеет.",[10,70,71],{},"На практике это означает, что обычный flash call применим в одном случае: Android-приложение с одобренным разрешением. Всё остальное — веб, iOS, мобильная версия сайта — остаётся за бортом.",[14,73,75],{"id":74},"chto-takoe-obratnyy-reverse-flash-call","Что такое обратный (reverse) flash call",[10,77,41,78,45],{},[31,79,80],{},"пользователь звонит сервису",[47,82,83,86,89,92],{},[50,84,85],{},"Пользователь вводит номер в форме.",[50,87,88],{},"Сервис выдаёт выделенный номер и показывает его пользователю.",[50,90,91],{},"Пользователь звонит на этот номер со своего телефона. Отвечать не нужно — соединение сбрасывается автоматически.",[50,93,94],{},"Сервис определяет номер вызывающего абонента и сопоставляет вызов с ожидающей проверкой.",[10,96,97,98,101],{},"Ключевое следствие: ",[31,99,100],{},"читать ничего не нужно",". Звонок приходит к сервису, и он видит его на своей стороне — никакого доступа к журналу вызовов или сообщениям на устройстве пользователя не требуется. Поэтому сценарий одинаково работает в мобильном приложении, в мобильном браузере и на десктопе, и не упирается в политики магазинов приложений.",[10,103,104,105,45],{},"Именно по этой схеме работает FlashCall. Подробный разбор механизма — в статье про ",[106,107,109],"a",{"href":108},"\u002Fblog\u002Fpodtverzhdenie-nomera-zvonkom","подтверждение номера телефона звонком",[14,111,113],{"id":112},"obychnyy-i-obratnyy-flash-call-sravnenie","Обычный и обратный flash call: сравнение",[115,116,119],"div",{"className":117},[118],"md-table",[120,121,122,137],"table",{},[123,124,125],"thead",{},[126,127,128,131,134],"tr",{},[129,130],"th",{},[129,132,133],{},"Обычный flash call",[129,135,136],{},"Обратный flash call",[138,139,140,152,163,174,185,194,205,216],"tbody",{},[126,141,142,146,149],{},[143,144,145],"td",{},"Кто звонит",[143,147,148],{},"сервис пользователю",[143,150,151],{},"пользователь сервису",[126,153,154,157,160],{},[143,155,156],{},"Что служит доказательством",[143,158,159],{},"входящий вызов на номер",[143,161,162],{},"исходящий вызов с номера",[126,164,165,168,171],{},[143,166,167],{},"Разрешения приложению",[143,169,170],{},"доступ к журналу вызовов",[143,172,173],{},"не нужны",[126,175,176,179,182],{},[143,177,178],{},"Работает в браузере",[143,180,181],{},"нет",[143,183,184],{},"да",[126,186,187,190,192],{},[143,188,189],{},"Работает на iOS",[143,191,181],{},[143,193,184],{},[126,195,196,199,202],{},[143,197,198],{},"Что делает пользователь",[143,200,201],{},"ничего либо вводит цифры номера",[143,203,204],{},"нажимает вызов",[126,206,207,210,213],{},[143,208,209],{},"Основной риск",[143,211,212],{},"отказ в разрешении, ограничения магазинов",[143,214,215],{},"номер вызывающего не определяется",[126,217,218,221,224],{},[143,219,220],{},"Строгость доказательства",[143,222,223],{},"подтверждает приём вызова",[143,225,226],{},"подтверждает совершение вызова",[10,228,229],{},"Последняя строка часто остаётся за кадром, а она содержательна: исходящий вызов доказывает больше, чем входящий. Принять вызов на номер проще, чем совершить вызов с него.",[14,231,233],{"id":232},"chto-vybrat","Что выбрать",[10,235,236],{},"Ответ зависит от того, где живёт ваш продукт.",[238,239,240,246,252,258],"ul",{},[50,241,242,245],{},[31,243,244],{},"Только Android-приложение, разрешение уже есть"," — обычный flash call допустим, пользователь не делает вообще ничего.",[50,247,248,251],{},[31,249,250],{},"Есть веб-версия или iOS"," — обычный flash call не покроет их, нужен обратный.",[50,253,254,257],{},[31,255,256],{},"Хочется одну реализацию на все платформы"," — обратный, других вариантов нет.",[50,259,260,263],{},[31,261,262],{},"Не хочется зависеть от политик магазинов"," — обратный: он не запрашивает чувствительных разрешений и не рискует при очередном ужесточении правил.",[10,265,266,267,271,272,45],{},"Сравнение с SMS по стоимости и доставляемости — в материале ",[106,268,270],{"href":269},"\u002Fblog\u002Fflash-call-ili-sms","flash call или SMS",". Особенности реализации на мобильных — в статье про ",[106,273,275],{"href":274},"\u002Fblog\u002Fpodtverzhdenie-nomera-v-prilozhenii","подтверждение номера в приложении",[14,277,279],{"id":278},"gde-primenyaetsya","Где применяется",[10,281,282],{},"Механизм один, а поводов подтвердить номер несколько:",[238,284,285,295,305,311],{},[50,286,287,290,291,45],{},[31,288,289],{},"Регистрация"," — отсечь фейковые аккаунты, см. ",[106,292,294],{"href":293},"\u002Fblog\u002Fregistraciya-po-zvonku-bez-koda","регистрацию по звонку",[50,296,297,300,301,45],{},[31,298,299],{},"Вход в аккаунт"," — вместо пароля или как второй фактор, см. ",[106,302,304],{"href":303},"\u002Fblog\u002Favtorizaciya-po-zvonku","авторизацию по звонку",[50,306,307,310],{},[31,308,309],{},"Подтверждение операции"," — смена реквизитов, оформление заказа.",[50,312,313,316,317,45],{},[31,314,315],{},"Проверка контакта"," — перед доставкой или публикацией объявления, см. ",[106,318,320],{"href":319},"\u002Fblog\u002Fgde-nuzhna-verifikaciya-telefona","сценарии по отраслям",[10,322,323],{},"Общее ограничение у обеих схем одно и о нём стоит помнить при планировании: они работают, пока номер вызывающего абонента передаётся сетью, и в пределах той страны, чьи номера есть в пуле провайдера.",{"title":325,"searchDepth":326,"depth":326,"links":327},"",2,[328,329,330,331,332,333],{"id":16,"depth":326,"text":17},{"id":37,"depth":326,"text":38},{"id":74,"depth":326,"text":75},{"id":112,"depth":326,"text":113},{"id":232,"depth":326,"text":233},{"id":278,"depth":326,"text":279},"Разбираемся",{"title":336,"text":337,"label":338,"href":339},"Обратный flash call на своём продукте","Работает в вебе и в приложениях, разрешений не требует. Ключ проекта выдаётся сразу после регистрации.","Начать бесплатно","\u002Fregister","Flash call простыми словами: как работает подтверждение номера сбрасываемым звонком, чем от него отличается обратный (reverse) flash call и что выбрать для продукта.",false,"md",[344,347,350,353],{"q":345,"a":346},"Как правильно писать — flash call, flashcall или флеш колл?","Все написания встречаются и означают одно и то же. В англоязычной документации\nчаще «flash call» в два слова, в русских текстах — «флеш колл», «флэш колл»\nи слитное «флешколл». Устоявшейся нормы для русского написания нет.\n",{"q":348,"a":349},"Flash call — это то же самое, что звонок-сброс?","Да, «звонок-сброс» и «сбрасываемый вызов» — русские описательные названия\nтого же механизма. Общее у всех вариантов одно: соединение не устанавливается,\nразговор не происходит, а информацию несёт сам факт вызова и номер.\n",{"q":351,"a":352},"Почему обычный flash call не работает в браузере?","Потому что он требует прочитать номер входящего вызова из журнала, а веб-страница\nк журналу вызовов доступа не имеет и иметь не может. Это ограничение самой\nплатформы, а не конкретной реализации.\n",{"q":354,"a":355},"Обратный flash call дороже обычного?","Не по природе механизма — обе схемы это один короткий вызов. Разница\nв модели тарификации у конкретного провайдера: важнее не тип flash call,\nа списывают ли деньги за попытку или за результат.\n","Что такое Flash Call и чем отличается обратный Flash Call",{},true,11,"\u002Fblog\u002Fchto-takoe-flash-call","2026-08-08",[363,364,365],"podtverzhdenie-nomera-zvonkom","flash-call-ili-sms","podtverzhdenie-nomera-v-prilozhenii",{"title":5,"description":340},"blog\u002Fchto-takoe-flash-call","Flash call — подтверждение номера телефона сбрасываемым звонком вместо SMS-кода.\nТермин описывает два зеркальных сценария, и их постоянно путают. При обычном flash call\nзвонит сервис, а приложение считывает номер входящего вызова — для этого ему нужен доступ\nк журналу вызовов. При обратном (reverse) flash call звонит сам пользователь, и никаких\nразрешений не требуется, поэтому сценарий работает и в браузере, и на iOS.\n","203EjzAVRkoDjYAsBaU82tUjkJ47sQQRHBg9EaP47c0",[371,883,1286],{"id":372,"title":373,"body":374,"category":848,"cta":849,"description":852,"draft":341,"extension":342,"faq":853,"h1":872,"meta":873,"navigation":358,"order":874,"path":108,"published":361,"related":875,"seo":879,"stem":880,"summary":881,"updated":361,"__hash__":882},"blog\u002Fblog\u002Fpodtverzhdenie-nomera-zvonkom.md","Подтверждение номера телефона звонком — верификация без SMS",{"type":7,"value":375,"toc":839},[376,379,382,386,389,392,395,479,482,486,489,536,543,546,550,553,559,562,568,640,646,650,653,656,659,666,669,673,680,686,739,742,754,758,761,795,801,805,808,831],[10,377,378],{},"Способ выглядит непривычно ровно один раз — пока не увидишь его в деле. Пользователь не ждёт SMS, не переключается в приложение сообщений, не копирует шесть цифр и не возвращается обратно в форму. Он нажимает одну кнопку, телефон начинает набор, через мгновение вызов обрывается — и регистрация продолжается сама.",[10,380,381],{},"Ниже — что происходит под капотом, чем это отличается от обычного flash call, почему звонок доходит там, где SMS теряется, и сколько всё это стоит.",[14,383,385],{"id":384},"chto-takoe-proverka-telefona-zvonkom","Что такое проверка телефона звонком",[10,387,388],{},"Задача любой телефонной верификации одна: убедиться, что человек, который вводит номер в форму, действительно имеет к этому номеру доступ. Классическое решение — отправить на него одноразовый код и попросить ввести обратно. Раз код дошёл и был введён, значит, телефон у пользователя в руках.",[10,390,391],{},"Проверка номера звонком решает ту же задачу с другой стороны. Вместо того чтобы отправлять что-то абоненту и ждать, что он это получит и перепечатает, сервис просит его сделать исходящий вызов. Телефонная сеть передаёт номер вызывающего абонента вместе с вызовом — это тот же механизм, благодаря которому вы видите, кто вам звонит. Сервис сравнивает определившийся номер с тем, который пользователь ввёл в форму. Совпало — номер подтверждён.",[10,393,394],{},"Разница принципиальная. В SMS-сценарии доказательством служит доставленное сообщение, а его доставка зависит от цепочки посредников. В сценарии со звонком доказательством служит сам факт исходящего вызова с проверяемого номера, и никакого содержимого передавать не требуется.",[115,396,398],{"className":397},[118],[120,399,400,412],{},[123,401,402],{},[126,403,404,406,409],{},[129,405],{},[129,407,408],{},"SMS-код",[129,410,411],{},"Звонок на выделенный номер",[138,413,414,424,435,446,457,468],{},[126,415,416,418,421],{},[143,417,198],{},[143,419,420],{},"ждёт сообщение, открывает его, запоминает или копирует код, возвращается в форму, вводит",[143,422,423],{},"нажимает кнопку вызова и сбрасывает",[126,425,426,429,432],{},[143,427,428],{},"Число действий",[143,430,431],{},"пять",[143,433,434],{},"два",[126,436,437,440,443],{},[143,438,439],{},"Что подтверждает факт",[143,441,442],{},"что сообщение дошло и было прочитано",[143,444,445],{},"что вызов совершён с проверяемого номера",[126,447,448,451,454],{},[143,449,450],{},"Где ломается",[143,452,453],{},"сообщение не дошло, пришло с задержкой, код введён с ошибкой",[143,455,456],{},"номер вызывающего не определяется, звонок с другого телефона",[126,458,459,462,465],{},[143,460,461],{},"За что списываются деньги",[143,463,464],{},"за отправку, независимо от доставки",[143,466,467],{},"за состоявшийся звонок",[126,469,470,473,476],{},[143,471,472],{},"Ввод кода",[143,474,475],{},"обязателен",[143,477,478],{},"не нужен",[10,480,481],{},"У способа есть и обратная сторона, о ней честно в разделе про ограничения: он работает, только пока номер вызывающего абонента передаётся сетью, и только для российских номеров.",[14,483,485],{"id":484},"kak-prohodit-podtverzhdenie-chetyre-shaga","Как проходит подтверждение: четыре шага",[10,487,488],{},"Со стороны интеграции всё сводится к двум запросам к API — на создание проверки и на получение её результата.",[47,490,491,502,512,518],{},[50,492,493,496,497,501],{},[31,494,495],{},"Ваша система создаёт проверку."," Отправляет ключ проекта и номер пользователя в формате E.164 (",[498,499,500],"code",{},"+79161234567","). В ответ приходит идентификатор проверки и выделенный номер, на который нужно позвонить.",[50,503,504,507,508,511],{},[31,505,506],{},"Вы показываете этот номер пользователю."," На мобильных — ссылкой ",[498,509,510],{},"tel:",", чтобы набор открывался в одно касание и номер не пришлось переписывать руками. Рядом полезен таймер: у проверки есть срок.",[50,513,514,517],{},[31,515,516],{},"Пользователь звонит."," Отвечать на вызов не нужно и невозможно — сервис фиксирует входящий и сбрасывает соединение. Звонок сопоставляется с проверкой по паре «выделенный номер + номер вызывающего абонента».",[50,519,520,523,524,527,528,531,532,535],{},[31,521,522],{},"Ваша система забирает результат."," Опрашивает статус проверки по её идентификатору: ",[498,525,526],{},"PENDING"," — звонка ещё не было, ",[498,529,530],{},"CONFIRMED"," — номер подтверждён, ",[498,533,534],{},"EXPIRED"," — 60 секунд истекли, звонка не поступило.",[10,537,538,539,542],{},"Важная деталь, которую часто понимают неправильно: ",[31,540,541],{},"выделенный номер не закрепляется за пользователем",". Один и тот же номер из пула одновременно обслуживает проверки разных людей — уникальной должна быть только пара «номер плюс звонящий». Поэтому пул не «заканчивается» при всплеске регистраций и не требует запаса номеров под пиковую нагрузку: сервис сам подбирает свободную комбинацию и распределяет вызовы по пулу.",[10,544,545],{},"Вторая деталь — про 60 секунд. Это срок жизни проверки, а не срок аренды номера. Если пользователь отвлёкся и позвонил через две минуты, вызов уже ни к чему не привяжется: проверка к тому моменту помечена как истёкшая. Правильная реакция интерфейса — не «ошибка», а кнопка «Позвонить ещё раз», создающая новую проверку.",[14,547,549],{"id":548},"chem-eto-otlichaetsya-ot-obychnogo-flash-call","Чем это отличается от обычного flash call",[10,551,552],{},"Термин flash call описывает два зеркальных сценария, и путаница между ними — главный источник недопонимания при выборе провайдера.",[10,554,555,558],{},[31,556,557],{},"Обычный flash call."," Звонит сервис. Пользователь видит входящий вызов, который тут же обрывается, а приложение читает номер входящего и подставляет его последние цифры как код подтверждения. Пользователю иногда даже не нужно ничего делать — но только если приложение получило доступ к журналу вызовов.",[10,560,561],{},"Здесь и находится слабое место. Доступ к журналу вызовов — чувствительное разрешение: в Google Play его выдача ограничена и требует обоснования, в iOS публичного API для чтения журнала нет вообще, а в браузере такой сценарий недоступен по определению. На практике обычный flash call — это история про Android-приложение с одобренным разрешением, и больше почти нигде.",[10,563,564,567],{},[31,565,566],{},"Обратный (reverse) flash call."," Звонит пользователь. Сервису не нужен доступ ни к журналу вызовов, ни к SMS — он видит вызов на своей стороне, потому что вызов пришёл к нему. Отсюда следует, что сценарий одинаково работает и в мобильном приложении, и на обычном сайте в браузере, и никаких особых разрешений не требует.",[115,569,571],{"className":570},[118],[120,572,573,583],{},[123,574,575],{},[126,576,577,579,581],{},[129,578],{},[129,580,133],{},[129,582,136],{},[138,584,585,593,602,611,619,630],{},[126,586,587,589,591],{},[143,588,145],{},[143,590,148],{},[143,592,151],{},[126,594,595,598,600],{},[143,596,597],{},"Разрешения в приложении",[143,599,170],{},[143,601,173],{},[126,603,604,607,609],{},[143,605,606],{},"Работает на сайте",[143,608,181],{},[143,610,184],{},[126,612,613,615,617],{},[143,614,189],{},[143,616,181],{},[143,618,184],{},[126,620,621,624,627],{},[143,622,623],{},"Что вводит пользователь",[143,625,626],{},"цифры из номера (или автоподстановка)",[143,628,629],{},"ничего",[126,631,632,635,638],{},[143,633,634],{},"Что может помешать",[143,636,637],{},"отказ в разрешении, ограничения магазинов приложений",[143,639,215],{},[10,641,642,643,45],{},"FlashCall работает по второй схеме. Подробный разбор терминологии — включая написания «флеш колл» и синоним call to auth — в отдельном материале ",[106,644,645],{"href":360},"что такое flash call и обратный flash call",[14,647,649],{"id":648},"pochemu-zvonok-dohodit-tam-gde-sms-ne-doshla","Почему звонок доходит там, где SMS не дошла",[10,651,652],{},"Чтобы SMS с кодом оказалась на экране, она проходит цепочку: ваш сервис → агрегатор → оператор получателя → устройство. На каждом переходе есть очередь, фильтр и возможность потерять сообщение. Массовые рассылки фильтруются как спам, роуминг и запрет на приём международных сообщений отсекают часть абонентов, переполненная память устройства не даёт сообщение принять, а задержка на стороне агрегатора превращает код в бесполезный — к моменту доставки он уже истёк.",[10,654,655],{},"Для бизнеса это не абстрактная проблема, а прямые потери: недоставленная SMS — это не отправленный впустую рубль, а несостоявшаяся регистрация. Причём отправка тарифицируется независимо от того, дошло сообщение или нет.",[10,657,658],{},"Исходящий вызов идёт по голосовой сети напрямую. Там нет ни фильтрации массовых рассылок, ни очереди на доставку, ни спам-папки — соединение либо устанавливается, либо нет, и результат виден мгновенно. Отдельно важно, что инициатива на стороне пользователя: он не ждёт, пока до него что-то доедет, а сам совершает действие и сразу видит результат.",[10,660,661,662,45],{},"Подробный разбор причин, по которым коды не доходят, и что с этим делать пользователю — в материале ",[106,663,665],{"href":664},"\u002Fblog\u002Fne-prihodit-kod-podtverzhdeniya","почему не приходит код подтверждения",[10,667,668],{},"Обещать стопроцентную доставляемость было бы нечестно, поэтому назовём и границы. Верификация телефона звонком не сработает в трёх случаях: у абонента скрыт номер, звонок идёт через корпоративную АТС с подменой исходящего номера, или пользователь находится за пределами России — пул состоит из российских номеров. Разумная архитектура оставляет запасной способ подтверждения: звонок как основной сценарий, SMS как резервный для тех, у кого он не прошёл.",[14,670,672],{"id":671},"skolko-stoit-podtverzhdenie-nomera","Сколько стоит подтверждение номера",[10,674,675,676,679],{},"Одно подтверждение — ",[31,677,678],{},"0,20 ₽",". Абонентской платы нет, минимального ежемесячного объёма нет, за подключение платить не нужно.",[10,681,682,683,685],{},"Ключевое отличие от SMS — в модели списания. Деньги списываются в момент, когда звонок зафиксирован, то есть за результат. Проверка, по которой звонка не было и которая ушла в ",[498,684,534],{},", не тарифицируется вообще. Вы не платите за попытки, за недоставку и за пользователей, которые передумали на середине формы.",[115,687,689],{"className":688},[118],[120,690,691,704],{},[123,692,693],{},[126,694,695,698,701],{},[129,696,697],{},"Подтверждений в месяц",[129,699,700],{},"Стоимость при 100 % дозвона",[129,702,703],{},"При 80 % дозвона",[138,705,706,717,728],{},[126,707,708,711,714],{},[143,709,710],{},"1 000",[143,712,713],{},"200 ₽",[143,715,716],{},"160 ₽",[126,718,719,722,725],{},[143,720,721],{},"10 000",[143,723,724],{},"2 000 ₽",[143,726,727],{},"1 600 ₽",[126,729,730,733,736],{},[143,731,732],{},"100 000",[143,734,735],{},"20 000 ₽",[143,737,738],{},"16 000 ₽",[10,740,741],{},"Второй столбец — не скидка, а прямое следствие модели: если из десяти тысяч запущенных проверок звонком завершились восемь тысяч, платить вы будете за восемь. В SMS-сценарии заплатить пришлось бы за все десять тысяч отправок.",[10,743,744,745,749,750,45],{},"Проверка не создастся, если на балансе меньше стоимости одного подтверждения — API вернёт ошибку о недостатке средств. Это стоит обработать в коде заранее и завести оповещение о низком балансе. Актуальные цены и условия — на странице ",[106,746,748],{"href":747},"\u002Fpricing","тарифов","; подробнее о том, как вообще выбирать провайдера и на что смотреть кроме цены, — в разборе ",[106,751,753],{"href":752},"\u002Fblog\u002Fservis-podtverzhdeniya-nomera","сервисов подтверждения номера",[14,755,757],{"id":756},"gde-primenyayut-verifikaciyu-nomera-zvonkom","Где применяют верификацию номера звонком",[10,759,760],{},"Сценариев ровно столько же, сколько у SMS-кода, — способ подтверждения меняется, задача остаётся.",[238,762,763,769,777,783,789],{},[50,764,765,768],{},[31,766,767],{},"Регистрация."," Отсечь фейковые аккаунты и получить рабочий контакт. Здесь короткий сценарий даёт больше всего: чем меньше шагов между «ввёл номер» и «зарегистрирован», тем меньше отвалов.",[50,770,771,774,775,45],{},[31,772,773],{},"Вход в аккаунт."," Замена SMS-кода при авторизации, в том числе полностью без пароля. Как это устроено — в материале про ",[106,776,304],{"href":303},[50,778,779,782],{},[31,780,781],{},"Подтверждение операции."," Смена пароля, изменение реквизитов, подтверждение заказа — там, где нужно доказать, что действие совершает владелец аккаунта.",[50,784,785,788],{},[31,786,787],{},"Оформление заказа и доставка."," Проверка контактного номера до того, как заказ уйдёт в сборку, а курьер — по адресу с неверным телефоном.",[50,790,791,794],{},[31,792,793],{},"Объявления и маркетплейсы."," Верификация продавца, борьба с мультиаккаунтами и фейковыми регистрациями.",[10,796,797,798,45],{},"Разбор по отраслям с конкретными задачами — в статье ",[106,799,800],{"href":319},"где нужна верификация телефона",[14,802,804],{"id":803},"kak-podklyuchit","Как подключить",[10,806,807],{},"Интеграция занимает несколько часов и не требует SDK: это два HTTP-запроса к REST API.",[47,809,810,813,816,822],{},[50,811,812],{},"Зарегистрируйтесь и создайте проект — он получит собственный ключ.",[50,814,815],{},"На бэкенде вызовите создание проверки, передав ключ проекта и номер пользователя. Ключ хранится только на сервере: во фронтенде его размещать нельзя.",[50,817,818,819,821],{},"Отдайте выделенный номер во фронтенд и покажите его пользователю ссылкой ",[498,820,510],{}," с таймером на 60 секунд.",[50,823,824,825,827,828,830],{},"Опрашивайте статус проверки, пока он не станет ",[498,826,530],{}," или ",[498,829,534],{},", и обработайте оба исхода.",[10,832,833,834,838],{},"Пошаговое описание запросов, форматов и типичных ошибок интеграции — в материале про ",[106,835,837],{"href":836},"\u002Fblog\u002Fapi-podtverzhdeniya-nomera","API подтверждения номера",". Инструкция с вашим собственным ключом открывается в кабинете на странице проекта сразу после регистрации.",{"title":325,"searchDepth":326,"depth":326,"links":840},[841,842,843,844,845,846,847],{"id":384,"depth":326,"text":385},{"id":484,"depth":326,"text":485},{"id":548,"depth":326,"text":549},{"id":648,"depth":326,"text":649},{"id":671,"depth":326,"text":672},{"id":756,"depth":326,"text":757},{"id":803,"depth":326,"text":804},"Как это работает",{"title":850,"text":851,"label":338,"href":339},"Попробуйте на своём проекте","Регистрация занимает минуту, ключ проекта выдаётся сразу. Тестовую проверку можно запустить с первого же запроса.","Разбираем, как подтвердить номер телефона звонком вместо SMS-кода: схема проверки, отличие от обычного flash call, стоимость и порядок подключения.",[854,857,860,863,866,869],{"q":855,"a":856},"Что будет, если пользователь позвонит с другого номера?","Проверка не подтвердится. Совпадение ищется по паре «выделенный номер + номер\nвызывающего абонента», и звонок с телефона, который не был указан при создании\nпроверки, к ней не привяжется. Через 60 секунд она перейдёт в статус `EXPIRED`,\nи деньги за неё списаны не будут.\n",{"q":858,"a":859},"Звонок платный для пользователя?","Оператор тарифицирует его как обычный вызов на российский номер, по тарифу абонента.\nНо соединение сбрасывается до ответа, а неотвеченные вызовы операторы не тарифицируют —\nна практике подтверждение обходится пользователю бесплатно.\n",{"q":861,"a":862},"Сработает ли проверка, если у вызывающего скрыт номер?","Нет. Определение номера вызывающего абонента — основа всего способа: если номер\nне передаётся, сопоставить звонок с проверкой не с чем. Так бывает при включённом\nантиопределителе и на корпоративных АТС, которые подменяют исходящий номер.\nДля таких пользователей нужен запасной способ подтверждения.\n",{"q":864,"a":865},"Что делать, если звонка так и не было?","Через 60 секунд после создания проверка сама переходит в `EXPIRED` — опрос статуса\nвернёт его вместо `PENDING`. Это штатная ситуация: покажите пользователю кнопку\n«Позвонить ещё раз» и создайте новую проверку. Тарифицируется только состоявшийся\nзвонок, поэтому повторные попытки ничего не стоят.\n",{"q":867,"a":868},"Сколько проверок можно запускать одновременно?","Ограничения на общее число параллельных проверок в проекте нет. Единственное\nтребование — уникальность пары «выделенный номер + номер звонящего» среди\nожидающих. Сервис сам подбирает подходящий номер из пула и распределяет по нему\nнагрузку, так что со стороны интеграции об этом думать не нужно.\n",{"q":870,"a":871},"Что произойдёт, если на балансе закончатся деньги?","Проверка просто не создастся: запрос на выдачу номера вернёт ошибку о недостатке\nсредств. Уже созданные проверки при этом дорабатывают штатно. Обработайте эту\nошибку в коде заранее — иначе форма регистрации молча перестанет работать,\nкогда баланс дойдёт до нуля.\n","Подтверждение номера телефона звонком: как это работает",{},1,[876,877,878],"avtorizaciya-po-zvonku","servis-podtverzhdeniya-nomera","chto-takoe-flash-call",{"title":373,"description":852},"blog\u002Fpodtverzhdenie-nomera-zvonkom","Подтверждение номера звонком — способ проверить телефон без SMS и без одноразового кода.\nСервис выдаёт выделенный номер, пользователь звонит на него со своего телефона, вызов\nсбрасывается, а система по номеру вызывающего абонента понимает, что телефон принадлежит\nименно ему. Вводить ничего не нужно, отвечать на звонок тоже. Проверка живёт 60 секунд\nи стоит 0,20 ₽, причём списание происходит только за состоявшийся звонок.\n","Vs3hHENdsOH5tdu4ypInD_PfVG5qPC2vwutGGv1h_7s",{"id":884,"title":885,"body":886,"category":1260,"cta":1261,"description":1264,"draft":341,"extension":342,"faq":1265,"h1":1278,"meta":1279,"navigation":358,"order":1280,"path":269,"published":361,"related":1281,"seo":1282,"stem":1283,"summary":1284,"updated":361,"__hash__":1285},"blog\u002Fblog\u002Fflash-call-ili-sms.md","Flash Call или SMS — чем заменить SMS-коды подтверждения",{"type":7,"value":887,"toc":1252},[888,891,895,898,924,930,934,939,945,949,1051,1054,1058,1061,1070,1073,1143,1146,1152,1156,1159,1191,1194,1198,1201,1233,1236],[10,889,890],{},"Вопрос «чем заменить SMS-коды» возникает обычно из двух соображений: расходы растут вместе с числом регистраций, а часть пользователей всё равно не получает сообщения. Разбираем, что даёт замена на подтверждение звонком, где реальная экономия и когда SMS всё-таки нужны.",[14,892,894],{"id":893},"skolko-stoit-sms-podtverzhdenie","Сколько стоит SMS-подтверждение",[10,896,897],{},"Затраты на SMS складываются не только из цены сообщения.",[238,899,900,906,912,918],{},[50,901,902,905],{},[31,903,904],{},"Цена за отправку."," Зависит от оператора получателя, объёма и типа трафика. Единой цифры не существует, поэтому ориентироваться на «среднюю цену SMS» из статей бессмысленно — считайте по своему счёту.",[50,907,908,911],{},[31,909,910],{},"Оплата независимо от доставки."," Сообщение, отфильтрованное оператором или не дошедшее из-за роуминга, оплачено так же, как доставленное.",[50,913,914,917],{},[31,915,916],{},"Повторные отправки."," Пользователь жмёт «Отправить снова» — счёт растёт, конверсия чаще всего нет: если сообщение не прошло фильтр, второе тоже не пройдёт.",[50,919,920,923],{},[31,921,922],{},"Стоимость потерянных регистраций."," Самая крупная и самая невидимая статья. Пользователь, не получивший код, просто уходит.",[10,925,926,929],{},[31,927,928],{},"Практическая формула вашей фактической стоимости:"," счёт за SMS за месяц, делённый на число подтверждённых номеров за тот же месяц. Полученное почти всегда заметно больше цены за одно сообщение — на разницу влияет доля недоставок и повторных отправок.",[14,931,933],{"id":932},"skolko-stoit-podtverzhdenie-zvonkom","Сколько стоит подтверждение звонком",[10,935,675,936,938],{},[31,937,678],{},". Абонентской платы нет, минимального месячного объёма нет.",[10,940,941,942,944],{},"Списание происходит в момент, когда звонок зафиксирован. Проверка, по которой звонка не было и которая перешла в статус ",[498,943,534],{},", не тарифицируется. То есть цена за штуку и фактическая стоимость успешного подтверждения здесь совпадают — в отличие от SMS-сценария.",[14,946,948],{"id":947},"sravnenie-po-shesti-parametram","Сравнение по шести параметрам",[115,950,952],{"className":951},[118],[120,953,954,969],{},[123,955,956],{},[126,957,958,961,963,966],{},[129,959,960],{},"Параметр",[129,962,408],{},[129,964,965],{},"Голосовой звонок с кодом",[129,967,968],{},"Обратный звонок",[138,970,971,984,997,1011,1025,1038],{},[126,972,973,976,979,982],{},[143,974,975],{},"Цена за подтверждение",[143,977,978],{},"зависит от оператора и объёма",[143,980,981],{},"обычно выше SMS",[143,983,678],{},[126,985,986,989,992,995],{},[143,987,988],{},"За что списывают",[143,990,991],{},"за отправку",[143,993,994],{},"за совершённый вызов",[143,996,467],{},[126,998,999,1002,1005,1008],{},[143,1000,1001],{},"Зависимость от доставки",[143,1003,1004],{},"высокая: фильтры, роуминг, память",[143,1006,1007],{},"средняя: нужен дозвон",[143,1009,1010],{},"отсутствует: звонит пользователь",[126,1012,1013,1016,1019,1022],{},[143,1014,1015],{},"Время подтверждения",[143,1017,1018],{},"от секунд до минут, непредсказуемо",[143,1020,1021],{},"ограничено длительностью вызова",[143,1023,1024],{},"ограничено 60 секундами",[126,1026,1027,1030,1033,1036],{},[143,1028,1029],{},"Действия пользователя",[143,1031,1032],{},"ждёт, читает, вводит код",[143,1034,1035],{},"принимает, слушает, вводит код",[143,1037,204],{},[126,1039,1040,1043,1046,1048],{},[143,1041,1042],{},"География",[143,1044,1045],{},"практически любая",[143,1047,1045],{},[143,1049,1050],{},"Россия",[10,1052,1053],{},"Последняя строка — главный ограничитель, и его надо учитывать до внедрения, а не после.",[14,1055,1057],{"id":1056},"raschet-ekonomii","Расчёт экономии",[10,1059,1060],{},"Формула для подстановки своих цифр:",[1062,1063,1068],"pre",{"className":1064,"code":1066,"language":1067},[1065],"language-text","Стоимость SMS      = запущенные проверки × цена отправки\nСтоимость звонка   = запущенные проверки × доля дозвона × 0,20 ₽\n","text",[498,1069,1066],{"__ignoreMap":325},[10,1071,1072],{},"Разница между формулами принципиальная: в первой доля успеха отсутствует — платите за все отправки. Во второй она стоит множителем, потому что неудачная проверка бесплатна.",[115,1074,1076],{"className":1075},[118],[120,1077,1078,1094],{},[123,1079,1080],{},[126,1081,1082,1085,1088,1091],{},[129,1083,1084],{},"Проверок в месяц",[129,1086,1087],{},"Звонок при 100 %",[129,1089,1090],{},"Звонок при 80 %",[129,1092,1093],{},"Звонок при 60 %",[138,1095,1096,1107,1118,1129],{},[126,1097,1098,1100,1102,1104],{},[143,1099,710],{},[143,1101,713],{},[143,1103,716],{},[143,1105,1106],{},"120 ₽",[126,1108,1109,1111,1113,1115],{},[143,1110,721],{},[143,1112,724],{},[143,1114,727],{},[143,1116,1117],{},"1 200 ₽",[126,1119,1120,1122,1124,1126],{},[143,1121,732],{},[143,1123,735],{},[143,1125,738],{},[143,1127,1128],{},"12 000 ₽",[126,1130,1131,1134,1137,1140],{},[143,1132,1133],{},"500 000",[143,1135,1136],{},"100 000 ₽",[143,1138,1139],{},"80 000 ₽",[143,1141,1142],{},"60 000 ₽",[10,1144,1145],{},"Чтобы сравнить со своей ситуацией, подставьте в левый столбец число запущенных проверок за прошлый месяц и сопоставьте результат со счётом за SMS за тот же период. Считать нужно именно по запущенным проверкам, а не по подтверждённым: в SMS-сценарии вы платили за все.",[10,1147,1148,1149,45],{},"Второй эффект, который стоит посчитать отдельно, — доля пользователей, не получивших код. Каждый из них не просто не заплатил вам за оплаченную отправку, но и не стал клиентом. Разбор причин недоставки — в материале ",[106,1150,1151],{"href":664},"не приходит код подтверждения",[14,1153,1155],{"id":1154},"kogda-sms-vse-taki-nuzhny","Когда SMS всё-таки нужны",[10,1157,1158],{},"Раздел, без которого текст читался бы рекламой.",[238,1160,1161,1167,1173,1179,1185],{},[50,1162,1163,1166],{},[31,1164,1165],{},"Зарубежные абоненты."," Пул состоит из российских номеров. Если заметная доля аудитории за границей, SMS для неё остаются.",[50,1168,1169,1172],{},[31,1170,1171],{},"Скрытый номер и корпоративные АТС."," Если номер вызывающего не передаётся, сопоставить звонок не с чем.",[50,1174,1175,1178],{},[31,1176,1177],{},"Код нужен в текстовом виде."," Сценарии, где пользователь должен сохранить или переслать подтверждение, — например, код получения заказа в пункте выдачи.",[50,1180,1181,1184],{},[31,1182,1183],{},"Транзакционные уведомления."," Статус заказа, чек, напоминание — это не верификация, и звонком их не заменить.",[50,1186,1187,1190],{},[31,1188,1189],{},"Пользователь без голосовой связи."," Зарубежная SIM с одним интернетом, звонки недоступны.",[10,1192,1193],{},"Практический вывод: SMS не исчезают из продукта, они перестают быть единственным способом подтверждения.",[14,1195,1197],{"id":1196},"kak-pereyti-postepenno","Как перейти постепенно",[10,1199,1200],{},"Одномоментная замена не нужна и рискованна. Рабочая последовательность:",[47,1202,1203,1209,1215,1221,1227],{},[50,1204,1205,1208],{},[31,1206,1207],{},"Подключите звонок параллельно."," Интеграция — два запроса, существующий SMS-сценарий не трогается.",[50,1210,1211,1214],{},[31,1212,1213],{},"Включите звонок части аудитории."," Например, десяти процентам новых регистраций, остальным оставьте прежний путь.",[50,1216,1217,1220],{},[31,1218,1219],{},"Сравните две воронки"," от «ввёл номер» до «подтвердил». Это единственный способ узнать эффект на своих данных, а не на чужих обещаниях.",[50,1222,1223,1226],{},[31,1224,1225],{},"Сделайте звонок основным, SMS — запасным."," Кнопка «Подтвердить другим способом» рядом с таймером снимает и вопрос зарубежных номеров, и главное возражение «а если не сработает».",[50,1228,1229,1232],{},[31,1230,1231],{},"Следите за долей ухода на запасной способ."," Она покажет реальный размер сегмента, для которого звонок не подходит.",[10,1234,1235],{},"Такая схема заодно решает задачу отказоустойчивости: два независимых канала подтверждения означают, что сбой у одного провайдера не останавливает регистрации.",[10,1237,1238,1239,1242,1243,1246,1247,1249,1250,45],{},"Как устроен сам механизм — в статье про ",[106,1240,1241],{"href":108},"подтверждение номера звонком",". Чем обратный flash call отличается от обычного — в материале ",[106,1244,1245],{"href":360},"что такое flash call",". Критерии выбора провайдера и расчёт стоимости — в разборе ",[106,1248,753],{"href":752},". Актуальные цены — на странице ",[106,1251,748],{"href":747},{"title":325,"searchDepth":326,"depth":326,"links":1253},[1254,1255,1256,1257,1258,1259],{"id":893,"depth":326,"text":894},{"id":932,"depth":326,"text":933},{"id":947,"depth":326,"text":948},{"id":1056,"depth":326,"text":1057},{"id":1154,"depth":326,"text":1155},{"id":1196,"depth":326,"text":1197},"Выбор решения",{"title":1262,"text":1263,"label":338,"href":339},"Посчитайте на своих объёмах","0,20 ₽ за состоявшееся подтверждение, без абонентской платы и минимального объёма.","Сравнение SMS-кодов и подтверждения звонком: стоимость, доставляемость, время, действия пользователя. Считаем экономию при замене SMS-авторизации и когда SMS нужны.",[1266,1269,1272,1275],{"q":1267,"a":1268},"Обязательно отказываться от SMS полностью?","Нет, и в большинстве случаев не нужно. Рабочая схема — звонок основным\nспособом, SMS запасным для тех, у кого он не прошёл. Так закрываются\nи зарубежные абоненты, и скрытые номера, и риск сбоя у одного провайдера.\n",{"q":1270,"a":1271},"Как посчитать выгоду, не внедряя?","Возьмите счёт за SMS за прошлый месяц и число подтверждённых номеров\nза тот же период. Первое, делённое на второе, — ваша фактическая стоимость\nодного успешного подтверждения. Её и сравнивайте с 0,20 ₽.\n",{"q":1273,"a":1274},"Что делать, если часть пользователей не может позвонить?","Оставить им прежний способ. Доля таких пользователей обычно невелика,\nи запасной вариант в интерфейсе решает вопрос полностью — переход\nне обязан быть одномоментным и стопроцентным.\n",{"q":1276,"a":1277},"Насколько сложно перейти?","Интеграция — два HTTP-запроса и три статуса, обычно день работы.\nДольше идёт не техническая часть, а переделка интерфейса и A\u002FB-сравнение\nдвух воронок.\n","Flash Call или SMS: чем заменить SMS-коды и сколько это экономит",{},13,[877,363,878],{"title":885,"description":1264},"blog\u002Fflash-call-ili-sms","Короткий вывод до аргументации: подтверждение звонком дешевле SMS и не зависит\nот доставляемости, но работает только для российских номеров и требует, чтобы номер\nвызывающего абонента определялся. Главная экономия не в цене за штуку, а в модели\nсписания: за SMS платят при отправке независимо от доставки, за звонок — только когда\nон состоялся. Ниже формула, по которой можно подставить свои цифры.\n","Gracrg0iFIfyW4kz0m05TI0qd-Ru_dSsatIsySzzCRQ",{"id":1287,"title":1288,"body":1289,"category":1557,"cta":1558,"description":1561,"draft":341,"extension":342,"faq":1562,"h1":1575,"meta":1576,"navigation":358,"order":1577,"path":274,"published":361,"related":1578,"seo":1580,"stem":1581,"summary":1582,"updated":361,"__hash__":1583},"blog\u002Fblog\u002Fpodtverzhdenie-nomera-v-prilozhenii.md","Подтверждение номера в приложении — как сделать без SMS",{"type":7,"value":1290,"toc":1550},[1291,1294,1298,1305,1308,1311,1314,1318,1350,1353,1357,1360,1373,1382,1390,1404,1408,1481,1485,1488,1544],[10,1292,1293],{},"На мобильных сценарий подтверждения звонком раскрывается лучше всего: телефон, с которого нужно позвонить, — это то же устройство, где открыто приложение. Пользователю не приходится ничего переносить с экрана на экран.",[14,1295,1297],{"id":1296},"chem-podtverzhdenie-v-prilozhenii-otlichaetsya-ot-sayta","Чем подтверждение в приложении отличается от сайта",[10,1299,1300,1301,1304],{},"Главное отличие одно, и оно решающее: ",[31,1302,1303],{},"приложение может открыть набор номера в одно касание",". Пользователь нажимает кнопку — открывается системный диалер с уже подставленным номером, остаётся нажать вызов.",[10,1306,1307],{},"На сайте с десктопа так не получится: номер придётся переносить на телефон руками, и это худшая точка сценария. В приложении её просто нет.",[10,1309,1310],{},"Второе отличие — контроль над экраном. Приложение точно знает, когда пользователь вернулся из диалера, и может проверить статус именно в этот момент, а не по таймеру. Переход к следующему шагу получается мгновенным.",[10,1312,1313],{},"Третье — обратная сторона: приложение уходит на задний план во время вызова, и это надо учитывать в логике, а не считать сбоем.",[14,1315,1317],{"id":1316},"scenariy-so-zvonkom-chto-vidit-polzovatel","Сценарий со звонком: что видит пользователь",[47,1319,1320,1326,1332,1338,1344],{},[50,1321,1322,1325],{},[31,1323,1324],{},"Экран ввода номера."," Поле в международном формате, подсказка про код страны, кнопка «Продолжить».",[50,1327,1328,1331],{},[31,1329,1330],{},"Экран подтверждения."," Крупная кнопка «Позвонить», под ней — номер текстом на случай, если диалер не откроется. Пояснение: трубку брать не нужно, вызов оборвётся сам. Таймер на 60 секунд.",[50,1333,1334,1337],{},[31,1335,1336],{},"Системный диалер."," Открывается с подставленным номером. Пользователь нажимает вызов, соединение сбрасывается через мгновение.",[50,1339,1340,1343],{},[31,1341,1342],{},"Возврат в приложение."," Статус уже подтверждён — экран меняется сам, нажимать ничего не нужно.",[50,1345,1346,1349],{},[31,1347,1348],{},"Если не сложилось."," По истечении таймера — кнопка «Позвонить ещё раз» и ссылка на запасной способ.",[10,1351,1352],{},"Формулировки на втором экране важнее, чем кажется. «Позвоните на этот номер, трубку брать не нужно» пользователь понимает сразу. «Пройдите верификацию» — нет.",[14,1354,1356],{"id":1355},"realizaciya-na-ios-i-android","Реализация на iOS и Android",[10,1358,1359],{},"Логика одинаковая, различается только открытие диалера.",[10,1361,1362,1365,1366,1368,1369,45],{},[31,1363,1364],{},"Общая часть."," Бэкенд создаёт проверку и получает выделенный номер; приложение показывает его и опрашивает статус. Сам механизм проверки разобран в статье про ",[106,1367,109],{"href":108}," — он одинаков для всех платформ. Ключ проекта в приложении хранить нельзя: его место на сервере, а мобильный клиент ходит в ваш собственный API. Веб-версия того же сценария описана в материале про ",[106,1370,1372],{"href":1371},"\u002Fblog\u002Fpodtverzhdenie-nomera-na-sayte","подтверждение номера на сайте",[10,1374,1375,1378,1379,1381],{},[31,1376,1377],{},"Открытие набора."," На iOS — системная ссылка вида ",[498,1380,510],{},", на Android — намерение набора номера. В обоих случаях открывается штатный диалер с подставленным номером; сам вызов инициирует пользователь. Автоматически совершать звонок за него не нужно и не следует: это требует отдельного разрешения и выглядит подозрительно.",[10,1383,1384,1387,1388,45],{},[31,1385,1386],{},"Разрешения не нужны."," Здесь ключевое отличие от обычного flash call, при котором приложение считывает номер входящего вызова из журнала. Такой доступ ограничен политиками магазинов: в Google Play выдача разрешения на журнал вызовов требует обоснования, а в iOS публичного API для чтения журнала нет вовсе. При обратном сценарии читать нечего — звонок видит сервис на своей стороне. Разбор разницы — в статье ",[106,1389,1245],{"href":360},[10,1391,1392,1395,1396,1398,1399,1401,1402,45],{},[31,1393,1394],{},"Опрос статуса."," Периодический запрос с разумным интервалом плюс обязательная внеочередная проверка при возврате приложения на передний план. Опрос прекращается по ",[498,1397,530],{},", по ",[498,1400,534],{}," или по истечении таймера. Детали запросов — в материале про ",[106,1403,837],{"href":836},[14,1405,1407],{"id":1406},"obrabotka-granichnyh-sluchaev","Обработка граничных случаев",[115,1409,1411],{"className":1410},[118],[120,1412,1413,1423],{},[123,1414,1415],{},[126,1416,1417,1420],{},[129,1418,1419],{},"Ситуация",[129,1421,1422],{},"Что делать",[138,1424,1425,1433,1441,1449,1457,1465,1473],{},[126,1426,1427,1430],{},[143,1428,1429],{},"Приложение свёрнуто во время вызова",[143,1431,1432],{},"проверять статус при возврате на передний план, не только по таймеру",[126,1434,1435,1438],{},[143,1436,1437],{},"Пользователь отменил вызов в диалере",[143,1439,1440],{},"оставить экран активным, таймер продолжает идти — он может позвонить снова",[126,1442,1443,1446],{},[143,1444,1445],{},"Звонок с другого номера",[143,1447,1448],{},"проверка не подтвердится; в подсказке заранее написать, что звонить нужно с указанного номера",[126,1450,1451,1454],{},[143,1452,1453],{},"Нет сигнала сотовой сети",[143,1455,1456],{},"предложить запасной способ подтверждения",[126,1458,1459,1462],{},[143,1460,1461],{},"Диалер не открылся",[143,1463,1464],{},"номер показан текстом, дать кнопку копирования",[126,1466,1467,1470],{},[143,1468,1469],{},"Истекли 60 секунд",[143,1471,1472],{},"показать «Позвонить ещё раз», создать новую проверку",[126,1474,1475,1478],{},[143,1476,1477],{},"Приложение закрыто до подтверждения",[143,1479,1480],{},"при следующем запуске начинать сценарий заново",[14,1482,1484],{"id":1483},"chto-proverit-pered-otpravkoy-v-magazin","Что проверить перед отправкой в магазин",[10,1486,1487],{},"Короткий чек-лист по местам, где мобильная реализация обычно ломается.",[238,1489,1490,1496,1502,1508,1520,1526,1532,1538],{},[50,1491,1492,1495],{},[31,1493,1494],{},"Диалер открывается на реальном устройстве",", а не только в эмуляторе. На части прошивок поведение отличается.",[50,1497,1498,1501],{},[31,1499,1500],{},"Номер показан текстом рядом с кнопкой."," Если системный набор не открылся, пользователю нужен запасной путь — скопировать и набрать вручную.",[50,1503,1504,1507],{},[31,1505,1506],{},"Статус проверяется при возврате на передний план."," Без этого пользователь возвращается на экран ожидания, который уже неактуален.",[50,1509,1510,1513,1514,1516,1517,1519],{},[31,1511,1512],{},"Опрос останавливается."," Три условия: ",[498,1515,530],{},", ",[498,1518,534],{},", истёкший таймер. Иначе запросы продолжатся в фоне и посадят батарею.",[50,1521,1522,1525],{},[31,1523,1524],{},"Ключ проекта не лежит в приложении."," Даже в обфусцированном виде: мобильный клиент разбирается, а ключ тратит ваш баланс. Приложение ходит в ваш собственный API.",[50,1527,1528,1531],{},[31,1529,1530],{},"Экран переживает поворот и сворачивание."," Идентификатор проверки и остаток таймера должны сохраняться.",[50,1533,1534,1537],{},[31,1535,1536],{},"Есть запасной способ подтверждения"," для тех, у кого номер не определяется.",[50,1539,1540,1543],{},[31,1541,1542],{},"Тексты понятны без терминов."," «Позвоните на этот номер, трубку брать не нужно» вместо «пройдите верификацию».",[10,1545,1546,1547,1549],{},"Отдельно про повторные попытки: они ничего не стоят. Тарифицируется только состоявшийся звонок, проверка в статусе ",[498,1548,534],{}," не списывает баланс — поэтому предлагать позвонить ещё раз можно без оглядки на расходы.",{"title":325,"searchDepth":326,"depth":326,"links":1551},[1552,1553,1554,1555,1556],{"id":1296,"depth":326,"text":1297},{"id":1316,"depth":326,"text":1317},{"id":1355,"depth":326,"text":1356},{"id":1406,"depth":326,"text":1407},{"id":1483,"depth":326,"text":1484},"Реализация",{"title":1559,"text":1560,"label":338,"href":339},"Встройте подтверждение в своё приложение","Два HTTP-запроса, никаких SDK и разрешений. Ключ проекта выдаётся сразу после регистрации.","Как реализовать подтверждение номера в мобильном приложении: сценарий со звонком вместо SMS, работа без разрешений, экраны, обработка граничных случаев.",[1563,1566,1569,1572],{"q":1564,"a":1565},"Нужны ли разрешения на чтение SMS или журнала вызовов?","Нет, и это ключевое отличие сценария. Приложение только открывает системный\nдиалер и опрашивает статус проверки по сети. Читать сообщения и журнал\nвызовов не требуется, поэтому и запрашивать соответствующие разрешения\nне нужно.\n",{"q":1567,"a":1568},"Пройдёт ли такое приложение модерацию в магазинах?","С этой стороны придираться не к чему: чувствительные разрешения не запрашиваются,\nфоновой активности нет, всё общение с сервисом идёт обычными HTTP-запросами.\nИменно из-за разрешений обычный flash call часто и не проходит.\n",{"q":1570,"a":1571},"Что если пользователь свернул приложение во время звонка?","Так и будет — набор номера сворачивает приложение по определению. Поэтому\nстатус нужно проверять и при возврате на передний план, а не только по таймеру:\nк этому моменту проверка обычно уже подтверждена.\n",{"q":1573,"a":1574},"Нужен ли отдельный код для iOS и Android?","Отличается только способ открыть диалер — системная ссылка на iOS и намерение\nнабора на Android. Вся логика проверки одинаковая: создать, показать номер,\nопросить статус.\n","Подтверждение номера телефона в мобильном приложении",{},8,[363,1579,878],"podtverzhdenie-nomera-na-sayte",{"title":1288,"description":1561},"blog\u002Fpodtverzhdenie-nomera-v-prilozhenii","В мобильном приложении подтверждение номера звонком удобнее, чем где-либо ещё: набор\nоткрывается одним касанием через системный диалер, пользователю не нужно ничего\nпереписывать и вводить. Главное преимущество перед обычным flash call — приложению\nне требуются разрешения на чтение SMS и журнала вызовов, а их выдачу ограничивают\nи Google Play, и App Store. Проверка живёт 60 секунд, стоит 0,20 ₽ за состоявшийся звонок.\n","SzYBtnQ2PPpUxp6ImUb7w9yWpfYtOF4vzcvV-g9wfsk",{"data":1585,"body":1586},{},{"type":1587,"children":1588},"root",[1589],{"type":1590,"tag":10,"props":1591,"children":1592},"element",{},[1593],{"type":1067,"value":1594},"Flash call — подтверждение номера телефона сбрасываемым звонком вместо SMS-кода.\nТермин описывает два зеркальных сценария, и их постоянно путают. При обычном flash call\nзвонит сервис, а приложение считывает номер входящего вызова — для этого ему нужен доступ\nк журналу вызовов. При обратном (reverse) flash call звонит сам пользователь, и никаких\nразрешений не требуется, поэтому сценарий работает и в браузере, и на iOS.",{"data":1596,"body":1597},{},{"type":1587,"children":1598},[1599],{"type":1590,"tag":10,"props":1600,"children":1601},{},[1602],{"type":1067,"value":1603},"Все написания встречаются и означают одно и то же. В англоязычной документации\nчаще «flash call» в два слова, в русских текстах — «флеш колл», «флэш колл»\nи слитное «флешколл». Устоявшейся нормы для русского написания нет.",{"data":1605,"body":1606},{},{"type":1587,"children":1607},[1608],{"type":1590,"tag":10,"props":1609,"children":1610},{},[1611],{"type":1067,"value":1612},"Да, «звонок-сброс» и «сбрасываемый вызов» — русские описательные названия\nтого же механизма. Общее у всех вариантов одно: соединение не устанавливается,\nразговор не происходит, а информацию несёт сам факт вызова и номер.",{"data":1614,"body":1615},{},{"type":1587,"children":1616},[1617],{"type":1590,"tag":10,"props":1618,"children":1619},{},[1620],{"type":1067,"value":1621},"Потому что он требует прочитать номер входящего вызова из журнала, а веб-страница\nк журналу вызовов доступа не имеет и иметь не может. Это ограничение самой\nплатформы, а не конкретной реализации.",{"data":1623,"body":1624},{},{"type":1587,"children":1625},[1626],{"type":1590,"tag":10,"props":1627,"children":1628},{},[1629],{"type":1067,"value":1630},"Не по природе механизма — обе схемы это один короткий вызов. Разница\nв модели тарификации у конкретного провайдера: важнее не тип flash call,\nа списывают ли деньги за попытку или за результат.",1787687891984]