- Types of mobile payments - In-app vs. payment gateway, Apple / Google Pay, Stripe / Braintree
- What payments to use to avoid getting blocked or rejected when publishing the app
- How Google and Apple Pay work
3. Types of Payments
03
In‑App Payment Gateway
For selling digital content. For selling physical goods,
services, charity and
peer-to-peer transactions
4. In-App Payments
04
● They’re built into Android and iOS on a system level and
let users manage subscriptions and payment methods
within the OS.
● They must be used for selling digital content.
● Apple and Google charge a 15-30% fee.
● Apps on app stores are marked as ‘In-App Purchases’ and
indicate the range of prices.
5. Classification of In-App Payments
05
Apple:
1. Consumable. For repeated
purchases.
2. Non‑Consumable. For a one-time
purchase by one user.
3. Auto‑Renewable Subscriptions.
For standard subscriptions.
4. Non‑Renewing Subscriptions.
Subscriptions for a specific period
with manual renewal.
Google:
1. One-Time Products. All one-time
payments (there are consumable
& non‑consumable.)
2. Subscriptions. Auto renewable
subscriptions.
6. Commission for In-App Purchase
06
● Google charges a 30% fee for one-time purchases and subscriptions. After a
year of a continuous subscription the fee decreases to 15%.
● Apple has the same fee as Google to date. For subscriptions, the accumulated
months do not expire for 90 days.
From January 1st 2021, Apple starts the App Store Small Business Program.
Developers whose total earnings from all App Store apps are less than $1M for the
previous calendar year will be able to apply for a reduction of all In-App fees up to 15%
(including paid apps).
7. In-App Payments in
Flutter
07
The official plugin from the Flutter team
(currently in beta).
Each platform requires individual in-app
adjustments in App Store Connect and
Google Play Console.
8. Testing In-App Payments
08
For Android, you need to add a Google account to the
License Testing list. Once done, you can check it on a device
using a test payment method.
For iOS, the sandbox account is created. You’ll need to log in
when making a purchase. All payments in the external
TestFlight builds are free yet these builds require going
through a review.
9. Payment Gateway Transactions
09
● Must be used for selling physical goods, services, and charity.
● Payments go through third-party providers (Stripe, Braintree,
and others).
● Use an SDK or an API of payment gateway providers for
integration.
● Payments are subject to an intermediary commission that's
significantly less than in In-App payments (0.5–5% vs. 15–30%).
● Apps should let users manage their subscriptions and payment
methods.
10. Payment Gateway Payments in Flutter
10
● The only official SDK is from Square (native SDK wrapper)
● Many unofficial plugins from third-party developers
11. Payment Gateway Testing
11
Providers usually let developers use a
sandbox mode for testing. It's the mode
where transactions happen without
charging money.
Besides, there's a set of test cards for
checking various possible events during
the transaction: successful transaction,
insufficient funds, and others.
12. 3D Secure Payments
12
It's an additional security layer when trying to charge funds
from a user's card.
This verification usually happens in a built-in browser and
requires entering an additional code (from SMS or push
notification) to verify the transaction.
Payment gateway providers like Stripe may require the
support for 3D Secure. Sometimes you know that it's
necessary beforehand. Such payments are subject to
additional commission.
13. In-app vs. Gateway: What to Choose?
13
Q: Is it possible to make this purchase without your application?
If the answer to the question above is “no”, then it fits the definition
of “digital content” and you should use In-App payments.
There may be exceptions, but the answer to this question will help
you decide in most cases.
14. Examples
14
1. Buying a filter for photos. You should use the In-App
purchase since it only exists in the context of your app.
2. Ordering a water delivery. It’s a physical purchase that can
be done without your app. Here you should use the Payment
Gateway.
15. 15
In-App Characteristics:
● Testing purchases with the help of
sandbox accounts
● May need a mechanism of restoring
purchased products
● High fees
Payment Gateway Characteristics:
● Creating a UI for entering and
managing payment information
● Building Flutter plugins using
providers’ native SDKs
● Unwillingness of users to enter
credit card data (partially resolved
with Apple Pay and Google Pay)
16. Is There a Way to Bypass In-App Payments?
16
If the app’s content falls under the definition of “digital”, you can’t bypass
In-App payments. Any attempts can lead to sanctions from app stores up to
getting your developer account blocked.
You can offer a payment on the website as an alternative, but NOT in the
app. (For example, you can use an email newsletter.)
Any mentions of bypassing In-App payments may result in the app being
blocked.
17. Consumption-Only Apps
17
Apps that give access to content bought somewhere
else are feasible.
Example: The Google Play Books app for iOS. It lets
users read previously purchased books, but doesn’t
allow for buying new ones.
18. Apple Pay and Google Pay
18
They allow to speed up the buying process
with fast access to payment methods.
19. Integrating Apple Pay With a Provider (Stripe)
19
In the flow with card tokenization, you only
receive a token from Apple Pay. The transaction
itself is carried out by the app’s backend.
Apple Pay certificate will allow you to link
Apple Merchant to Stripe account for
transactions.
20. Apple Pay Guidelines
20
● The button must comply with guidelines and you
should only use official resources (image and
inscription).
● The button can be used in different modes (dark
and light), have rounded edges, and do not merge
with the background.
21. Review in the App Store
21
● Builds can be created immediately in the live mediator mode.
● In the build's description, you should describe where Apple
Pay is used and why.
22. Integrating Google Pay With a Provider
22
● Providers must be supported as a
gateway for Google Pay.
● Providers’ parameters are passed to the
Google Pay SDK. This way, you can check
the binding of the app to the provider’s
account.
23. Google Pay Guidelines
23
● The button must comply with guidelines and only
official resources must be used (image and
inscription).
● Google offers using their button variations with and
without inscriptions in three styles: black, white, and
white with an outline.
● The variation of a custom button with rounded edges
and the logo from guidelines is also suitable.
24. Google Pay Integration Review
24
1) Upload the build to the Play Console with Google Pay
test mode in closed alpha and wait until the build is
processed.
2) Go to the Business console and log in using the
Google account with access to the app in the console.
(It’s preferable to use customer’s account.) Then fill in
all necessary information about the business.
3) Find the app and hit “submit for review”. You’ll be
asked to add five screenshots of the app showing the
purchase workflow with Google Pay.
25. 25
After that, you should wait until the integration is reviewed.
You can get an email telling you about some problems, but the status will
remain "in review."
In that case, you should fix the remarks, upload the new build to the alpha,
and write to the support about your intention to re-submit the integration
for review. After a while, it’ll appear again.
26. 26
Without reviewing the integration, Google Pay won’t make payments
displaying the following message: “This merchant is not enabled for
Google Pay”.
It’s important to pass the integration review using your test build. After
that, you can upload a new build with the Google Pay release mode and
send it for review on Google Play.
27. Testing Apple Pay/Google Pay
27
Apple Pay:
You should use the provider’s test
mode and real bank cards. Funds
won’t be charged.
iOS simulators allows to use test
cards of various payment networks.
Google Pay:
You should use the provider’s test mode
and the test mode of Google Pay. In this
mode, Google Pay sends fake data of the
real card to the provider.
Funds won’t be charged.
29. Stripe Products:
29
● Payments. Acceptance and processing of one-time payments.
● Billing. Creation and management of subscriptions.
● Connect. Creation of marketplaces.
There’s a support for 3D Secure payments.
30. Stripe Connect
30
A tool for creating platforms and marketplaces where
payments can occur between users.
Users link their Stripe account to the app to be able to earn
money. The app charges commission from each transaction.
Example of use: a platform for finding trainers, a marketplace
selling used items.
31. Stripe Can Be Used Via:
31
1. REST API
2. Native Android/iOS SDKs
3. JavaScript SDK
4. CLI SDK
32. Stripe Fees
32
Fees may differ depending on the country selected in the account. Here are the
fees for the US:
● Payments. 2.9% + $0.30 per transaction, +1% for international card, +1% if
currency conversion is required.
● Subscriptions are charged 0.5%.
● Stripe Connect. Has a free standard plan. Other plans bring more
opportunities, but charge additional $2 per active user per month and 0.25%
+ $0.25 per transaction.
● 3D Secure may be subject to additional fees in custom plans.
33. When You Can’t Use Stripe
33
● Financial and professional services: investments, virtual
currencies, lending, etc.
● Intellectual property infringement, regulated or illegal
products and services: gambling, sale of controlled
substances, services for 18+, etc.
● Unfair or deceptive actions: get-rich-quick schemes,
blackmail, reselling services.
● Doubtful high-risk businesses: financial pyramids, boosting
subscribers on social networks, etc.
https://stripe.com/restricted-businesses
35. Braintree Products:
35
● Braintree Direct. Online purchases and subscriptions.
● Braintree Marketplace. A Stripe Connect alternative that lets
connect other Braintree merchants to your service or platform.
36. Braintree Can Be Used Via:
36
1. GraphQL API
2. Native Android/iOS SDKs
3. Drop-in UI SDK
4. JavaScript SDK
38. Drop-In UI
38
● Based on standard native SDKs (Android, iOS, JS)
● Supports regular cards, Paypal, Venmo, Apple/Google Pay
● Provides a ready-made UI for quick payments integration with
customization capabilities
● Supports 3D Secure payments
39. Braintree Fees
39
Commission depends on the country. Here are the fees for
the US:
2.9% + $0.30 per transaction for payments and subscriptions
3D Secure payments are subject to additional fees per each
transaction. There are no publicly available prices.
40. When You Can’t Use Braintree
40
https://www.braintreepayments.com/legal/acceptable-use-policy
● Activities forbidden by law or policies of card issuers (Visa, Mastercard, and others)
● Activities that may harm the Braintree’s reputation
● High-risk activities with potentially high fines
● Specific prohibited activities: flight tickets, betting, auctions, cashing, gambling,
subscriptions lasting more than a year, and some others