Retaining money from client until the product comes - paypal

I know this question is not especifically technical, but I can't find in any other place. I am developing a marketplace in woocommerce, but I want to retain the money of a client until the product arrives, or the service is completed, and after the client confirms, the money will be sent for the seller. I want to make that automatically, using Paypal. I simply don't know where to start. In summary, the client's money should come into my account, then after the client's confirmation the money (minus the fee) should be sent automatically for the client. If necessary, I can change the platform of the marketplace for another kind.

A way to send money from your account to others with PayPal is to use Payouts: https://developer.paypal.com/docs/payouts/integrate/prerequisites/#get-access-to-paypal-payouts .
There is also a feature designed for marketplaces: https://developer.paypal.com/docs/platforms/checkout/delayed-disbursement/ , however in order to use that for live payments you must be an approved PayPal partner as noted in the box here: https://developer.paypal.com/docs/platforms/get-started/#get-api-credentials

Related

How to know when a transaction completes with Paypal?

I'm currently using Stripe Connect to allow sellers on my website to sell products to other users. I don't want to be a man in the middle and hold the money and then pass it along for legal reasons, so stripe connect works quite well for me, whilst still allowing me to know when a charge went through fully or was refunded, etc.
I'd like now to offer sellers in my marketplace the option to get paid by Paypal. This could be as simple as storing the seller's Paypal email and rendering the PayPal button on their shop, however, it seems now I wouldn't be able to track if a buyer actually finalized a purchase or abandoned the sale. I need this info for various reasons.
My question is how can I do this with PayPal?
All current PayPal checkout integrations have a "Capture" step, so you can know if a payment was successfully captured or not. Since you want to track this information on a server, you should use a server-side integration.
Implement two routes, one for 'Set Up Transaction' and one for 'Capture Transaction', documented here.
The best front end to use for approval is: https://developer.paypal.com/demo/checkout/#/pattern/server , paired with the above two routes you created.
Oh and since you'll be sending the payment to an account other than your own, specify this in a payee object when you set up the transaction.

Mass payouts suggestion for third party

Let's say I have a software that does accounting for businesses. These businesses collect money that, at the end of the month, they need to forward to their clients.
Meaning, at the end of the month, my software produces an accounting statement that goes like this
Send x € to Client A
Send y € to Client B
and so on
Today, the businesses then manually log into their bank account and type in every transaction.
But now, I'd like to automate that process by suggesting the businesses a "bulk transaction" on e.g. PayPal. At the end of the month, they log in and see a "Pay with Paypal" button. Once they click, they get taken to Paypal and the bulk transaction my software has created is shown to them. They can decline or accept it.
Once they've gone ahead and sent out the transaction, my software gets notified if the transaction was successful or not.
A few more things to consider:
My software is operated from Germany. Here, as soon as my software can "touch" the money of the businesses I'm serving, I'll have to get permission from BaFin. So I'd like to not have access to any money of the businesses I'm serving!
I want to make the process as smooth as possible from a UX perspective.
I've looked at the PayPal API. I've found that Mass Pay is deprecated. And so is Adaptive Payments... So the only option left would be the Payouts API. But I can't find a way where I can suggest the businesses a transaction but then get notified later if it was successful...
I could have them upload a csv. But then how do I know if it was paid?
Ideally, I could:
Generate a csv of all the recipients + amounts
Business downloads it from my software and uploads it to their Paypal. They confirm.
Somehow there's a webhook that calls my software to tell it whether the transaction succeeded.
I've also looked at the Reports API. In that case, I'd ask the businesses that I'm serving to allow me to access their reports and would periodically download them. But that neither seems to work as the Adaptive Payments API is deprecated.
Any ideas on how to solve this on PayPal? Any other providers I could take a look at?
Require all clients to be approved for PayPal Payouts and provide you with a ClientID and Secret to facilitate payments via the Payouts API. You can be notified via the Payouts API batch details.
If checking batch details isn't enough, you can implement webhooks for updates.

Open Cart Module

Need help.. My query is as follows
I have my e-commerce website up and running with all the products. People are visiting my website and they are unable to complete the checkout process because there is no payment gateway setup yet , due to some delay in the bank process the gateway is still not setup.
I did try the cash on delivery process but it resulted in a huge loss to me.
I wanted to know if it is possible to send an email confirmation to the customer with the order details, price and my bank details to which they can deposit the amount during checkout process in opencart.
You can use the "Bank Transfer" details for that, but it's essentially the same as what you've got with COD. The easiest thing to do is just set up another payment gateway such as paypal etc. There are hundreds of them available (other than the ones that come as standard).
hope this helps for you and got an idea.
For my experience, depositing the money to the bank by the customer is a indeed huge waste of time. They shop online for the convenience of not going out or what.
For your question:
Try to search cybersource as they are our payment gateway and they are really secure.
I suggest, since you don't yet the payment gateway, upon checkout, inform the customer what will be the mode of payment that they are using - like Credit Cart, Cash-On-Delivery or thru PayPal.
I think there is still no module that requires your need but you should work now on getting the payment gateway done as it will really help you save time and money.
Once you complete your payment gateway, try to establish Shipping method: Pick up from the store, Free Shipping when within your country and thru Shipping Delivery Service like DHL, FedEx, AmEx, etc.
Good Luck.

Paypal ExpressCheckout + chained Payment

I developed a Web Application that accepts payments via the ExpressCheckout API, for users to become a members.
Everything works fine.
I now want to extend my Web Application Services and offer my users with the possibility to buy items which are sold by third parties (my members).
The principle I would like to implement is quite simple: for each order, let the user pay for the item they choose and then transfer a part of the amount I received to the item provider, and keep some money for me. I would like to automate this process so that once I received the payment notification, I compute the amount of money to transfer to the item provider who might or not have a Paypal account (in other words, this means that I could maybe need to transfer the money to a bank account, using the IBAN/SWIFT data) and then proceed with the money transfer.
I tried to find a solution reading your documentation and came across the "chained payment" but the latter does not seem to be used within the ExpressCheckout workflow.
Also, since my implementation of the ExpressCheckout flow works, I would not like to have to find a totally different solution but rather extend it... if possible.
Could you please tell me which is the best solution for me?
In advance, many thanks for your help.
You could do 1 of 2 things. You could use Express Checkout with parallel payments. This means you could split the transaction up between different accounts at the time of purchase. The other option would be to just receive all of the funds into your account, and then when you are wanting to send money to the other accounts you could either use the Adaptive Payments (Pay) API or the MassPayments API to send money to the other accounts. Keep in mind you would have to send it to their PayPal accounts, you would not be able to send it directly to a bank account with either one of these API's.
I had the same issue and I got an answer from PayPal that it is not allowed to use Express Checkout to transfer money to your PayPal account and - at a later point in time - transfer the amount minus your service fee (which stays on your PayPal account) via Adapative Payments API to the seller's PayPal account. PayPal suggested to use Chained Payments API instead. All works fine in the sandbox, but once you need a Live APP ID from PayPal they will review your business case and deny it. At least that what happened to me.
I know that is old question, but anyway, I tried to find solution and was enable to perform the simillar thing like described in question. So, then I asked paypal about this, and they gave me advice to use SellerDetailsType Fields that 's called PayPalAccountID, description for this field is Unique identifier for the merchant. For parallel payments, this field is required and must contain the Payer Id or the email address of the merchant. It wasn't clear for me to use this field for solving my problem. Here is link https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/SetExpressCheckout_API_Operation_SOAP/ I described field for soap request, for NVP it's called PAYMENTREQUEST_n_SELLERPAYPALACCOUNTID, but the idea is the same. I hope it will help someone.

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.