User makes a request. Request may or not be fulfilled within 3 days.
If not, no payment processed. If yes, user payment processed and payment to primary receiver.
At a later date, the primary receiver will manually relinquish payment to the secondary receiver.
Can I use a delayed capture with the chained payment? Does it make sense?
Sounds like you'd need to use a Preapproval profile for the first part, and then you could hit the Pay API within that 3 days and process the chained payment using the Preapproval key. That would send the funds to the primary receiver, and then you'd use ExecutePayment to trigger the secondary payments when you're ready to process them.
Related
As title,
Is it able to change the secondary receiver? I am the primary receiver, i am intend to use delayed adaptive payment for my system, the thing is , before i want to release the payment, the secondary receiver might be happen doesn't complete the job i specified, another secondary receiver might completed the job, but i am intend to change the secondary receiver so the secondary receiver which doesn't complete the job cannot receive the money. Am i able to change the secondary receiver?
Nope. It is not allowed to change it.
Within 90 days, you are able to release the money until all the receivers have performed some actions, the money will be credited to all the secondary receivers together.
You will not be able to change the secondary receiver email in ExecutePaymentAPI as it takes only payKey as parameter.
The delayed chain payment expires after 90 days, if you fail to call the ExecutePayment API the transaction expires.
As a side note from personal experience: If you try using Express Checkout and then MassPay, PayPal will not approve your business application because, and I quote, "They don't have visibility of initial payments". The only option is to use Chained Payments or Parallel Payments.
I had Express Checkout and Implicit Adaptive Payments set and my business application was denied. So I suggest you stick to using chained payments.
https://developer.paypal.com/docs/classic/adaptive-payments/integration-guide/APIntro/
Once the secondary receiver is set in the PAY API, it is not possible to be changed later. To fulfill your requirement , I hereby suggest you firstly collecting the full funds from the payer, via PayPal's Adaptive Payment or Express Checkout. And then call MassPay API to send funds to your secondary receivers. Please refer to below page for more details about MassPay API.
https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/MassPay_API_Operation_NVP/
Please also be noted that MassPay is a feature that needs to be requested access to and approved. Please use below links to contact PayPal's Customer Service teams to request this feature.
http://www.paypal.com/cgi-bin/webscr?cmd=_contact-general
http://www.paypal.com/cgi-bin/webscr?cmd=_contact-phone
I'm developing a PayPal chained payment app where
Primary receiver = the service provider, gets 90% of payment
Secondary receiver = marketplace, gets 10% of payment
It's all working in the Sandbox environment, but there's a snag - when the primary receiver logs into their PayPal account, and manually refunds a payment they received, the secondary receiver doesn't appear to return their 10% automatically.
E.g.:
Primary receiver was paid $100, passed $10 automatically to
secondary receiver.
Primary receiver decides to refund using PayPal
account interface.
Refund for $100 issued; but secondary receiver
keeps their $10. Primary receiver now out of pocket by $10.
I would like it so that the secondary receiver automatically refunds their portion of a payment if the primary receiver issues a refund.
From reading the documentation from the Refund API (https://developer.paypal.com/docs/classic/api/adaptive-payments/Refund_API_Operation/), I thought this was the default behaviour, no matter if the refund was initiated through an API call or manually through the PayPal account interface.
Do I have this wrong, or is it just a bug with the Sandbox environment?
Would be useful to have this cleared up, as couldn't find any existing threads on the matter.
Update
PayPal Technical Support have told me the following:
Thank you for contacting Merchant Technical Services.
From my understanding you would like to have when a primary receiver perform a refund, the secondary receiver will automatically issued a refund.
If you would like all the receiver to refund the amount, you have to pass the paykey. May I know how the payment was made? If it is using Pay API operation, you have to use Refund API in order to refund the transaction. The refund can't be done by using PayPal account.
Use the payKey of the original transaction in the refund API, it will solve your problem.
And in case if you wish to partially refund the amount, specify the amount to be deducted from primary and secondary receivers in the "receiverList" field.
For more, refer: https://developer.paypal.com/docs/classic/api/adaptive-payments/Refund_API_Operation/#table-3-additional-fields-for-refunds-of-specific-amounts-to-specific-receivers
We have a situation, where sender will do digital goods(services) from multiple provider, but sender do the payment in one transaction in delayed chained payment mode, so initially primary receiver will receive all money.
Now the primary receiver will have to execute payment to send money to the secondary receivers. However in our case, we have to pay only one receiver at a time. But Execute API, will pay to all the receivers at once.
Is there any other way, so that we can execute part of the payment of that transaction to particular receiver.
Thanks
With a delayed chained payment there is no way to pay secondary receiver(s) individually at different intervals.
You could do what you're saying, though, by ditching the delayed chained payment method altogether and using another method. For example, if you just use a regular checkout method (Payments Standard, Express Checkout, etc.) and let the money go to a primary account, then you could use build separate Pay requests from the primary to a secondary receiver at any time you want to. You could do the same thing using MassPay, too.
I am setting up a system that takes payments through PayPal. I'm using adaptive chained payments so I can charge a transaction fee to my users on free accounts, but it seems as though adaptive MAKEs you have a secondary receiver and makes the secondary have to have a value greater than zero sent to them. Is there a way to disable and only pay the main user if I don't want to charge a transaction fee?
The Pay API does not force a secondary receiver unless you've set the primary receiver flag for the first one to true. All you need to do is create a Pay API request with a single receiver that is NOT set as a primary receiver.
I am using PayPal adaptive payment delayed chained payment. The process is unintuitive.
Q1: How to process the payment to the secondary receiver?
API calls are made as below:
1. Make Pay API call with actionType=PAY_PRIMARY which will only process the payment to the primary receiver
2. Explicitly process the payment to secondary receiver.
How do I process step 2 above? Do I use ExecutePayment API operation? (This does not look correct since in the documentation it says to use payKey however payKey would be expired by the time I need to process the payment to the secondary receiver.)
Q2: Is it ok to use SECONDARYONLY as feesPayer in delayed chained payment?
A1: You would make a call to ExecutePayment passing the PayKey as a parameter. To clear up your doubts, the PayKey has a shelf life of 3 hours before the payment is initiated.
Once the payment has been approved by the customer (i.e. the first leg of the chained payment is completed) the PayKey becomes permanent and does not expire.
For a delayed chained payment, PayPal gives you 90 days to explicitly complete the second leg. After that, it will not allow you to do so, and the primary would need to manually send the money to the secondary receiver.
A2: Yes, but you can only use this variable when you have a single secondary receiver.