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:
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
Order order = client.Order.Create(options);
Copyoptions = amount:2000, currency:'USD', receipt:'<order_rcptid_11>'
order = Razorpay::Order.create
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.
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).
To provide visibility into the conversion rate, the Payment entity will contain additional fields when the currency is not INR.
The following is a sample payment entity for a $1 payment:
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 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.
Refer to the short animation below for more details.
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 had 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.
For the currencies supported by Razorpay, no currency conversion is not required. You can pass the payment amount in the native currency. Refer to the Currency Conversion section for more details.
For the currencies we do not support, you will have to handle conversion at your end and pass it to Razorpay in INR.
What is the settlement cycle for international payments?
The default settlement cycle for international payments is T+7 days where "T" is the day on which the payment was made by the customer. You can view your settlement cycle on your Dashboard.
How does the settlement happen for international payments?
The Settlement currency for all transactions done using Razorpay is INR (Indian Rupees). Thus, international payments will be settled to you in INR. The exchange rate at the time of the payment creation is considered for conversion.