I have read a lot of stuff and spent hours on studying the PPs API.
There is one thing I don't understand and would like to know how can I do this.
When sender sends money form the bank account (not cc) it's called echeck and it takes up to 5 days.
In some places I can see that people say
you can't cancel echeck once it's approved. you can only ask seller to cancel your request/ payment.
but on some other sites I can read
buyer can cancel transfer any time, so do not ship the items untill you get final confirmation.
So what's the final answer here, can the buyer cancell the echeck/ transfer or not?
What if they approve it, but after one minute get rid of all the money form the account, and there is nothing they can be charged for?
And the second question: I can see that in the account setting you can disable acceptance od echecks. but how can this be done via API? I mean on my website I will have different sellers and I can't check if they have echeck enabled or not, so I would like to block echecks automatically via api. So, how can I block echecks using API
Buyers can't cancel an eCheck once they've initiated it. They would have to request a refund from you after the eCheck completes. (P.S. -- it's always a good idea to wait for the eCheck to complete before giving the buyer their goods. Just because an eCheck was initiated doesn't automatically mean that it will clear -- the withdraw from their bank account could still fail.)
If you're using Express Checkout, you can set PAYMENTREQUEST_0_ALLOWEDPAYMENTMETHOD=InstantPaymentOnly to disable eChecks.
Related
having an issue.
I want a way to do a paypal transaction automatically when the paypal IPN sends a notifications.
To give some context.
I am developing a online seat booking system (school plays etc.) and have implemented a paypal button to buy the seats once you click your seats but i want to have a way for the paypal transaction to timeout so that the booked seats can be made available again if the payment doesn't go through.
so what i have currently is a time stamp on the booked seats that gives 10 mins before they are available again. But the paykey (i think i have that right) is still valid. so the first person could (in theory) go back and pay for the seats, therefor the seats are booked out twice.
so on my IPN i have a check to see if the booking is timed out.
And this is where i am, what code can i use to issue a refund in that case?
thanks
You can call paypal refund API:
https://developer.paypal.com/docs/integration/direct/payments/refund-payment/
I would also suggest that you have check on your website when someone clicks on Pay to see if the session is expired so that payment is never done. If you implement the solution where you will call refund based on ipn you will end up paying transaction fees anyways and customer experience will also be below par.
I am using paypal to handle subscriptions to my website and am concerned because PayPal emails users each month when their payment is sent. I realize this is very transparent but I see it as detrimental to my business. Other subscription services I purchase don't send me an email each month reminding me that I am paying them and how to cancel. I'm not trying to hide the fact that I am charging my users but I also don't want paypal activelty reminding them that they are paying money and giving them a link to cancel their accounts.
Does anyone know how to stop automatic emails from being sent from the merchant end or can it only be done by each individual user?
If it can't be done does anyone know of other services I can use to run my subscription billing that give me that control? Thank you!
I currently manage 3,000+ subscriptions via PayPal and have used PayPal for subscriptions for three years. You are correct, this is for transparency. I've never seen the option to disable this, and I doubt PayPal would ever offer it. You'll learn that PayPal is much more interested in catering to buyers than sellers. They keep the buyer happy to the detriment of the seller. For example, PayPal recently reversed 7 months of subscription payments because the buyer called into PayPal and claimed it was unauthorized. We keep plenty of records to prove this isn't true, but PayPal consistently rules in the buyer's favor regardless (we have, yet, in three years to "win" a claim against us). There is very little protection for sellers of digital goods.
Depending on how you decide to run your business, the payment reminders can be used to your advantage. I often receive emails from buyers who claim that they've canceled, yet, we've charged them again, or, they claim they've been charged for months and didn't know it. Thanks to the emails from PayPal, I know, without a doubt, that they were notified each time they were charged, and that if they had actually cancelled, they wouldn't have been charged.
There are many other payment processing services like PayPal that are more "hands-off", but their rates are equal or greater. The only one I've found that's comparable is Payza. Again, there are others, but you have to weigh the benefit of full control (including being the help desk for payment issues), and higher rate, versus PayPal's practices.
Hey guys was hoping you could help me out.
I am integrating paypal (for the first time) in a website using PHP. From what I have read, there are two methods for confirming a successful transaction, PDT and IPN.
Now the thing is, the item's being sold can have a limited stock. So if suppose a person reserves an item and is taken to the PAYPAL site for final payment, I have to stop all other people from making a purchase since the last piece of the item will be "reserved".
But suppose the person (who has reserved the final piece of the item) goes to the paypal page, and then simply closes it. Will this result in a "fail" ipn coming to me (so I should un-reserve the item so others can buy)?
If so, how long will it take for the failed IPN to come?
If not, how exactly should I handle this.
And is there any scenario where an IPN does not come?
You could use the Express Checkout API.
With EC, the payment is a two step process. In the first step, you make an API call (SetExpressCheckout) where you set up the transaction, and redirect the buyer to PayPal. Once there, the buyer authorizes the payment, and returns to your site.
At this point no money has changed hands. You need to make a second API call in order to capture the funds (DoExpressCheckout).
You can hold the item for a specific period, and if the buyer abandons the transaction, or is very slow to approve the payment, you can release the item back to the public. If he eventually approves it, and does come back to your site, you would simply skip the second step, and inform the user that his transaction timed out. No money changes hands, no items are double sold.
I want to make payment process in 2 step , in first step paypal should collect fund from user account but not transfer to the merchant account .
when i send another request with sucess action at that type paypal should transfer fund to merchant account or if i pass fail action then paypal should refund to user.
is there any way to do this ?
i reefer following URL but cant find solution .
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_WPECIntegration#id0861K0T0WY4
Express Checkout is what you want, but there's better documentation available.
Basically, what you're after is Authorization and Capture. When you create your Express Checkout API requests you'll set the PAYMENTACTION to Authorization. Then, when you're ready to process the payment you call DoCapture and pass in the transaction ID you get back from Express Checkout.
No money is processed until the DoCapture call is processed. If you don't end up needing to process it you can simply do nothing, but that would strand the authorization on the user's account for the default period of time depending on their bank. Usually 30 days.
It's a better practice to call DoVoid at that point, which would cancel the authorization and release those funds back to the user's account immediately.
If you want to do the same thing with credit cards directly you can use Payments Pro. The process is almost identical, except there are actually fewer calls involved.
If you're using PHP I would recommend taking a look at my PHP class library for PayPal. It'll make all of this very simple for you, and I can provide 30 min of free training to help you get going if you want, too.
I'm having some trouble choosing between PayPal's Instant Payment Notification (IPN) and Payment Data Transfer (PDT).
Basically, users buy a one-off product on my site, pay on PayPal, and return to my site. I understand how IPN works but I'm now seeing that I might be able to trigger the various actions that take place after a successful purchase more easily with PDT, as the data gets returned there and then (as opposed to needing a separate listener).
However, PayPal's PDT documentation contains this cryptic line: "PDT is not meant to be used with credit card or Express Checkout transactions." ... but I can't find anything further whatsoever on the topic.
Are credit cards REALLY not meant to be used with PDT? I would like more than a sentence.
Does that mean that a user must have/create a PayPal account to pay?
Does it mean that if I want to allow users to pay with their PayPal accounts AND/OR with credit cards directly, I must implement IPN?
Could anyone who's gone through this kindly shed some light?
The APIs for PDT and IPN are similar. The main difference is when you receive the notification. For that reason I would recommend implementing both.
With PDT you get the notification instantly and can do any additional processing required and show the user a confirmation page.
With IPN you are guaranteed to be notified that the payment was received even if the user's computer explodes before it can send you the PDT.
Implement both and get the best of both worlds. But if you're only doing one, IPN is the reliable one.
One catch: if you implement both then there's a chance your payments could be processed twice. Take care to ensure that doesn't happen. The application I wrote handles the PDT and IPN almost identically (the backend part is the same) and that code acquires a per-web-user lock in the database, so that if the same user tries to submit the exact same payment multiple times it can only be processed once. Once processed the result of that process is re-used for any subsequent attempts to process it.
Edit
One more thing: IPN carries more information than PDT. There are lots of different messages that you can receive from IPN, such as chargeback notification, etc, and thus you really should implement it.
PayPal's PDT system sends order confirmations to merchant sites that use PayPal Payments Standard and lets them authenticate this information. Such sites can then display this data locally in an "order confirmation" page.
When to Use PDT?
IPN provides the same capabilities described above. So, when should you choose PDT instead of IPN?
With PDT, your site is notified immediately when a customer completes payment. With IPN, however, there is a material lag between the time a customer completes payment and the time your site receives notification of this event.
So, use PDT if your site includes a feature that requires immediate payment notification.
For example, consider a digital music store. With PDT, this store can let customers download their purchases right away since PDT sends order confirmations immediately. With IPN, such immediate order fulfillment is not possible.
Advantages of IPN
PDT has a a major weakness: it sends order confirmations once and only once. As a result, when PDT sends a confirmation, your site must be running; otherwise, it will never receive the message.
With IPN, in contrast, delivery of order confirmations is virtually guaranteed since IPN resends a confirmation until your site acknowledges receipt. For this reason, PayPal recommends that you implement IPN rather than PDT.
Another advantage of IPN is that it sends many types of notifications, while PDT sends just order confirmations. So, using IPN, your site can receive, for example, chargeback notifications as well as order confirmations.
Note: If your site must be notified of payments immediately, you can implement both IPN and PDT. However, if you do, your site will receive two order confirmations for each sale. As a result, you must be careful to take action (say, ship a product) on just one copy of a given confirmation message.
Documentation Here
Re 1. PDT is meant to use with Auto Return for Website Payments feature. Auto Return redirects to PDT site after paying money to seller. Unfortunately it's not possible to use that feature along with PayPal Account Optional - used to enable Credit Card payment. Here is note from PayPal: 'If you have turned on Auto Return and have chosen to turn on PayPal Account Optional for new users, a new user will not be automatically directed back to your website, but will be given the option to return.'. User will have an option to go back to your site(PDT step) or stay on PayPal site. To sum it up when paying by Credit Card user can skip PDT step if user will not click 'return to store link'.
Re 2. It is up to you what paying options do you want to allow. If you want to allow paying without a PayPal Account you can enable Account Optional. If you want to allow only users with PayPal accounts disable that feature. There might be more options.
Re 3. In your case you need to trigger action after successful purchase. Recommended way would be to implement IPN. PDT doesn't work for all cases and doesn't guarantee message delivery. Here is link to doc covering that topic PDT vs IPN.
This is an old question, but my simple answer would be - Why not use both PDT and IPN? They will work fine for card transactions.
PDT can provide the immediate transaction status to your website, where you can quickly check the payment success or failure status and provide the user with appropriate message.
Meanwhile, you can await the full verification from IPN in the background. Once received, you can use this to further update your DB and process the order.
You can follow this step-by-step guide which I found to be very clear and helpful - and it's still valid in 2018.
https://www.codexworld.com/paypal-standard-payment-gateway-integration-php/