Satys
Satys

Reputation: 2425

We’re sorry. This seller doesn’t accept payments in your currency

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();
    }

Upvotes: 7

Views: 27083

Answers (9)

Raghavendra N
Raghavendra N

Reputation: 3697

If you are accepting the payments in USD, then you cannot pay using the Indian accounts. I was using the Indian sandbox account. (But it showed the paypal balance in USD. So it was confusing.)

So I created a new sandbox account with country as United States. And with this account I was able to make the purchases.

Please check the screenshots -->

Creating new Sandbox account: enter image description here

US Sandbox account: enter image description here

Upvotes: 0

deadcoder0904
deadcoder0904

Reputation: 8683

For me, changing country worked. My country was set to India but I changed it to US by creating a new Business Account.

I also changed what is said here.

Maybe these 2 things worked.

I am using a Business account to buy things so I don't think you need to use Personal account either to buy things. You can just buy using Business account. It just needed to be from US & the backend part should be also accepting US which you can do by loggin into sandbox.paypal.com with the login & credentials from the seller side.

Upvotes: 0

Freelancer Rony
Freelancer Rony

Reputation: 47

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

Upvotes: 0

Hayatullah Farahi
Hayatullah Farahi

Reputation: 91

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.

Upvotes: 2

into lap
into lap

Reputation: 53

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!

Upvotes: 1

Saurabh Kataria
Saurabh Kataria

Reputation: 339

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

Upvotes: 2

Mohammed mansoor
Mohammed mansoor

Reputation: 819

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!

Upvotes: 4

khilendra kumarsahu
khilendra kumarsahu

Reputation: 21

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.

Upvotes: 2

Ankit Beniwal
Ankit Beniwal

Reputation: 529

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.

Upvotes: 5

Related Questions