Automate PayPal commission payments from Merchant when someone subscribes - php

I'm building a site for a client that involves a number of content creator users that other users can subscribe to with automatically recurring monthly payments (think OnlyFans). All transactions are to go through PayPal, which I thought would be the easiest solution. I'm coding in PHP (WordPress environment) using Curl to call the REST API.
I've got the content creators on-boarding fine as merchants. I originally went down the path of creating Orders, and PayPal has a great commission tool in that system so that my client will get their commission every time a user starts a subscription. I was going to take care of the recurring payments at my own end, but then I discovered PayPal's Subscription system - it seemed perfect, but it doesn't have the automatic commission facility of the orders system, which is a bummer. So I could have PayPal automate the commissions while I programmed a subscription system, or I could use their subscription system and ... what?
That's where I'm stuck. I now need to automate PayPal deducting a payment from my merchant and paying it to my client as their commission. This needs to be done whenever a subscription is started and then each month as the subscription payment comes through. I've tapped into web-hooks to get notified when these automated monthly payments are happening (at least I'm hoping I have), but how can I automate a percentage of the initial payment and each subsequent monthly payment to be automatically deducted from the merchant and paid to my client?
I've looked at orders, but that needs to be approved by the merchant. What else is available to me?

To automate sending payments from your own account to creators or affiliates, you could potentially use Payouts.
See here for information on requesting access to Payouts.

Related

How do large merchant resellers process payments and payouts?

I am looking for information on how large resellers collect payments and pay the people who sell on their site. (e.g. Redbubble.com, a company that pays artists a commission for their work)
Specifically, I am looking for different solutions that cover a few key functions at minimal cost (like Paypal fees)
Ability to take payment from credit cards and paypal (others a benefit)
Track sales for each merchant as payments are processing
Collect payments in central account
Payout all processed payments on a monthly basis
P.S. I imagine there are a few ways to do this, I am hoping to gain some insight on what solutions have been proven.
P.P.S. This is not a technology specific question. Whatever APIs or third party solutions you know of are fair game.
Thanks for your knowledge!
Try PayPal adaptive payments.
Paypal Adaptive payments
You can also try Stripe to collect funds to one account and to trasfer them to third party acccounts but this only works in the US.
Stripe Payments
You could use the Adaptive Payments API and that would allow you to split the payments up among multiple receivers in a single transaction in real-time. If you go that route the API calls that you'd be interested in are...
Pay - This setups the actual payment and the receivers on the payment.
SetPaymentOptions - This allows you to provide more details like items, shipping, etc.
ExecutePayment - This actually processes the payment in the system after it's been setup with the previous calls.
PaymentDetails - This obtains details about a completed transaction.
Preapproval (possibly) - This allows you to get a Preapproval key for a user that will allow you to trigger payments on that users behalf at any time in the future with the use of the preapproval key.
PreapprovalDetails (if you use preapprovals) - This obtains details about an active preapproval profile.
To get all of that working in the live environment you'll need to submit an application through your PayPal developer account to obtain a Classic API App ID. For development on the sandbox there is a global App ID that can be used.
Another option would be to take payments on your site using any PayPal product like Payments Standard, Express Checkout, Payments Pro, etc. and have all the money come to your account, and then use the Pay API to distribute those funds out to people accordingly. This could be automated with an IPN solution and possibly the use of a CRON job on your server.
This is the method I like to use, and I typically go with a full Payments Pro / Express Checkout integration for payments on my site and then I distribute via the Pay API within an IPN solution or CRON job like I mentioned.

Subscriptions and recurring payments with preapproved allowance limit

I am working on a site providing software as a service which is billed on a monthly basis.
The software is licensed on a per-user basis and will be extensible via optional standard modules and custom apps that can be subscribed to through an app store.
The customer can alter the number of users, subscribe or unsubscribe modules and apps every month.
Users, modules and apps should be billed along with the base software, thus the billing amount may greatly vary from month to month.
The goal is to minimize PayPal requests for approval and let customers specify an amount that is above the base subscription price so that minor purchases do not require approval by anyone with access to the company's PayPal account (unless the customer limits the amount to the original subscription price).
Which PayPal APIs would you recommend in this scenario ?
As I understood it, UpdateRecurringPaymentsProfile does not allow the amount to be increased by more than 20% within 180 days without explicit approval by the buyer, so it probably would not work if we try to first request e.g. $200, then bill only $100 and later increase back to e.g. $150, right ?
The Adaptive Payments API seems to require the seller to bill rather than have PayPal do it on a regular basis, is this correct ?
I don't know it's help full or not right now, As it is a very old post.
Instead of creating recurring profile on PayPal Server, You can store the customer's credit card on the PayPal using REST API: https://developer.paypal.com/docs/api/#vault then every month you can fetch it and charge it like recurring Payment, Also you no need to worry about how many time customer upgrade the subscription you can manage it on your server end, Or When client is no longer with the services then just remove its card from PayPal.
I suppose Authorize.net SIM method also does the same.
Hope this make sense.

