Well, I didn't really know how to call this...
I have been surfing PayPal's developer documentation for a while now, but there is nothing that speaks to me with direction as to achieving what I am looking for.
It's probably well documented, but I don't grasp it well enough yet to make sense while reading each part separately.
I have read about Preapproval, though it seem to require that I send the customer's browser to the designated PayPal address.
I have thought about creating a database with credit card information, but that is too scary -- so I am looking to see if there is a way for a customer to allow me to do unattended charges to their PayPal account, much like I would be able to do if I had a database with customer credit card information.
Any direction would be appreciated.
Yes, this is possible. There are two options:
PayPal Express Checkout with a Billing Agreement
This works similarly to Preapprovals (which is Adaptive Payments, a different set of API's). You would need to redirect the buyer to PayPal in order to accept the billing agreement, and from then on you can bill the user using to DoReferenceTransaction API.
PayPal DoDirectPayment (Website Payments Pro) with Reference Transactions
You would need to have an existing transaction, and instead of a billing agreement ID, you would submit a prior transaction ID to the DoReferenceTransaction API. You can then re-bill the user on the card details which are stored with PayPal (up to 1 year. assuming the card details are still valid).
Do note that both options require you having access to the DoReferenceTransaction API, which you will not have access to by default.
For further information on the API itself, see https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_DoReferenceTransaction
Important: You will need to call in to get Billing Agreements activated. Good luck finding someone that knows what you need (no really) :-)
You will eventually find someone who knows what DoReferenceTransaction is and then once you've finally found them they'll probably tell you they can only activate it in the sand box and transfer you to someone in the Business Office. They'll have to then submit it to approval with someone else. Est. Total call time 59 minutes 8 seconds.
The guy I just spoke with said he's probably handled only 2 call in a year about DoReferenceTransaction - so you may need to ask around. They have other subscription billing and that's not what you want.
Also realize that approval is not instant and you may need to have established history. The guy who helped me said this is the best number
888 215 5506. Be sure to explain why you need them carefully and try to reassure them you're legitimate. A reputable website behind the domain for your paypal email will probably help.
Good news: I applied for Reference Transactions Friday and was approved today (Sunday). This was for two accounts - one which had only been established the day before.
Thank you for contacting us about enabling reference transactions on
your PayPal account.
I am pleased to inform you that your request has been approved. You
can begin using this feature immediately.
If you have further questions regarding this email, please contact a
Merchant Services Specialist at 1-888-221-1161.
Sincerely,
AJ Merchant Risk Operations
I was trying to do this recently and I found this question with no luck because the Express Checkout with a Billing Agreement method is deprecated since January 1, 2017.
There is a new REST method called Vault payment methods that recently entered open beta and it's not in the official documentation (to this date), so I leave the link to Create transactions when your buyer isn't present, in case someone needs it.
The process it's explained in the documentation but basically, you need to create a payment token (the source can be a PayPal account or a credit card), and then use that token to capture the payment.
Related
Im trying set up recurring payment on my site by using Paypal Express Checkout. I did read through the official docs and I couldnt find anything useful related to recurring payment.
https://developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/add-paypal-button/
Im just wondering does Express Checkout support recurring payment? If so, how can I achieve that or Where can I get some good example to start with?
Thank you for your help in advance. Much appreciated
Cheers
We have a similar issue before. You might wanted to take a look at this thread.
I'm trying to understand the use case here. When you say recurring payment for express checkout,it has to be something a customer is buying regularly like restocking an item, in that case it's not an express checkout, it's a recurring purchase by a returning customer. They must have opted to restock at a regular interval like every 30 days, 2 months etc. They also must be registered users on your website.
So your logic must include — Checking all the customers who have set up an automatic purchase for an item.
—Check their frequency of purchase and charge them for the amount of the item at that frequency.
—For this purpose PayPal has a REST API :
This is the accurate place to look for to implement PayPal recurring payments:
https://developer.paypal.com/docs/api/payments/#payment_create
In case they also allow you to authorize payments through the following API
https://developer.paypal.com/docs/api/payments/#authorization
you could use it as well.
But at least this narrows down your choices in terms of regular payment authorization.
This API will allow you to request PayPal services to authorize payment on a regular basis for that customer. You will still have to have your own logic to check the 'subscription' for your products and the intervals.
—The CreateRecurringPaymentsProfile API Operation (NVP) at the link below looks to be for personal payments. For example something an Inventory Management System will do.
https://developer.paypal.com/docs/classic/api/merchant/CreateRecurringPaymentsProfile_API_Operation_NVP/
It's an API specific to adding recurring payments functionality.
Since you're a developer, PayPal Developers' Resources will answer any queries you have regarding the API functionality and usage. You will have to just know what to ask for. You are their B2B customer trying to understand their API system. You can also file a bug on their Developer portal if you're not getting proper answers.
I'm trying to find an answer of a general question.
I'm developing a webstore using Paypal (Express checkout) and Sagepay.
So, if in the report paypal confirms that the payment is actually done, e.g.:
PAYMENTINFO_0_ACK = Success
Do I need to worry if the user's card is valid, stolen, 3Dsecurity, etc., or PayPal takes care of all this?
Thanks
Essentially yes. Although I'm not exactly sure about that specific attribute you have given an example of.
If you send the item to the address given on the PayPal transaction and the transaction is not under review or pending, then you have what they call 'seller protection'.
This protects against hacked accounts or stolen card details etc.
It's a little difficult to find out on the PayPal website. https://www.paypal.com/uk/webapps/mpp/paypal-safety-and-security
Edit: If in doubt, contact PayPal. https://www.paypal.com/us/webapps/helpcenter/helphub/home/
Although it is sometimes very difficult to get providers like this to admit liability, it's a little more black and white with PayPal.
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.
I want to provide a question and answer service (I know there are thousands of such sites on the internet) to my users where someone can ask a question by specifying how much money they will give the person who provides a good answer.
When a good answer is provided, is it possible to take the money from the questioners paypal account and send it to the answering persons account automatically?
Basically, what I don't want to do is take payments from the questioner and hold it in my paypal account, then pay the answering person when his/her answer is accepted.
I will be using a LAMP configuration to make the service.
Neither the PayPal API nor the PayPal service in general provides for automatic person-to-person payments that are initiated by a third party. In other words, you must either be the payer or the payee in order to participate in a transaction; you cannot do it on behalf of another user.
Have you looked into PayPal Adaptive Payments API? From what I know it supports person-to-person money transfer. For more info visit
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_APIntro
Hope this helps.
You can use the PayPal Adaptive. Using this you can transfer money from one account to another account. Download the sample source code from GutHub https://github.com/paypal/adaptivepayments-sdk-php
I'd like to think wildly here (meaning not thoroughly so forgive me if there are mistakes). I think there are a few PayPal products you can consider. They do not perfectly fit, but here they are for your reference:
Auth / Order, Reference Transaction (aka RT), and Adaptive Payment (aka AP, but it doesn't fit your situation very much).
As I understand, your scenario would be like this:
The questioner posts a question, and agrees to pay a certain amount of money, say $5.
You don't want to hold the money. (hmm this is hard)
When a responder answers the question, and the question is selected as the best, the money is paid automatically from the questioner via PayPal.
With Auth / Order, it works like this:
The questioner "auth" you to take the $5. This money is NOT charged yet, but is still in the questioner's account. The amount can be honored too, just like you book a hotel. (Note you can honor the money for at most 29 days.)
When an answer is selected as the best and the responder is to be paid, you capture the money from the questioner. This way, they money is now in your account. (I know you don't like this...)
Then you pay the responder immediately. You can transfer money, you can use Mass Pay API, you can use PayPal Payouts API.
Well I know the best case would be that the money never appears in your account, not even a millisecond. But this is what I can think of, "immediately" is the closest to "not at all". Another problem with this way is, it's done in two steps, and in each step you or someone has to pay the fee. When you as the platform gets the money, you pay the fee, and then when you send it out, it depends on which product you use. But the good thing is, the money is never charged until it has to be charged. And it doesn't have to be charged if there is not a good answer at all.
With RT, it's similar to Auth / Order, it's an agreement between the questioner and you (the platform). The agreement lasts longer (2 years I think), but you still have to pay the responder, and you can't honor the money, meaning when you capture it, you may fail. Good thing is (or maybe this is the bad thing), you can charge the questioner many times with only one agreement.
With AP, it provides "Parallel" payment, meaning the questioner pays you AND the responder with only one payment, and you can share the payment with the responder, and you can decide who receives how much. You can also decide who pays the fee. But the problem is, the questioner has to be present to make the payment, so it's not done automatically without the questioner. (Express Checkout / EC does parallel payment too with some differences, also on the fee thing. So if you want to go AP way, you may also want to consider EC because it's a lot easier to integrate.)
I would go for Auth / Order. But maybe you can get in contact with PayPal merchant technical services and ask for more details.
https://ppmts.custhelp.com/
Or, here is the website of their documents:
https://developer.paypal.com/
Hope this helps.
Many posters have said that AP is a good choice. This is correct. You will need to request an application which provides an app ID once your app is approved by the vetting team. You apply here:
https://www.paypal-apps.com/
Provide as much detail as you can so that they don't have to come back to you with questions about your business, etc. Once it is approved, you can use the app ID provided and start development in a live environment.
If you want to get the API working while they review your app, you can use sandbox. https://developer.paypal.com/docs/classic/lifecycle/ug_sandbox/ I believe that the vetting team requires that you have a sandbox account / setup so that they can test your implementation once you are done.
Don't be fooled because you have ALL API permissions in sandbox. So if you forget to request a needed method like mass pay, you will not have that feature in live, even though it worked for you in Sandbox. If you need a feature, request it WHEN YOU APPLY. Otherwise, you will need to start a new app request. This isn't a big deal, but if time is of the essence, you will have to wait (usually 24 - 48 hours or so) for the app to be approved, barring any questions / requests that PayPal has for you.
Integration guide for AP:
https://developer.paypal.com/webapps/developer/docs/classic/adaptive-payments/integration-guide/APIntro/
API operations and operations for Adaptive Payments:
https://developer.paypal.com/webapps/developer/docs/classic/api/#ap
I'm trying to integrate a payment mechanism to my site. The scenario that I need is not trivial and can be explained by the following example:
User pays upfront for a subscription program (i.e. receiving Netflix). User is able to make changes to the subscription (i.e. change number of movies checked out each time from 4 to 2)
User is able to buy additional one time purchases via the provider's site (Netflix) supplied by 3rd parties. These items (i.e. popcorn, snacks) get billed to the same credit card as the subscription without having to go through the process of resubmitting the credit card information.
Of course, my site takes also a small fee for the transactions :-)
I was wondering if this is supported by PayPal, Google Checkout or someone else.
Thanks.
The Paypal api can handle all of those processes.
I seem to have dropped the ball on what kind of answer you wanted so I'll leave it at that.
If you have some feedback, more direct questions I will try to answer as much as I can
--
The money would best go through you first, unless somehow you can convince your customers its normal to bill them per item. Also if they pay by credit card you should only bill them once as you would incur fees on every payment. I don't know of anyway to bill once but distribute the payments.
As for the paypal docs..
Very good resource, there is also some sample code for most major web languages
Also this will get you started if you don't have a developer login
Their developer support is also pretty good. One thing a lot of people seem to screw up when starting out with the paypal api is not setting the latest version in the configs so don't forget to update that to the latest release. :)
Disclaimer..
Yea I know there is a lot of bad press about paypal and crazy stuff happening, but they do get the job done most of the time, its not my fault the customers love to use it.