Collecting a fee from a Paypal Payment

I am working on a project at where I will want to allow people to pay eachother via a paypal link but also collect a fee for myself for facilitating the transaction.  Is this type of button possible?
Ted PennerSoftware Solutions ArchitectAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Scott FellDeveloper & EE ModeratorCommented:
You either need to collect the money yourself and then pay the other person less your fee or charge people for joining.

It is going to cost you 33 cents to put through $1.  What you would do is charge $1.50.  That will cost you 34 cents so you will make 16 cents on each transaction.  

Volume will need to be your goal.  10,000 transactions per month would net you just above $19,000 bucks for the year.
Ted PennerSoftware Solutions ArchitectAuthor Commented:

How would charging people to join impact it?  What would I charge if what is $1 per transaction or per month?
Andrew AngellCo-Owner / DeveloperCommented:
You can use the Adaptive Payments API with Digital Goods (micropayments) enabled to move money between multiple receivers in a single  transaction at lower fees than usual.  The Digital Goods fees are 5% + .15 instead of 2.9% + .30 so it ends up being quite a bit cheaper on those lower transaction amounts.  Specifically, the Pay API is what you would use.

You could also do it using the Express Checkout API and include multiple receivers there as well, but the only option there is what's called a Parallel Payment, in which case the payer would always see the split.  If you want to hide the split you'll need to go with Adaptive and a Chained Payment.
OWASP: Threats Fundamentals

Learn the top ten threats that are present in modern web-application development and how to protect your business from them.

Scott FellDeveloper & EE ModeratorCommented:
>How would charging people to join impact it?

You might want to study
Ted PennerSoftware Solutions ArchitectAuthor Commented:
Interesting.  So I could do an Adaptive and Chained Payment through Paypal so that the end user needed only to use a Paypal account?
Andrew AngellCo-Owner / DeveloperCommented:
With that scenario the sender could pay using a PayPal account or a credit card (which PayPal calls guest checkout.)  The receiver(s) would need a PayPal account.
Scott FellDeveloper & EE ModeratorCommented:
If you use there is no transaction fee under $10.  But the way this works is the person paying has to have a dwolla account.  So there would be a little pain point. Part of signing up is attaching the account to our bank account and that may take a couple of days for the verification.

You can write your own web/mobile app and collect whatever you want.  Their fee is 25 cents flat for anything over $10.    

Good luck!
Ted PennerSoftware Solutions ArchitectAuthor Commented:
Thanks for all the suggestions.  I think I will stick with Paypal because that's a name that people are most likely to trust.

Can you walk me through a scenario where I would get part of the transaction and the end user would not know and still see nothing but Paypal?
Andrew AngellCo-Owner / DeveloperCommented:
You can disable the credit card option for people by making sure the "PayPal Account Optional" option is disabled in your PayPal account profile.  That said, I've never specifically tested how it would work if you had 3 receivers, for example, and only one of you had that option disabled.  Would need to test that in the sandbox to see how it reacts.  There's nothing wrong with it, though.  The payment still comes to you just like any PayPal payment would.  It just gives payers that extra option in case they don't have a PayPal account.

Then you'd setup a chained payment via the Pay API with up to 5 receivers included on the transaction.  I see you're using PHP.  I've got a class library for PayPal that would make this call very simple for you.
Ted PennerSoftware Solutions ArchitectAuthor Commented:
I tried to watch the class library on your video which is necessary because I am unclear on how to proceed.
Andrew AngellCo-Owner / DeveloperCommented:
Just download the whole thing, update the config file with your own API credentials, and then open up the PayWithOptions.php file.  

Within that you'll see there are a bunch of arrays already prepared for you to simply fill in values.  There are also commented notes pulled directly from the PayPal documentation to explain what each parameter is for, whether it's required or not, etc.  You can load the values with static data, session variables, PHP vars, or whatever you need to use.

Once all of that is filled out you simply run the script within your payment flow and it handles building the request and sending it off to PayPal.  The result is an array of all the response fields that PayPal returns parsed and ready to use just like any other PHP array.  

The samples directory includes a PayWithOptions.php that is already filled out with static data and includes 2 receivers set up as a chained payment, which seems to be exactly what you're trying to do.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.