Apple разрешила направлять пользователей из РФ на оплату цифровых покупок в приложении на внешнем сайте, минуя App Store Payments. Но чтобы вы могли это делать, нужно подать заявку, получить разрешение и обновить приложения.
Но можно использовать внешние платежи для РФ, а для других регионов - классические.
В статье рассматривается только External Purchase Link. Но есть еще и External Purchases (без Link), где внешняя покупка осуществляется в интерфейсе приложения. Например, карту предлагается ввести на одном из экранов.
Заявка
Заявка это что-то вроде анкеты, практически все поля заполняются автоматически. Подавать заявку по этой ссылке. У вас должен быть аккаунт компании, аккаунт физичего лица не подойдет. Обязательно без Small Business Program.
В заявке Apple просит подписанное платное соглашение, но для новых аккаунтов в РФ его не подписать. Если у вас оно подписано, просто следуйте инструкции.
Если платного соглашения нет, то попробуйте подать заявку без него — Apple проверять не будет. Если же заявку не открывается, вам нужно связаться с Apple и сказать что вы хотите активировать External Purchase Link. С недавнего времени Apple вручуню отрабатывает заявки для таких аккаунтов, писал про это в канале.
Дальше введите название приложения (локализация не важна), Bundle ID и описание. Здесь мы написали коротко: приложение доступно только для iOS, внутри есть бесплатный и платный функционал.
Следующий шаг — указать ваш эквайринг:
Сейчас работают эти эквайринги:
- Интеза
- Солид Банк
- Москоммерцбанк
- Фора Банк
- Дело Банк
Точно не работают эти:
- Райффайзенбанк (не подключают новых клиентов)
- ЮниКредит (не подключают новых клиентов)
- ЮКасса (под санкциями)
- Яндекс Банк (под санкциями)
- Ситибанк
- ОТП Банк
- Ренессанс Банк
- Азиатско-Тихоокеанский банк
- Кредит Европа Банк
- ББР Банк
- БКС Банк
- Робокасса и все другие агрегаторы
Если у вас есть дополнительная информация про банки и эквайринги, напишите мне, я обновлю список.
Теперь заполняем информация о веб-сайте, здесь нужно указать страницу оплаты (куда будете направлять пользователей) и страницу поддержки по вопросам платежей.
Эти URL вы будете добавлять в Info.plist. Фактически сайт открывать будете не вы, а системное окно. Без параметров тяжелее определить какой именно пользователь оплатил. Вам нужно будет или его авторизировать перед оплатой, или после оплаты попросить ввести почту.
Требования к сайту
На сайте нужно указать:
- Оплачивать безопасно: используется шифрование платежных систем VISA International, MasterCard Worldwide, МИР
- Контакты технической поддержки по обработке платежей
- Приложение yourapp поддерживает оплату по внешней ссылке
- Ваша компания несёт ответственность за возврат платежей
В качестве примера, можете взглянуть на нашу страницу.
Последний шаг — заполнить информацию о компании, заполняется руководителем:
Проверка заявки
Нашу заявку отклонили через 7 дней, потому что эквайринг ЮКасса в этот момент находился под санкциями. Мы сменили эквайринг на Райффайзен, заполнили новую заявку. Но не смогли её отправить — наша старая заявка висела в статусе рассмотрения.
В течение месяца мы писали на eurodev@apple.com, чтобы аннулировать первую заявку. Она блокировала подачу новой заявки. Так мы потеряли время.
Я отправил вторую заявку. Через 7 дней увидел в Apple Developer что мне доступен Additional Capabilities для бандла приложения.
Уведомлений на почту не приходило, так что регулярно проверяйте Developer, Certifies, Identifiers & Profiles.
Внутри Additional Capabilities выбираете ExternalPurchaseLink и применяете изменения. Теперь нужно интегрировать эту capabilty в приложение.
Настраиваем приложение
В списке Capability появится новая StoreKit External Purchase Link Entitlement (RU). Добавляете к приложению:
В Info.plist добавляем словарь. В словаре указываем ссылку на оплату на сайте, для каждой страны своя ссылка:
<key>SKExternalPurchaseLink</key>
<dict>
<key>ru</key>
<string>https://yourapp.com/price</string>
</dict>
Аббревиатура страны по стандарту ISO.
Сайт внешних покупок нужно открывать не как ссылку, а вызывать try await ExternalPurchaseLink.open() из StoreKit. Пользователю покажут системный дисклеймер, что “полномочия Apple всё”, и если что-то пойдёт не так, разбираться с разработчиком придётся самостоятельно.
Проверка приложения
Когда отправляете на проверку, прикрепите видео, где видно процесс авторизации, окно со встроенными покупками и переход на сайт. Обязательно показать что URL совпадает с URL в заявке.
Видео можно залить на хостинг, и в комментарии к ревью указать ссылку. Комментарий для ревьюера не пропадает между версиями, так что сделать это придется один раз.
Мы отправили билд на проверку, но получили реджект. Правила для UI к этому моменту обновили. Выяснилось, что нельзя показывать тарифы в самом приложении, только кнопку на сайт для платежа.
Оформили в точности как в примере для американского референса для аналогичной capability, повторили даже иконку в кнопке. Символа иконки нет в SFSymbols, поэтому ниже в статье есть ссылка на картинку в векторе.
Мы обновили приложение и прошли в App Store:
На странице приложения в App Store появилась вот такая метка. Мне больше понравился бы жёлтый восклицательный знак, но что поделать.
Комиссия и отчёты
Компания должна регулярно отправлять 2 отчета: сводный и подробный.
Сводный информирует об общем кол-ве продаж подписок и общей полученной девелопером сумме с продаж, за вычетом региональных налогов.
В подробном требуется отчитаться о каждой оплаченной подписке с указанием SKU транзакции из чека на оплату.
Для отправки отчетов предоставляется 15 дней. Мы уже отправили в Apple Distribution International отчеты за финансовый период 31.12.23 - 03.02.24. Если бы мы не отправили их, то сотрудники Apple связались бы с нами 18.02.24, о чем написали бы нам на почту.
Каждый месяц мы отправляем отчеты по форме Apple о покупках. На основе отчетов в личном кабинете появляются счета за комиссию, 27%.
Комиссию оплачиваете картой зарубежного банка или через мобильного оператора.
Ссылки по теме
-
developer.apple.com
Официальная Инструкция для RU
Официальная инструкция и запрос StoreKit Entitlement. Ссылка открывается только если аккаунт владельца с регионом РФ
-
developer.apple.com
Инструкция для US
Не для RU региона, но внутри полезные скриншоты.
-
developer.apple.com
Скачать иконку
Оригинальная иконка для кнопки на оплату на сайте.
-
vc.ru
Статья "Первыми в App Store внедрили оплату подписки на расчётный счет ООО в РФ"
Плюсы и минусы внешних покупок по закону