Upgraded docs version is here ✨

Your documentation experience is getting an upgrade. Check it out now!

Go To Beta

Docs upgrade is here. Check it out!

Go To Beta
API ReferenceIntegrationsKnowledge Base

International Payment Support

You can accept payments from your customers in more than 100 foreign currencies using our Payment Gateway and other products such as Payment Pages, Payment Button, Payment Links and Invoices.

Razorpay supports 3D Secure 2.0 for international cards.

Watch Out!
Your international payment will fail if you send us a dummy email id and phone number of the customer.

Registered Businesses🔗

If you are an eligible, registered business with a valid website, you can accept international payments made using:

  • Cards issued by domestic banks or foreign banks
  • PayPal

Unregistered Businesses🔗

If you are an unregistered business, such as a freelancer, you must integrate PayPal to accept international payments.

Watch Out!
Wire transfers and netbanking payments made from foreign banks are currently not supported.

Enable Payments from International Debit and Credit Cards🔗

To enable international payments for the first time, you need to place a request from the Razorpay Dashboard.

Feature Enablement
International payments are prone to a higher risk of fraud and chargeback. We can enable this feature after approval from our banking partners.

Eligibility and Prerequisites🔗

You must meet the following eligibility criteria set by our banking partners to accept international payments:

  • You must have an active Razorpay account with KYC verification completed.
  • You must have a valid website with the following sections/pages clearly defined:
    • Terms and Conditions
    • Privacy policy
    • Refund and Cancellation policy
    • Shipping policy Watch Out!
      International payments cannot be enabled for your account without these sections/pages on your website.
  • Business categories not supported by Razorpay are listed here.

Application Process🔗

You can request international payments from your Dashboard.

To request international payments:

  1. Log into the Razorpay Dashboard.

  2. Navigate to SettingsPayment Methods.

  3. Select International Payments and click Request.

  4. A request form is displayed. Provide details and click Submit. We will contact you via email for any clarifications.

Documents and Details Required🔗

Given below is a list of documents required:

  1. In case of sales of tangible products, Import/Export code is required.
  2. If you have past international transaction experience, the following documents are accepted:
    • Bank statement for inward remittance.
    • Settlement record from the current payment partner.

Currency Conversion🔗


Checkout Form and APIs🔗

On the checkout form or when using APIs for Razorpay products such as Orders, Payment Links, Subscriptions or Invoices, you need to specify the desired currency and pass the amount in the desired currency subunit.


The following is a sample API request and response to create an order for $20:

