Android and iOS billing for multi-platform saas - google-play

Just wondering if someone can clear this up for me as its kind of a grey area and not sure what to do.
I have a website that is split into frontend and api and has a subscription service provided by stripe on the api. I am now making apps in ionic for both apple and google stores but Im unsure of how the payments will work on the platforms, ideally i would like to just stick to using stripe but Ive been reading about both stores and this is where I need guidance.
From what I have read it seems to be that I have to use google play billing and apples alternative. Do I have to use these for the apps going into their respective stores or can I continue to use stripe within the apps? As i see it its a multi platform saas. So why cant I just send the card info to my api for charging?(I know theres alot of security involved and its not as trivial as I make it out to be)
Ive been reading conflicting statements from multiple sites and Im just not sure which is correct and the docs on google play billing make no reference to this. Its a multiplatform service so can I just send on the card details to my api
But what I have found is that apple have this
3.1.3(b) Multiplatform Services: Apps that operate across multiple platforms may allow users to access content, subscriptions, or features they have acquired elsewhere, including consumable items in multi-platform games, provided those items are also available as in-app purchases within the app. You must not directly or indirectly target iOS users to use a purchasing method other than in-app purchase, and your general communications about other purchasing methods must not discourage use of in-app purchase.
Which to me states that I have to use Apple Pay and make no reference to my other payment methods for fear of being refused from the store.

I can't comment for Apple. For Google Play the best place to answer this sort of question is the Developer policy center. In the Monetization and Ads section it says
Developers offering products within another category of app downloaded on Google Play must use Google Play In-app Billing as the method of payment, except for the following cases:
Payment is solely for physical products
Payment is for digital content that may be consumed outside of the app itself (e.g. songs that can be played on other music players).
You should read all of the linked page and decide what category the stuff you are selling falls into.

Related

How to work with Xamarin.Forms cross-platform subscription when using in-app billing?

I am developing Xamarin.Forms application which will be used for Android and iOS. It will have access to full functionality with a paid subscription.
I researched about subscriptions policy for Play Market and App Store and they require to use their in-app billing if an application gives access to some of its functionality only with a subscription.
But if, for example, user buys the subscription in Android app and then wants to use iOS app - what is the best way to handle this? Since subscriptions are created separately on Play Market and App Store side they need to be somehow synced?
That's probably a problem that was solved a ton of times, but I can't find how to do it
This is explicitly allowed on the platforms, e.g., here's an excerpt from Apple's App Review Guidelines:
3.1.3(b) Multiplatform Services: Apps that operate across multiple platforms may allow users to access content, subscriptions, or
features they have acquired in your app on other platforms or your web
site, including consumable items in multi-platform games, provided
those items are also available as in-app purchases within the app.
As to how to do this: Basically you have to have user authentication and a backend that ties a subscription status to a user ID. Also, the backend needs to keep the subscription status up to date by refreshing the subscriptions with the stores (Apple App Store, Google Play Store).
(If you weren't using Xamarin, I'd recommend using RevenueCat for this (disclaimer: I work there), but we don't have a Xamarin SDK so I don't think
that that's a possibility)

My app got rejected because of mature mopub Ad, What type of IAB category is an ad like this?

The most recent update to my app on Google Play was rejected because the app "contains ad content that is not appropriate for children".
App update rejected
More specifically it was rejected because the app is rated 3+ but it showed an ad for Bigo Live, a social app rated 12+.
Bigo Live ad in the app
I know the solution is to block ads of this kind using MoPub Content Blocking. But the question is, what IAB category does it fall under?
Use Content Blocking in mopub and block this app:
Content blocking at the account level is the one-stop place to apply advertising filters across your account. Here, you can block advertiser URLs, install ads for specific apps, and general ad categories across all the apps in your account. You can always override these account-wide settings at the app level if you want to set unique content filters for individual apps.
Also, if you app is not targeted toward kids you can got to Google Play Console > App Content > Target audience and content > and chose higher target age

Transaction fees for Google Play using Stripe Connect as intermediate between users and groceries

I want to allow my users to pay food to my business users using Stripe Connect. I never used Stripe, but by reading the Stripe documentation, this seems feasible and relatively easy to implement.
According to this Google documentation page, the purchase or rental of physical goods via a given app is not subject to their fees.
Does this imply that I will not pay any fee to Google, even if I distribute my app via Google Play?
Given your use case, you should be able to use Stripe instead of Google Play's billing system and not be subject to Google extra fees. That being said, it would depend on how you implement your app. For example, if you were to sell tokens (that were only available in-app) that could be redeemed for food, that would probably still need to use Google's billing system. You should probably write in to Stripe Support (https://support.stripe.com/contact) to talk through what you want and be completely sure.

Selling custom product that doesn't fit well for in app purchase

I'am working on community project for chess players and I use standard in app purchases provided by Google to get credit for functions to be used. I prefer however one big payment for one country (culture) made by some company or major local chess entity, personally dealing conditions, creating data source to fit my app, giving users everything within the culture for free and in return giving the sponsor place in various screens of my application.
I know 3rd party payment processors are not allowed for standard app use.
Breaking Google Play developer policy in this case or not?
Making in app purchase for this is just weird.
How to get money for such a product not breaking Google play rules?
There's a whole website by Google explaining the policies.
I don't work for Google's policy team, and I'm not a lawyer, but here would be my reading:
If you want a user to pay within your app, then use Google's methods. So if you want the person sponsoring the whole country to pay within the App, use Google's payment methods.
What you do as a company to strike sponsorship deals and take payment is up to you, if that payment happens outside the app.
But you should read that website above carefully for yourself, and of course Google Play has the final say.

Instant payments options in Android and iOS app

I have payoneer account and i'd like to receive payments from app into this account.
Payments are not for physical goods. They are more like app content-unblockers.
Let's focus on Android and Google Play distribution case.
I suppose, payoneer is not designed for processing quick small payments, right?
I need these:
App should be able to set price according to misc factors.
Payments should be instant without credit card entering - i guess it called "Payments from Google Wallet". E.g. if i (app user) have google account and i have payment method in Google Play, then i do not need to enter my credit card number again.
Payments should be possible independently of user location (country)
So, can I use, say, Braintree to process payments with those requirements?
Will it violate any kind of Google Play policies (the fact, that i'm processing payments not through Google)?
The same questions about iOS
For Android : You can use third party payment seamless/non-seamless as long as their sdk supports Android platform. Google doesn't stop you from choosing any payment service.
For iOS : : It's million dollar question. Always refer to latest app store review guidelines https://developer.apple.com/app-store/review/guidelines/#purchasing-currencies
You can use third party payment gateway in iOS if you are selling physical goods/services outside of the app. For any in-app purchases you must use IAP.
For any in-app purchases if you use other purhasing mechanisms your app will be rejected.
Refer to section 3.1.1
If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase. Apps may not include buttons, external links, or other calls to action that direct customers to purchasing mechanisms other than IAP.

Resources