6

I am trying to integrate paypal, but stuck with this error.

We’re sorry. This seller doesn’t accept payments in your currency. Please return to the seller and choose another way to pay.

The currency I am setting is USD. I have not blocked it and I have added it into my account.

enter image description here

enter image description here

Here is the code, I am using PHP.

 $transaction_value = $this->payment_detail['amount'];
    // $this->response($transaction_value);
    $apiContext = new \PayPal\Rest\ApiContext(new \PayPal\Auth\OAuthTokenCredential(PAYPAL_CLIENTID,PAYPAL_SECRET));
    $payer = new \PayPal\Api\Payer();
    $payer->setPaymentMethod('paypal');

    $amount = new \PayPal\Api\Amount();
    $amount->setTotal($transaction_value);
    $amount->setCurrency($this->payment_detail['currency']);
    // $amount->setCurrency('INR');

    $transaction = new \PayPal\Api\Transaction();
    $transaction->setAmount($amount);

    $redirectUrls = new \PayPal\Api\RedirectUrls();
    $redirectUrls->setReturnUrl(PROTOCOL.base_url().'pay/api/process')
        ->setCancelUrl(PROTOCOL.base_url().'home');

    $payment = new \PayPal\Api\Payment();
    $payment->setIntent('sale')
        ->setPayer($payer)
        ->setTransactions(array($transaction))
        ->setRedirectUrls($redirectUrls);
    try {
        $payment->create($apiContext);
        // $this->response(array("paymentId" => $payment->id));
        header('Location: '.$payment->getApprovalLink());
        exit(0);
        // echo $payment;

        // echo "\n\nRedirect user to approval_url: " . $payment->getApprovalLink() . "\n";
    }
    catch (\PayPal\Exception\PayPalConnectionException $ex) {
        // This will print the detailed information on the exception.
        //REALLY HELPFUL FOR DEBUGGING
        echo $ex->getData();
    }
Dharman
  • 30,962
  • 25
  • 85
  • 135
Satys
  • 2,319
  • 1
  • 20
  • 26
  • Don't you just love working with the paypal api's ;) ... wish I had an answer, but this is one of those 'hit or miss' error messages some of our customers get, when their accounts are seemingly 'ok'. Its almost like paypal randomly targets certain accounts to toss this error too. And most times the customer fixes it by adding a credit card as a secondary funding source. Go figure. – IncredibleHat May 20 '18 at 19:12
  • @Satys Did you solve your issue? If so please let me know – Shubham Agrawal May 20 '19 at 17:09
  • @ShubhamAgrawal, as I remember, I couldn't solve it, so moved to RazorPay, it didn't give any issue. – Satys May 21 '19 at 09:10

7 Answers7

4

So I found a way to solve this problem.

Simply log in to the merchant account probably a sandbox account (Example: someone-facilitator@domain).

Then open settings page by clicking on the gear icon at the top right corner of your dashboard.

Now, From left sidebar click on "Selling Tools" and then on "update button" in front of "Block Payments" under the "Getting paid and managing my risk" Section.

Refer to the image attached.

Settings page - Screenshot

Now In the "Preferences for receiving payments" Section, choose "Yes, accept ...." for the question "Allow payments sent to me in a currency I do not hold:".

Preferences for receiving payments - Screenshot

That's it.

Ankit Beniwal
  • 509
  • 7
  • 18
  • 1
    Hi,I have switched my setting as you mentioned above to follow but after doing this all stuff error does not go. – K.S Oct 23 '19 at 06:37
  • Same comment as above -switched to 'YES' and still getting the same error , and still waiting because these things sometimes take a while ;) – Jorge Al Najjar Aug 27 '20 at 15:21
4

I had the same problem. There's no need to worry about it. It's working totally fine. I called Paypal Customer support and they explained that for an Indian Paypal seller account to receive the money you need to set currency in USD and then only Non-Indian Accounts can make a purchase through it. If you set the currency as INR then only Indian accounts can make payment to you. You created a different account but still, you created it from India only using login credentials so it's still an Indian account. If you want to test then test from an account of someone who's not from India or not living in India. It will work properly fine.

Cheers!

Mohammed mansoor
  • 743
  • 3
  • 11
  • 18
2

You can receive payments for India in INR & outside India in USD. Refer to this doc from paypal:

https://www.paypalobjects.com/digitalassets/c/website/marketing/apac/IN/enable-inr-for-merchants/enabling-inr-payments-direct-website-ec.pdf

Saurabh Kataria
  • 319
  • 3
  • 3
1

I have also got this types of issue and tried to change all the settings as per suggestions but its not gone. After that I changed website used currency USD to INR then re-tried and now it's working. So I'm thinking that integrated payment currency and receiving account country currency must be same.

Well it's solved for me but logically this restriction is wrong. Please do any thing for this issues Paypal Developer Community.

1

I also encountered this same issue during my WooCommerce store setup using PayPal payment gateway. I own a Indian PayPal account where I want to receive USD from customers outside India as well as local payments in INR.

1) Full KYC verification with PayPal to be done to enable domestic and international payments. If not done, it is prompted at top of your paypal account when you login.

2) Allow international payments from your merchant paypal profile. a) Login to your PayPal account. b) Go to Settings > Selling Tools > Block Payments by clicking "update" link corresponding to this option. c) Select "Yes" option for "Allow payments sent to me in a currency I don't hold." d) Select "Yes" option for "Block accidental payments". e) Save the settings if not automatically saved.

3) Add the necessary currencies to your PayPal account, it's free :)

The bottomline is when an Indian customer ses the same product one should see in INR to accept payments directly in INR into merchant's PayPal account. But again when a customer make purchase outside India, he or she should see a currency of their country if you set up separately OR in USD as common for all non-Indian customers.

So, in this particular case of WooCommerce you need a switch currency mechanism enabled on your website before sending the request to PayPal. So, I solved this issue after PayPal guidance using a currency switcher plugin on my WooCommerce store.

PayPal's email to me explaining the above

Many thanks to PayPal merchant support!

into lap
  • 43
  • 5
1

Create two new SandBox accounts one Personal and another Business choose USA as Country/Region for both accounts. While doing the payment, use the credentials of the personal account. It will solve the problem.

0

Actually currency has no issue here

the main problem is sandbox account

if you used api keys from any sandbox business account then you must try to pay with another sandbox business account then you will never face this issues.

but if you try to use sandbox personal account to pay then you will face this problem.

thanks