Copycurl -u <YOUR_KEY>:<YOUR_SECRET> \ -X POST https://api.razorpay.com/v1/orders \ -H "content-type: application/json" -d '{ "amount": 2000, "currency": "USD", "receipt": "rcptid #11" }'
Copytry { JSONObject orderRequest = new JSONObject(); orderRequest.put("amount", 2000); // amount in the smallest currency unit orderRequest.put("currency", "USD"); orderRequest.put("receipt", "order_rcptid_11"); Order order = razorpay.Orders.create(orderRequest); } catch (RazorpayException e) { // Handle Exception System.out.println(e.getMessage()); }
Copyorder_amount = 2000 order_currency = 'USD' order_receipt = 'order_rcptid_11' notes = {'Shipping address': 'Bommanahalli, Bangalore'} # OPTIONAL client.order.create(amount=order_amount, currency=order_currency, receipt=order_receipt, notes=notes)
Copy$order = $client->order->create([ 'receipt' => 'order_rcptid_11', 'amount' => 2000, // amount in the smallest currency unit 'currency' => 'USD',// ) ]);
CopyDictionary<string, object> options = new Dictionary<string,object>(); options.Add("amount", 2000); // amount in the smallest currency unit options.add("receipt", "order_rcptid_11"); options.add("currency", "USD"); Order order = client.Order.Create(options);
Copyoptions = amount: 2000, currency: 'USD', receipt: '<order_rcptid_11>' order = Razorpay::Order.create
Copyvar options = { amount: 2000, // amount in the smallest currency unit currency: "USD", receipt: "order_rcptid_11" }; instance.orders.create(options, function(err, order) { console.log(order); });
Copy{ "id": "order_00000000000001", "entity": "order", "amount": 2000, "currency": "USD", "receipt": "order_rcptid_11", "status": "created", "attempts": 0, "created_at": 1596208654, "notes": [] }
currency mandatory
string Currency in which you want to accept the payment. For example, GBP. Refer to the supported currencies section below for a list of supported international currencies.
amount mandatory
integer The amount to be charged in the specified currency subunit.

For example, when selling a product for ₹1000 in the domestic market, you pass INR in the currency parameter and 100000 in the amount parameter (since the amount should be in paise).

When selling in the international market, you might want to charge $20 for the same product. In this case, you must pass USD in the currency parameter and 2000 in the amount parameter (since the amount should be in cents).

Payment Entity🔗

The Payment entity will contain additional fields when the currency is not INR to provide visibility into the conversion rate.


The following is a sample payment entity for a $1 payment:

Copy{ "id": "pay_Donb2t6WkJYhfU", "entity": "payment", "amount": 100, "currency": "USD", "base_amount": 7129, "base_currency": "INR", "status": "captured", "order_id": "order_CjCr5oKh4AVC51", "international": true, "method": "card", "amount_refunded": 0, "refund_status": null, "description": "Payment at the Dollar Store", "card_id": "card_Donb2wk8eC8EDN", "email": "gaurav.kumar@example.com", "contact": "9364591752", "notes": [], "fee": 207, "tax": 0, "error_code": null, "error_description": null, "created_at": 1400826750 }
string The conversion currency that will be used to calculate fees and settlements. This currently defaults to INR and is present only if the currency is not INR.
integer The converted payment amount that will be used to calculate fees and settlements. Represented in the smallest unit of the base_currency. This attribute is currently only present if the currency is not INR.


When using products such as Payment Links or Subscription Links, ensure you select the desired currency from the currency dropdown and add the amount in the selected currency. For example, if you want to charge $20 when selling in the international market, select USD in the Currency dropdown and enter 20 in the Amount field.

Watch this video to see how to select the international currency from the dashboard.


Once your customers have made the payment, the payment amount is converted to INR and settled to your Razorpay Payment Gateway (PG) account as per your settlement schedule.

The exchange rate (according to the processing bank) on the date the payment was made is used to make the conversion. For example, a customer made a payment of $10 on February 02, 2019, and your settlement schedule is T+7 business days for domestic transactions, where T is the date of capture of payment. Here, the conversion rate depends on the date the payment has been captured, February 02, 2019, when USD to INR was 70, that is $1 = ₹70.

₹700 (minus tax and fees) is settled to your account on February 09, 2019, irrespective of the conversion rate on this date.

FIRC/FIRS Automated Process🔗

FIRC/FIRS Certificate is a document that acts as evidence that you have received funds from a foreign country. The document is recognised as proof that you may require in certain scenarios. For example, to get GST refunds, claim drawbacks from the government, or be required by beneficiary banks for compliance purposes.

Why do you need FIRC/FIRS Certificate🔗

You need FIRC/FIRS certificate as it contains important information about the inward remittance, such as:

  • Sender details
  • Converted amount details
  • Amount on foreign currency
  • UTR and Account number
  • Date of Certificate issuance

FIRC/FIRS Certificate Automated Flow🔗

Razorpay has a streamlined and improvised FIRC/FIRS flow to provide a better experience for all our international-enabled merchants every month. Whether you are a new user or an existing Razorpay user, obtaining the FIRC/FIRS certificate is quite simple.

Below is the flow on how you can obtain the FIRC/FIRS certificate from Razorpay:

  1. You can provide Purpose Code information at the time of applying for international payments. Visit your Razorpay Dashboard and update your purpose code under the My Account section. Scroll down to choose from the list of Purpose Code.
    Here is a short video on how to update your purpose code. Handy Tips
    If you need to use a Transaction Purpose Code that is not in this list, please contact support team via your Razorpay Dashboard.
  2. The Razorpay Activation/Operations team checks whether the selected Purpose Code is correct or not. Handy Tips
    If the bank rejects a FIRC/FIRS certificate request, an interim FIRS will be generated by Razorpay.
  3. Razorpay processes your FIRC/FIRS certificate and shares the same on your Dashboard in the first week of every month.
  4. You can view or download the FIRC certificate from your Razorpay Dashboard every month.

Supported Products🔗

Refer to the table below to know which products support international payments:


International Payments Supported

Payment Gateway (Checkout)




Payment Links


Payment Pages






Smart Collect




Supported Currencies🔗

Currently, we support a host of currencies, including INR, USD, EUR, and SGD.

  • Download the complete list of supported currencies.
    Last updated on 26 May 2021
  • For any other additional currencies, which are not a part of the above list and that you might want us to support, kindly raise a request on our Support Portal.