charitable payment processing to an account I don't own - paypal

I'm trying to set up payment processing for my web app where I've gameified charitable donations.
My goal is as follows:
User on my website wants to unlock a feature or perk by donating to an arbitrary charity.
I redirect them to some payment processor where the money goes directly to the charity.
The user is redirected back with proof of payment, and I unlock the feature.
I don't want to deal with having any sort of liability as a "business" or any of the risks associated with accepting money into an account I control. I just want proof that the payment happened.
Most charities use Paypal to process payments, so let's assume the payment system is PayPal. Is there any way at all I can do this? Hacky solutions and unconventional routes that require some extra work on the user's end are also welcome.
EDIT for clarity:
I'm not looking for code, but instead for recommendation of a service or payment workflow that is capable of this feature. Thanks!

May stab at this use case at hand:
Let the user complete the payment for his selected charity at say paypal and give the user an option to upload the receipt at your webapp(may be a pdf). To begin with you can eyeball the receipt and give the user the credit(On your review admin screen?). But if you want to go fancy you can implement some ocr and automatically substantiate the payment receipt.
Or you can even make it much simpler by auto accepting the receipts by default in the beginning and see how many are cheating on you and then decide to implement the verification. Some time a user taking pain to upload the receipt itself is a proof that he did the right thing.

Another approach would be to use email processing. Provide the user with a disposable email address, and instruct them to provide this address for the receipt.
This won't work for every charity, but in my case, the charity requires an email address to give. Simply use a service like mailgun to process the "Thanks for your donation" email.
It's not as fast as an HTTP callback, but the function is roughly the same.

Related

Verify Paypal id is valid or not inserted by user

I want to verify that whether user has entered valid Paypal id or not. If not than user can't do registration. I've also visited this [1]: How can I verify a PayPal ID? question but it doesn't help me :(
You can't find a direct answer because "valid PayPal ID" doesn't have a single fixed meaning. You will need to be more specific as to what you are trying to discover. Then there may or may not be a way to accomplish what you want, since PayPal protects some aspects of their customers' account and identity information for their protection (and for business reasons).
A bit of background that may help you clarify your question, if not necessarily answer it:
Any email (or phone number) can be configured to receive PayPal payments, in many cases even if the email was not attached to a PayPal account at the time the payment was sent. However, not all PayPal products can function in this way (e.g. you cannot make API calls as an account that has not been set up and has not generated API credentials). Are you asking about receiving money, and if so with which product(s)?
Most people can pay through PayPal if sent to a PayPal page, whether they are accountholders or not (depending upon the PayPal product being used). In addition to guest payments and/or direct credit card payments through PayPal, people can set up PayPal accounts when they arrive and immediately pay with them. So collecting email first and refusing to go forward if there is no PayPal account attached to that email would loose you potential customers. It would also "let through" many customers who could not pay, such as people who know an email address but don't own the attached PayPal account. PayPal also intentionally declines to easily answer questions about whether an email has an associated PayPal account in order to make it harder for bad actors to accumulate lists of PayPal accounts (often with associated personal information) for spear phishing campaigns. There are some APIs that allow you to get limited information about a PayPal account but there are limits associated with these APIs; see e.g. GetVerifiedStatus documentation at:
https://developer.paypal.com/docs/classic/api/adaptive-accounts/GetVerifiedStatus_API_Operation/
Note also that Verified has a particular technical meaning in PayPal, and is NOT AT ALL THE SAME as "able to pay you."
If you want to know if someone can log into their PayPal account, and then use that PayPal account to get information about the user (as well as potentially pay you), that's easy: use Login with PayPal. That's what it's for. Naturally this requires the user to login and assent to your use of their information.
If you want to know if someone can take a particular action (e.g. make a payment), at this moment, the only way to be certain is to actionally request that action. You have options short of actually requesting money; if you want to ensure the user has funds and reserve them for you to collect shortly you can request an authorization rather than a sale. If you want to make sure the user can log in, has payment mechanisms and generally looks ready to pay you (but WITHOUT reserving and guaranteeing funds) you can request an Order.
Hopefully one of these things is what you are asking for?
If you have a PayPal AccountID (a PayPal-generated ID rather than an externally-generated identifier like email or phone number) you can pass it to certain APIs (such as the GetVerifiedStatus), so many of the same options above apply.

Require a linked e-mail before approved purchase?