Using Paypal API's to process conditional rental payments using PHP

I am building an eCommerce site which gives a user the ability to rent
an item for a designated amount of time. If the item is not returned
within that time, the customer is billed automatically for another rent
cycle. If the item is returned the customer will stop getting billed
for additional rent cycles. If the item is bought the customer will be
billed and an additional amount different from the rent price will be
billed to the customer and the customer will no longer be billed for
additional rent. Most of the billing is ongoing and has too many
variables going on to just have a simple subscription payment method.
I think the sequence of transactions can be initiated with a simple PayPal button form which sends information about my IPN script location, Cancel Payment script location and recurring payment script location.
I find that there are some limitations of what PayPal's API's can do. It seems that the recurring payments API is set up for an amount of set payments set over a specified billing period over a set number of times a customer would be billed. I am not 100% sure on this but I think PayPal only accesses the recurring payment API for a customer once for the initial transaction and executes the continuous transactions without checking my websites internal database which might give data to influence parts of the recurring payment script to cancel continuous payments. An example of when this condition should occur is when a customer returns a product or purchases a product which was already being rented out. PayPal has been terrible at getting back to me about technical problems like this. Another problem with PayPal's recurring payments API is a recurring payment subscription cannot be longer than a year so if a customer is renting an item for 2 years then they would only be charged for the first year.
Any advice on how I can implement a payment system like this using PayPal, if it is even possible would be greatly appreciated. I don't want to have make my own payment gateway if PayPal can do this.

Several questions about paypal pro subscriptions flow

I have integrated standard paypal with one of sites and it works as follows: user selects which subscription to buy, he is redirected to paypal, paypal sends IPN response, I process it and then every X days PayPal sends a new IPN notifying site that user has been successfully charged for new subscription iteration. Now the problem is that user needs to have paypal account to sign up for such subscription.
The customer contacted PayPal and found out that it is possible to avoid having user to use their PayPal account to buy subscription when seller uses paypal pro account. Is it really so? Will I be able to gather user's card info, then send some request to PayPal API and have the subscription created. If yes, what will happen next? PayPal will be sending me IPN requests every X days notifying site that the card has been successfully charged?
Also, what is the general flow? Do I always have to gather card info and send it to paypal api or can I redirect user to paypal in a similar way as standard paypal functions?
Yes, this is possible. You would need to sign up for PayPal Website Payments Pro and Direct Payment Recurring Payments. You can then use the CreateRecurringPaymentsProfile API and specify the card details directly in a single API call.
This will create a recurring profile, which is billed every X days / months, depending on what you specified as the billing period in CreateRecurringPaymentsProfile.
Alternatively, you can also sign up for PayPal Premium Services (for the UK) or PayPal Enhanced Recurring Payments (for the US). This allows you to accept subscription payments from guest users, using the exact same integration you have at the moment, except a 'guest payment' section will be added to the PayPal checkout screen, so buyers won't be forced to create a PayPal account to sign up for your subscriptions any longer.
(Note: Enhanced Recurring Payments / Premium Services has other benefits as well, such as Installment Plans, but guest subscription payments is definitely the biggest benefit).

Make a payment into someones paypal account using PHP

I have a website where I need to reward users for their involvement by paying money into their paypal account. I have a paypal business account, and would like to know if it is possible to put money into their account automatically from just having their paypal account email address.
I am developing my website using php. Ideally, I would like to have a script on my server that when executed transfers money from my business account into their paypal account.
I am new to paypal, and having looked around I am getting confused as to all of the different APIs that are in use! MassPay keeps coming up but if possible I would rather I didnt have to pay the 2% charge on each payment - is there any other options?
The payments are not for goods or services and so could be classed as a personal transfer, would this eliminate any fees?
So my questions are:
1) Is this possible?
2) Which API is most suitable?
Thanks
Yes, it's possible but you're going to end up paying a transaction fee. I would recommend you do a batch process (that is, do one large payment request scheduled at a certain time of day) through PayPal's Mass Payment API.
You can read more about this API and how to use it here.
The way PayPal stays in business is by collecting these transaction fees. If it didn't collect them, it wouldn't be nearly as successful.
If you're looking at having more options on the transaction, including some ways to try and shift around who pays the fee, you may want to look at Adaptive Payments.
The best way is to generate a paypal button in the following URL:
https://www.paypal.com/us/cgi-bin/?cmd=_donate-intro-outside
and place it at your page... You'll still have to pay some fee (although it's a low one)

Categories