How to Collect Charitable Donations from a Native iOS App? - in-app-purchase

I am working on an app that needs to have functionality to collect charitable donations.
Apple Pay on the Web: Acceptable Use Guidelines
I found at the above link that collection of charitable donations is prohibited with Apple Pay.
App Store Review Guidelines
Here in Section 3.2.2 it states that you cant use In-App Purchases to collect charitable donations.
I have found another StackOverflow post that brushes on my question here.
So, according to the Rules and Regulations, I know that I cant use in app Purchases for Charitable Donations. I also know that I can't use Apple Pay.
What is the best way to prompt a user to donate without forcing them to manually enter all of their payment info into an online form?
I have looked a little bit at Apple Wallet, but the only way that would work is if someone already has their card set up and it will help AutoFill the information. Correct me if I am wrong, but this is what I have understood.
Additionally, is there any reason Apple has given as to why it is so difficult to give charitable donations? A coworker is doing the same thing for Android and hasn't run into nearly as many roadblocks as I have.

The answer is no. Apple doesn't let you its in their rules:
21) Charities and contributions Apps that include the ability to make
donations to recognized charitable organizations must be free The
collection of donations must be done via a web site in Safari or an
SMS
You can call the app review department in California: (408) 996-1010 OR (512) 674-2000, but I highly doubt you'll get any luck.
My advice would be the following:
Get creative and find some simple feature/service that you can add to your service that you can sell with an IAP/Apple Wallet that provides some simple benefit to the member, and you market that as all proceeds going towards the cause your raising money for. As long as your actually delivering some digital good within your app, I don't think Apple can dictate what you actually do with the money, you just can't take money for nothing using their service.
See this similar post: How can I handle donations through iOS?
You might want to check section 21 more closely. If your app is free to use you may be able to get around it. Or just call the review team directly. That would be fun.

Apple accepts charitable donations in-app now. You must sign up using Benevity.
Details are at https://developer.apple.com/apple-pay/nonprofits/

Apple does not allow in-app donations. You can redirect to a website (eg. PayPal), but this must happen outside the app.
Using Safari View Controller to open a webview within the app will be rejected.
Instead, force the URL to be handled by the device's default web browser - they will allow this.

In the meantime, Apple allowed donations by using Apple Pay within your app and website:
https://developer.apple.com/support/apple-pay-nonprofits/
So this should be doable without web views within iOS.

As per Apple's app-store rules, you cannot collect charities or donations from the native iOS app.

All is correct, you cannot accept money from within the app.
HOWEVER, as per feedback from my conservation app being rejected, was that they will NOT accept any payments within the app for charitable contributions. But, if you takes your customer to an external link, via webview (must be webview and not built into app) and from this webview site, they can create payments. If the charity you want to support has a website that accepts contributions, you can direct them there via with webview.

Related

iOS app for a Cloud Storage Service rejected (for not providing In App Purchase for subscription)

We are a startup that provides cloud storage (www.zapdrive.com). Our iOS app was rejected, and the reason given was the clauses 11.12 of the App Store Review Guidelines, which specifically says:
"Apps offering subscriptions must do so using IAP, Apple will share the
same 70/30 revenue split with developers for these purchases, as set
forth in the Developer Program License Agreement."
Please note that we are not offering any subscription from within the App. We do not have any links or buttons in the App that take the user to any external website, whatsoever. It is a very basic app, that lets the users view their files stored in "ZapDrive". To see what the app looks like, you can see it in the Google Play Store
One thing that we see could be close to a violation of the above rule is, on the first page of the App (which is the login screen), we have a text that says:
"Don't have a ZapDrive Account? Go to www.zapdrive.com to sign up for a FREE account"
However, the above-mentioned line is just plain text, and does not "link" to the actuak website.
Also, the rejection notice says:
While your app maybe be intended to enhance the experience of your
existing subscribers, with the exception of the content specified in
Guideline 11.14, if the subscribed product is used within the app, the
subscription must be offered in the app using IAP.
Please not that we are not selling any content, or offering a subscription to any content. The users already own the content, and they copy it into their "ZapDrive". The app lets them view/stream the said content.
Although, Apple says that just because other apps are doing this, doesn't mean you can do it too. Still, a lot of other apps (DropBox, Google Drive, Box etc) offer subscriptions, but do not offer IAP.
Can someone please tell us, how are we violating the App Store Guidelines? And what can we do to make it compatible? Is it the text on the login screen that's causing this violation?
My guess is the link. Does the kindle app have a link in their app? Does Dropbox? I don't think so... Take out the link and resubmit and see what happens. Or you can ask apple for more details.
Your question is not a programming one; there's no better place to ask this than Apple themselves. All iTunesConnect rejections have a corresponding textbox you can communicate with them specifically about that rejection ticket.