Basically what I want to do is make sure that the user has an e-mail tied to their account before allowing a payment to take place. I will allow users to add emails to their account via the user account panel. The plan is to make it so that any purchases can be handled automatically. (Obviously the IPN handles a lot of this, but there's still some "Manual work" that needs to be done to poll the database). If I could require accounts to have an email linked before making a purchase I could eliminate that manual step.
tl;dr - is it possible to require a user to have their paypal email linked to their account before approving the payment? This certainly isn't possible using the IPN, because it takes place after the payment is completed. I want to be able to display a custom message as to why the payment was declined and the steps to resolve it if at all possible.

Sending information using paypal API without creating a complete payment

Is there a way to use the paypal API to send basic details of a payment without actually creating the payment itself? What I mean is, I'm working with a non profit organization that does not currently employ SSL. They want to use paypal to accept donations, but they want their own branded form on their page, they don't want to use the simple donate button. I had thought I might be able to send basic details, such as name and address along with the amount they wish to donate and a few other details using the paypal API, and then have the actual payment information processed on paypal's secure servers. All the examples I can find on how to use their API however are creating complete payments and sending them to Paypal, something I'm not able to do for obvious reasons. Short of employing SSL, something that we should probably do anyways, and capturing a complete payment, is there a way of sending just select information over the API and handling the rest on paypal's end?
If you want to control the form itself you don't have any choice but to go SSL. Any other route would require sending the user to PayPal, where you would no longer have that control.

PayPal - several API type "can it be done questions"

I have an app that is both Web and Mobile. I know what I am trying to do is a bit messy but I was hoping someone could help guide me through the options please. I have done some reading and check replies on Stackoverflow but I'm am getting confused.
The main criteria here is I do not want to have the users log in to PayPal every time, approve a transaction every time. So I guess part of the solution is to have them set up an Agreement to pay ?
I have a Business account.
a)
is it possible to transfer funds from a users bank account they have with paypal, to some other paypal account. In other words make a payment from their bank account to a specified paypal account they do not own (namely some merchant)
b)
is it possible to transfer funds from one paypal account to another. Lets say mine to someone else's.
c)
is it possible to transfer funds from one paypal account to another. Lets say someone else's to mine.
d)
is it possible to transfer funds from my paypal account to someone else's bank account.
e)
I guess PayPal IPN could be used for instant notification ?
All of the above needs to be done in the background without user involvement apart from them entering the amount, and say yes proceed. No passwords or bank account details to be entered etc.
I would preferably like to do the above on a web server rather than on a mobile device. So within server-side code.
thanks in advance
It is possible to do some of what you are asking using a Billing Agreement. In a BA, you agree that I can charge your Paypal account without a further login. It's a one-time setup.
You can use the MassPay API call to pay anyone. All you need is their email address. There is a fee to you to do this, tho.
You can make third party calls (where I make calls on your behalf) so it's theoretically possible for me to issue a MassPay on your behalf.
You cannot send money to a bank account (i.e. ACH-style). You can send it to their paypal and they can log in and move it from there.
All transactions will send an IPN if you have one specified.
Hope that helps

Handling Paypal transactions as a third party, not sender or recipient

I need to be able to initiate transactions between two unknown parties via Paypal, say donor and recipient, without ever having to be exposed to the money itself - is this possible?
Basically, I want a donor to be able to click the donate button, fill in the amount and then be passed to Paypal to verify their details. My site will also supply the recipients account details to Paypal so the money goes directly to them rather than to my Paypal account. Essentially I want to enable transactions without having any legal or tax responsibilities for the money.
This needs to happen for an unlimited number of donors and recipients.
Can I do this? Paypal haven't been very helpful at all.
I am sorry to hear that you feel PayPal hasn't been helpful at all, but there are many resources at your disposal. It sounds like you have just not been asking the right person, or asking the right questions. Customer service for large corporations are difficult to traverse, but there are many people at PayPal who would have been easily able to answer your questions.
I always say this, though i'm not sure how many times on this forum: It is possible to do whatever you want with PayPal. Give me your idea, I will give you the way. Whatever you want to do can be done with the right coding.
You can use Website Payments Standard (WPS), and you would only need your merchant's email address to create buttons that go to their account. (set the business variable)
You can also use third party API calls for Website Payments Pro (WPP) and Express Checkout (EC) to process direct credit card transactions as well as PayPal payments via API for your merchants. (set the subject variable to the seller you're submitting the API on behalf of)
As for not having any legal or tax responsibilities for offering the service of payment connectivity (marketplace functionality) between sellers and merchants: IMHO you are dreaming. However, you will want to contact your local legal and tax representative to ask what liability you have. Though this should go without saying; this is StackOverflow, where you should ask questions regarding programming, not tax and legal advice.
Your tax and legal concerns are separate concerns, irrelevant to the technical question of whether it is possible to do what you want with PayPal or not.