I'm having a real headache with these damn Adaptive Payments for PayPal! So far, I've got it working - but now I'm trying to resolve some issues with it.
Why on earth don't they just let you request a payment in the sellers currency? I'm acting as a 3rd party system for people- so they list on my site, and then the buyer purchases from our site - but the money gets sent direct to them (via our account, with Adaptive payments - so we can do IPN requests). The problem here, is that not everyone will use the same currency.
To get around this, I've been using the ConvertCurrency feature ( https://developer.paypal.com/docs/classic/api/adaptive-payments/ConvertCurrency_API_Operation/ ). This works OK - as I can then give the prices to the buyer in their desired currency.
However, when I then send to paypal to make the payment - it requires multiple payments (at once) to be done in just 1 currency. So for example, I have:
Seller 1- $50 US
Seller 2- 10 EUR
I convert those into GBP, which gives me say £30 and £8 - so a total of £38. This payment goes through, but the problem arises when the IPN gets run. If the person receiving the funds hasn't already setup the account to accept in that currency, the get a message about "accepting" the funds, as seen here:
https://www.paypal.com/uk/cgi-bin/webscr?cmd=p/sell/mc/mc_receive-outside
Until they have decided on what to do there, I can't do squat with the payment - as it comes back with the status:
'transaction[0].pending_reason' => 'MULTI_CURRENCY',
I know for a fact the buyers are not going to like having to wait for a confirmation of their order. Why can't I just get it to accept in that currency, and convert automatically into their primary currency?
The other bad thing about this, is that I doubt the seller is going to be the amount they expect. PayPal are going to take their commission when doing the conversion 1 way, and then again when the person receiving it goes to convert it into their own currency.
How does eBay, etsy and other large sites that offer multiple purchases handle this? Its driving me up the wall!
Ok, well its not really a "solution", but its the route I'm going to have to go down - as I can't see any other option.
Now, I'm storing the converted amounts into my DB, and then showing those to the buyers (these numbers are updated via a cron, 2 times a day).
The buyer then gets shown the prices in their own currency, but when they go to paypal it actually asks for the money in the sellers currency. This means that the artist will always have the correct incoming currency, and I will not get that annoying issue.
If all goes to plan, the price the buyer see's on our site, should be the same as the amount they get charged,as I'm using the ConvertCurrency API to convert the amounts into the most up to date prices.
Hopefully this helps someone else, if they come across this post.
Related
Is there a way to programmatically deny (or "unclaim") a direct PayPal payment?
Let's say someone sends ten payments of $1 each to a corporate account. This is already an accounting headache, but if you think you can refund them as they never happened, there's a non-refundable part of a commission. Ten payments will cost you $3 USD or about as much in other currencies no matter what. This is infinitesimal amount business-wise, but related accounting expenses can be ten or even hundred times as much depending on which country a business in.
So best case would be to reject such payments before they even happen.
I read about IPN notifications, but nowhere there's mentioned a possibility to respond to a specific payment event with some sort of refusal. Yet I saw sometimes my own payments made by using standard "Pay Now" buttons to some merchants were tagged as Unclaimed until a manual intervention from the merchant. Therefore there must a be a way to do this.
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.
I'm a freelancer and I'm negotiating with a potential client for a full e-commerce website using PayPal Payment Pro.
They want to list and sell everything from cheap fittings/fixtures to very expensive furniture on there new website.
It's a BIG job, and everything would be designed and developed bespoke. Right now were at the £2,500 mark, but I don't think they're going to agree... However, I had a thought.
They make a great profit just from instore sales. I'd be happy to reduce the design/development price by 50% (to possibly 65%) if they agree to give me 3% to 5% of all online sales.
My question is, how would I do this with PayPal Payment Pro?
I can record all online sales and invoice them for 3% to 5% each month, but I'd rather it be done automatically. I can't find any documentation on how to do this, any ideas?
What I would recommend is integrating Express Checkout and Pro into the website like usual, and then install Instant Payment Notification on the server to automate payments from the website owner to you.
Within the IPN script you can setup a Pay API request that submits the payment from the website owner's account to your account accordingly. You can calculate your commission from within this based on the order total and push the funds to your account.
IPN occurs in real-time (or at least generally very close to it) so the procedure would be completely automated at that point and you would get your commission payments immediately when each order goes through.
I integrated PayPal in my web shop in order to allow instant payments with automatic product delivery (already had this before but only with instant wire transfers via sofort.com). I integrated it with the help of the example provided by PayPal (I'm using ReviewOrder.php, GetExpressCheckoutDetails and DoExpressCheckoutPayment).
It's working great if they pay with PayPal balance or a linked credit card. However, some customers from Germany don't have balance in their accounts but only a bank account linked to their account. The payments go through and they receive their product, however I noticed the payment status would remain "Pending" for 1 month and change to "Expired" afterwards, so effectively no money arrives.
Why is this happening? Or is there any way to deny such payments? (Payments from backup funds)
Any help would be appreciated.
Its hare to day with out looking at the transaction specifically. But there are several things that can cause your payment to be pending, such as your preferences that you may have set in the account. Check to make sure you dont have your preferences set to ask me before accepting a payment in a currency that you do not hold. Did the buyer pay with an eCheck? If so, it could be waiting for the payment to clear. If this is in the sandbox, you have to manually clear the payment. If you are still not able to determine the cause of the pending payment, if you provide the transaction id, I will check it on my end.
Hey guys I managed to find a solution to this odd problem after all.
It turned out I had the following code in my implementation where I actually initialized the payment process:
$_REQUEST['paymentType'] = "Order";
This was a mistake though, since this payment type won't place a hold on the funds and if the DoCapture call is never called this payment will remain pending for about one month and then expire entirely (as described in my question, so this is what actually happened to me). The bad thing is that it's impossible for such payments to even accept them manually from within PayPal (not even the local PayPal phone support was able/wanted to accept these payments for unknown reasons because they told me they'd come up with a solution and contact me via Email within 24 hours but they never did).
So in order to fix this issue I changed the payment type to Sale which instantly captures the payment rather than waiting for sort of approval or a capture call. It worked fine for two weeks now and I think I'll leave it like this now.
$_REQUEST['paymentType'] = "Sale";
I lost about 110€ because this stupidly trivial detail but at least it's working fine now and I was able to re-enable PayPal as a payment form. I hope they'll at least add an option to manually accept these payments if the DoCapture call was not implemented because it worked fine without it for most of the payments as well and after all this is still about real money, so this absolutely would be an essential thing to have....
This can happen also if you are trying to accept a payment in a different currency of your account. To avoid that you must create a "PayPal balance" in the currency of the payment.
IPN is also giving hints on the pending reason in this case:
[pending_reason] => multi_currency
Does anyone know a way to get the currency exchange rates for paypal?
We have custom shopping cart and use Paypal (Website Payments Standard) to handle payments.
Our 'home' currency is Euro, but we would like to present our customers the option to pay in different currencies (USD, CAD, AUD and GBP).
PayPal offers the option to:
a) automatically convert our Euro quoted prices to, for example, USD upon checkout
b) checkout in USD directly
With option a):
We get paid in Euro, the customer pays for the currency exchange (good).
The customer does not know what he/she is going to be charged in USD until checkout. (bad)
With option b)
The customer pays in USD, then the currency is converted into EUR and we pay the the currency exchange.
The customer never has to worry about the different currencies (excellent)
We do not know the exchange rate PayPal is going to use so we cannot quote the correct prices to our customer (showstopper)
So my question is:
Does anybody know a way to get the PayPal exchange rates?
or
Does anybody know how to make a good estimate?
Update:
PayPal updates it's exchange rate 2 times a day. (at least, that is what they state). They use the Interbank Exchange Rate provided by ??? and add a 2.5% spread above this rate to determine their retail foreign exchange rates.
Unforunately, there the Interbank Exchange Rates vary from source to source and from minute to minute.
We have been monitoring the PayPal exchange rates and cross referenced them with the Official reference rates provides by the European Central Bank. the results vary widely, somewhere from 1 to 6 ! percent...
https://www.paypal.com/us/cgi-bin/webscr?cmd=_convert-currency-withdrawal is a (needs login) page on Paypal where you can perform currency conversions at Paypal's rates.
I just found this:
https://www.x.com/thread/38451 (This link is now broken)
so it look like there is something you could use
https://www.x.com/docs/DOC-1400 (This link is now broken)
https://www.x.com/docs/DOC-1401 (This link is now broken)
I also found this
http://apipay.net/easyapi/index.php?sid=paypal&id=nvp_adpay&ac=convertcurrency (This link is now appears to be broken also)
and there is someone that already posted a question about that
PHP example for PayPal Adaptive Payments ConvertCurrency API
Regarding getting a good estimate; PayPal says here that they base their rate on the "Interbank Exchange Rate" and that "Customers may use these rates as a reference".
However they of course go on to say that these rates are not guaranteed, and if you want the precise rate you need to see what rate they apply in the transaction.
I am not aware of any way of obtaining the precise rate programmatically.
I suppose you could make your own payment of $0.01 every day and observe the exchange rate applied - but even that assumes they only update their rate every day.
I contacted their customer service and they explained, that at least in my region, they added 3.5% over the XE.com exchange rates. I was able to hand this to my accountant and use it as evidence of a tax-deductible business expense.
Their exchange rates are ~10% off the daily spot rates in the currencies I use (THB/USD). And although I have USD bank accounts they refuse to transfer USD to my USD accounts. Not sure if that is their policy for all countries / all currencies though, but for THB/USD they are inflexible.
Another thing to be aware of when using paypal - their "seller protection" is limited depending on what you sell and through what channels. In other words, you need to do a certain amount of fraud checking yourself to avoid shipping to customers who have used stolen credit card #s.
As you say, they base the "PayPal exchange rate" on the "recent currency conversion rate". In my experience, they add 3-4%.
The only place I found to get the PayPal exchange rate is here but it needs you to be logged in.
I've created a publicly visible Google doc that lists the historical rates.
This allows you to track the PayPal exchange rates so that you know when best to withdraw or transfer your money. Please contribute to the data by adding today's rates into this form.
If you are strictly interested in conversion from and to Euro, the European Central Bank has a public (and free) xml document that is updated daily:
http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
Parsing it is easy:
$XML=simplexml_load_file("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
foreach($XML->Cube->Cube->Cube as $rates){
if($rates["currency"] == 'USD'){
$rate = ''.$rates["rate"];
// do your thing with it here
}
}
I found paypal adaptive payment service to integrate currency exchange rates on website but it is not working correctly on live account. You can go through the details from the link https://developer.paypal.com/webapps/developer/docs/classic/products/adaptive-payments/
Well, the following service should be useful for the conversion: http://rate-exchange.herokuapp.com/. Our company uses this for many live projects including an Chrome extension which seems running so far.