How can I handle donations through iOS?

My team and I are going to write an app for an organisation where the user can donate to this organisation. The app itself is not the problem, but we don't really know how we can handle this.
Our first thought was that we could make the donations like if you purchase an item in a game for real money. But there are 2 problems:
There are only fixed amounts like 99c and so on
Apple gets 30%, and we want the user to know who gets how much. The developers: 10%, The Organisation 90%. But if Apple gets 30% of ALL the money, and people see that, they may not donate for that reason. I wouldn't either.
Our second thought was that we implement a webthingy (don't know how the element is called atm) in our app, which simply works like Safari and we direct them to the donation page or something, but how does the organisation know that the donations are from our app then?
Is there any other way we can handle this? I think people will be able to donate via credit cards and PayPal.
Edit, I found this:
21.1 Apps that include the ability to make donations to recognized charitable organizations must be free
21.2 The collection of donations must be done via a web site in Safari or an SMS
The app will be free, and it is fine if it has to be via SMS or Safari, but HOW does the organisation know the donations coming in, are from the app?
Update:
US non-profits can accept donations via Apple Pay:
Starting November 14, 2016, nonprofits based in the United States can use Apple Pay to provide a simple and secure way to accept donations from within their app and website. Similar to using Apple Pay to buy goods and services, users can donate without entering their billing, shipping, or contact details.
The App Store guidelines go on to say:
Acceptable
...
Approved nonprofits may fundraise directly within their own apps or third-party apps, provided those fundraising campaigns adhere to all App Review Guidelines and offer Apple Pay support. These apps must disclose how the funds will be used, abide by all required local and federal laws, and ensure appropriate tax receipts are available to donors. Additional information shall be provided to App Review upon request. Nonprofit platforms that connect donors to other nonprofits must ensure that every nonprofit listed in the app has also gone through the nonprofit approval process. Learn more about becoming an approved nonprofit.
Unacceptable
...
Unless you are an approved nonprofit or otherwise permitted under Section 3.2.1 (vi) above, collecting funds within the app for charities and fundraisers. Apps that seek to raise money for such causes must be free on the App Store and may only collect funds outside of the app, such as via Safari or SMS.
My old answer, below, predated this revision in the charitable giving policy.
As you note, section 21 of the App Store Review Guidelines says:
21.Charities and contributions
21.1 Apps that include the ability to make donations to recognized charitable organizations must be free
21.2 The collection of donations must be done via a web site in Safari or an SMS
You ask how you know if they're from your app: For Safari use a unique URL or include a HTTP parameter that you append to the URL when you invoke Safari, which their web server code will capture. As other have suggested, you might want to log the initiation of the transaction for your own reconciliation purposes, too. For SMS, I assume you'd have a dedicated SMS number for app donations.
But HOW does the organisation know the donations coming in, are from the app?
Make a new page on the organization's site that has a URL that isn't linked to anywhere and non-indexable by search engines (robots.txt).
In your app, make a UIWebView set to a URL on your own servers that redirects to the page you make in step 1. You should also make this URL non-indexable.
In that page
Check that the referrer is your page
Check that the user agent is whatever UIWebView sends
Have the page log whatever happens somewhere (date/time, donation amount, etc) -- to reconcile with their data
When a successful donation is made, it should record that it came from this page (and therefore, your app)
Someone could fake that they used your app by making the appropriate request, but why would they. Even if they did, you should probably get credit for that donation anyway.
You can't use IAP for any virtual good that are not consumed in the app as far as I know, apple will reject your app if you try it. (However i've seem some exceptions to that)
try www.stripe.com, they have the best payment interface i've seem so far.
someone even made an iOS SDK to help you with the implementation https://github.com/briancollins/stripe-ios
I don't believe Apple will allow you to use in-app purchases to accept donations. Marco looked into this with his Instapaper app and couldn't do it (now he charges for server searches). You actually have to provide something for the money. Your best bet is to develop a web app that uses a private api to process the donation. That way you can know for certain where the donations are coming from.
Ah, nevermind, you can accept donation on a free app. Missed that. Still, using a private api in a web app is probably your best bet.
From April 2020 you cannot donate inside the app. Apple teams say you can't donate inside the IOS app if you are a nonprofit organization. you must redirect the user to Safari or on your website for donation or using SMS for donation.
Otherwise, You can use Apple Pay for donation like in App Purchase if you are profit Organization
soo if you are a nonprofit organization and you want to donate, please follow these steps.
I am using Flutterwave SKD for donation. You can use as you want like Stripe and PayPal etc.
1: I am using the Flutterwave Php SDK for donation. just download the PHP SDK of your payment gateway from your Payment gateway DOC.
2: create a webpage for payment on your web end and from your app open this webpage into Safari, And pass user ID with URL parameter so you can keep the record of which user donate us and how much.
like (PageWebUrl/userID) (https://www.mywebPageLink.com/donation/userId=20)
3: When a user successfully donates save the data into that user-id and redirect the user to your app.
4: call an API to retrieve the donation data for your app.
Coooool Done...

Would creating a portal-like app give me trouble when submitting on the App Store?

The app is a small portal from which you can view/buy videos, view/buy songs, play/buy games and view/buy epubs.
Would Apple view this app as competing or being similar to the App Store or iBooks and thus reject it?
Are you going to use in-app purchase for it? If so, you should have less of a problem. But yes, as mentioned, they might view it as competition, but typically they are quite lenient if they still make profit from the in-app purchases. Also, since you are selling more than one type of media, it cannot really be viewed as direct competition.
If you use StoreKit for purchases, you should be fine as long as you don't create functionality that is the same or similar to the functionality provided by the integrated apps. You have to have a unique difference ("Use the special gmail-functions" was enough for google mail but that was Google).
If your app uses another payment mechanism (PayPal, ...) it will be denied. You have to use StoreKit / iTunes and give apple 30% of the revenue.

Selling something inside an application on iOS

I've heard there are some precautions to take to develop a market in an application.
I'm developing an application for a football club. I would like to integrate a kind of market to sell stadium seats.
Someone told me Apple will refuse the application if I integrate it directly inside the app (using Obj-C, communicating with PHP pages).
According to him, I should redirect the user to an external web page (using Safari app for example) to realize the transaction.
Apple does not really communicate about that kind of information.
Do you know anything about it?
You can't use In App Purchase to buy "real life things" such as stadium seats : http://developer.apple.com/news/ios/pdf/in_app_purchase.pdf
The only solution is to use an external payment solution.
The Movies Now app implements such a thing : http://moviesnowapp.com/
Yes, you can use only in-app purchases to sell anything in your app, otherwise Apple will reject your app.
I'm not so sure if Apple will reject your app on these grounds. How can they know what your php pages are doing if you put them in a WebView? Also, think about services like Sky or Spotify that require a subscription. Apple do not take a cut on this, so you could set up a similar thing whereby your users have an account online that they can purchase tickets from and the iPhone is simply a thin client for your online services...
Yes you have to use InApp purchase only to apply unlock functionality,and to use In App purchase there are certain scenarios which can be implemented.
You can find in detail about In App functionality on
http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/AddingaStoretoYourApplication/AddingaStoretoYourApplication.html
Secondly if you want to implement In App purchase,there is a very good tutorial which i found very helpful and was easily able to integrate inApp in my application and it was also later on approved by apple.
http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/
Cheers
You cannot use Apple in app purchase to purchase non digital goods, if you have an existing payment provider or user account you could use that, take a look at the eBay app which has Paypal integration

Will use of the PayPal iOS library get my app rejected?

I'm developing an iPhone app with a subscription model, and I saw this iOS PayPal library: Apple takes 30% of revenue of everything, but PayPal takes significantly less for micro-payments (maxing out at 10%). Naturally, I became interested.
I guess what I'm confused about is this: if Apple wants everyone to use the in-app purchase library for everything (as per this document), why does this PayPal library even exist? Wouldn't any app that used it get rejected?
Has anyone successfully published an app in the app store that uses this library? If so, what was the purchase for? Digital goods? Physical goods? Content?
quote from some forum:
Hello, Apple policy restricts from using our library for accepting
digital goods. Use our library should
be for hard goods, donations, personal
payments and services only.
I hope this clarifies your question.
Thank you.
Update on donations.
Apple has updated their policy (When?). You can no longer use PayPal iOS for donations.
Apple Store Review Guidelines (Retrieved 2014-10-02 05:25pm GMT):
Charities and contributions
21.1 Apps that include the ability to make donations to recognized charitable organizations must be free
21.2 The collection of charitable donations must be done via a web site in Safari or an SMS
There are things that you could sell by paypal in iphone apps, imagine that your app exists to promote your business, and not that your app IS your business. I mean...you have a library and use app as another channel to sell the books, or you have an hotel and use app to reserve and then pay the room! In that case you can use paypal.
You cannot use paypal, but you have to use instead in-app purchase, if you sell some additional feature for you app...
I hope this helps

Resources