Oct 16, 2023 ios android app-store donations

In-App Donations

I recently did some research into what is required for nonprofits accept donations in their iOS and Android apps. I document my findings here.

Are you a fan of open source software and public transit? Make a tax-deductible donation to the volunteer-run group that makes OneBusAway, the Open Transit Software Foundation, today! We need the money to help fund our operations! Donate here: https://opentransitsoftwarefoundation.org/donate/

In addition to building and maintaining the OneBusAway app for iOS, I am also a founding board member of its parent organization, the Open Transit Software Foundation. Unfortunately, there’s not a lot of money in volunteer-run nonprofits that build free, open-source transit apps, and so we’re constantly scrambling to figure out how to fund initiatives like build a great trip planner into the iOS app.

I’m currently researching a number of different means by which we could pay for this work, and one obvious method is to accept donations in our iOS and Android apps. Here’s what I’ve found out about both platforms’ policies.

Apple App Store/iOS Apps

Apple allows in-app donations via Apple Pay, but their requirements are quite stringent. You can find Apple’s official documentation on the Apple Pay for Nonprofits page, which lays out much of the information below.

Apple Pay supports recurring payments via the PKRecurringPaymentRequest class, which was introduced in iOS 16.

Google Play Store/Android Apps

Google’s requirements, although seemingly less stringent than Apple’s, are also much more vague. Some critical documentation only seems to exist as a Stack Overflow post quoting a Google support representative.

Google Play’s billing system cannot (“must not”) be used for donations. See Section 3B of the Payments policy page. Section 4 of the Payments policy page confusingly reads:

Other than the conditions described in Section 3 and Section 8, apps may not lead users to a payment method other than Google Play’s billing system.

It seems, though, according to this Stack Overflow post, that a registered 501(c)(3) non-profit can include a button in their app that opens a webpage within an external web browser, where the user can make a donation. Unfortunately, I have no idea how you might go about contacting Google Play Support to submit the necessary documentation. Maybe this is a case where it’s best to ask for forgiveness rather than permission. i.e. wait til they ‘catch’ you, and then send them documentation.

Update: the Google Pay API FAQ page states:

Approved nonprofit organizations (NPOs) can integrate the Google Pay API to collect donations, if, and only if, they provide documentation to prove, certify, and validate their nonprofit status. For example, US NPOs must provide valid 501(c)3 status proof from the IRS in order to qualify.

However, in typical Google fashion, there is no clarity on how “documentation to prove, certify, and validate” can be given to them.