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.

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 in the absence of these sections/pages on your website.
  • Business categories not supported by Razorpay are listed here.

Application Process🔗

Watch this video to see how to request for international payments.

To request for international payments:

  1. Log into the Razorpay Dashboard.

  2. Navigate to SettingsPayment Methods.

    Request
  3. Scroll to the International Payments section 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 as well as logistic partner details are needed.
  2. If you have past international transaction experience, the following documents are accepted:
    • 6 months' bank statement showing past inward remittance.
    • Sample invoice or any proof of service delivery.
    • Settlement report from past international transactions.

Currency Conversion🔗

Payments🔗

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.

Example

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🔗

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

Example

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 }
base_currency
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.
base_amount
integer The converted payment amount that will be used to calculate fees and settlements. Represented in smallest unit of the base_currency. This attribute is currently only present if the currency is not INR.

Dashboard🔗

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 international currency from the dashboard.

Settlements🔗

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 makes a payment of $10 on February 02, 2019 and your settlement schedule is T+7 business days for domestic transactions, where T being the date of capture of payment. Here, the conversion rate depends on the date the payment has been captured, that is 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 which acts as evidence that you have received funds from a foreign country. The document is recognised as a proof that you may require in certain scenarios. For example, to get GST refunds, claim drawbacks from the government, or 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 on a monthly basis. 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 , 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 an FIRC/FIRS certificate request is rejected by the bank, 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:

Product

International Payments Supported

Payment Gateway (Checkout)

Yes

Invoices

Yes

Payment Links

Yes

Payment Pages

Yes

Subscriptions

Yes

Route

No

Smart Collect

No

RazorpayX

No

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.
×