We operate an application that utilizes PayPal's Mass Payments API to handle bulk payments of our users' customers. We have a listener set up to handle the IPNs for these payments, and process the successes/failures accordingly.
Recently, we discovered that one of our major clients had mistakenly disabled IPNs from their PayPal account, causing a large number of Payments to not have their final status in our application. While the "Resend IPN" option was available, is there an API or anything we can call out to to check payment status for these without relying solely on IPNs?
You could try this , but you need sufficient access to that particular account which means the account holder have to grant you the permission to view the transaction.
Related
There are multiple malicious users attempting to pay using a single compromised PayPal account. Since this is detected later, I would like to block these PayPal accounts from purchasing from me again. Of course, I block them on the application level but they create new accounts using VPN and valid but compromised email addresses. I cannot block a PayPal account on my application since I receive an IPN after the payment is processed.
According to this I can block a contact from making purchases/sending messages etc. Is there a way to do this using the API for a merchant account?
As an alternative, I could probably issue a refund after checking the buyer information on the IPN but I would rather find a more "official" solution to this.
We're running a marketplace with merchants that sell services to customers. Payments go directly from the customer to the merchant, and our server facilitates this, through the Authorize & Capture mechanism in Paypal Express Checkout.
In checkout, when the customer's Paypal is authenticated an authorization is created, and at the end of the interaction with the merchant the payment is captured by our server on behalf of the merchant.
There is, however, a back door enabling the merchant to intervene directly on Paypal and to capture the funds in the pending authorization before the order is completely delivered. We'd like to prevent that, or at least insert a notice somewhere in the merchant's Paypal account not to capture the payment, and to instead let our server do that for them when the order is delivered. Any ideas?
Normally, you can't do that. But you can read IPN Paypal message to know if transaction are effectives. Take a look to Paypal IPN Guide, retrieve informations and compare to your informations database transaction to check if all is right.
Is there any need to use IPN with
1. EXPRESSCHECKOUT (SETEXPRESSCHECKOUT => DOEXPRESSCHECKOUT)
2. RECURRING PAYMENT (SUBSCRIPTION)
It depends on how you operate your business...
If you ship physical goods, then, of course a human will check if you received a payment before you send the goods to the customer...
But with digital goods it's another story, you want to deliver the digital content as soon as you get the payment in your account. That's the main usage for IPN. If you get the IPN confirmation, you fire an email with a download link directly to the customer's email.
Other use cases would be, automate tasks, like accounting, mailing, renewing subscription status, reverting all you need to revert in case you get a payment cancelled notification, etc.
Yes, IPN can be very useful with any PayPal transactions. It is simply a POST of transaction data sent to your listener script on your server. This script receives the data and can process it however you wish, which allows you to automate tasks like updating databases, sending custom email notifications, hitting 3rd party web services, etc.
IPN works with all transactions once you have it configured, so you can use it to process payments, refunds, disputes, cleared e-checks, subscription payments, canceled profiles, suspended profiles, etc.
Whether or not you need to utilize it is up to you and your project requirements, but it is indeed very useful for Express Checkout, Subscriptions, and any other transaction types.
When I integrate PayPal with my sandbox test account, all transactions I create via the DoExpressCheckoutPayment API call, or PayPal's new /execute REST call are pending and I have to manually accept them, or I have to wait 3-5 days. Why?
This would occur for both live and test transactions and depends on several factors.
PayPal will set the transaction to a 'pending' state if:
The currency you are sending the transaction in is not a currently configured currency on your account
'Payment review' is enabled on your sandbox test account
PayPal deems the live transaction requires manual review by a PayPal analyst
The live or test transactions flags one of the Fraud Management Filters you have set up in your account, and the default action for the filter is set to 'Review'.
Your buyer uses a non-instant funding source
1:
This usually happens if you create a US PayPal test account, and send transactions in GBP or EUR (or any other non-USD currency).
By default US accounts are configured to accept USD and asks you - the merchant - if you want to accept transactions in any other currency. For non-US accounts, they are typically configured to accept payments in USD and the currency of the country you're registered in (i.e., USD and GBP for British accounts, USD and EUR for Irish accounts).
If you want to change this behaviour, log into your live or test account, go to the profile, 'Payment receiving preferences', and change from "Ask me" to "No, accept them and convert them to [your primary currency]."
Alternatively you can go to 'Currencies' and open a new currency balance within your account.
2:
In order to ease the testing of pending transactions, PayPal's developer site allows you to enable specific sandbox (seller) accounts for 'payment review'.
Payment review will mean that all transactions sent to that account will be held for manual review. When payment review is switched off, all transactions are released and are completed.
This is functionality intended to simulate the live behaviour as explained in point #3.
You can enable or disable payment review via https://developer.paypal.com > Applications > Sandbox accounts > Click the little arrow for the business account > Profile > Settings.
3:
For live transactions, PayPal may opt to hold transactions for manual review.
This is more of a policy question, so I won't delve too deeply into it, but essentially PayPal deems it more risky than other transactions, thus requiring manual review by a PayPal analyst.
Once this review is completed, the payment is either completed or denied.
It's good practice to integrate with PayPal Instant Payment Notification, so you are notified whenever an action occurs on this transaction.
4:
PayPal offers a product for PayPal Website Payments Pro accounts called 'Fraud Management Filters'.
This products lets you selectively apply filters to your Pro transactions (those initiated via the DoDirectPayment API call).
For example, you might want to automatically deny or review all transactions where the IP address is known to be risky.
If you have enabled this filter, and the transaction triggers this filters, the transaction may be set to pending until such time you take an action on the transaction (either rejecting or accepting it).
For more information about PayPal's fraud management filters, I highly suggest reading the Fraud Management Filters guide at our developer site.
5:
Your buyer might have used a non-instant funding source such as a bank transfer or eCheck.
This may take 3-5 business days to clear and for the transaction to be marked as 'completed'.
If you're integrated with PayPal IPN, you will receive IPN message at the time of the transaction having been completed.
If we use a paypal buy it now button, how are we notified that a user has completed their transaction?
I'm guessing there is a way other than checking our email and past transactions?
I'm language agnostic at this point, so any sample code would be a great help
Thanks
Paypal has a system called Instant Payment Notification.
Instant Payment Notification (IPN) is a message service that notifies you of events related to PayPal transactions. You can use it to automate back-office and administrative functions, such as fulfilling orders, tracking customers, and providing status and other information related to a transaction.
The linked page should have all the information you need to get set up.