Estimating Fees and Exchange Rates for Payments
When sending International Payments through Routable, there are several fees and currency conversions that contribute to the overall cost of the funds transfer. These rates change frequently as a result of the fluctuations in international currency valuations. To help you ensure that you're never taken by surprise by a fee or a currency exchange rate, we've created a pair of Rate Estimates API endpoints.
Rate Estimates for a Payable
To estimate the fees and currency exchange rate for a payment you're considering making, create a Payable request body of type=international
, just as you would if you were going to Create a Payable. However, instead of POST
ing this payload to /v1/payables
, you'll POST
it to our Rate Estimates endpoint. You'll receive a response that looks something like this:
{
"object": "RateEstimate",
"amount_receiver": "500.00",
"amount_sender": "431.32",
"country_code_receiver": "CA",
"currency_code_receiver": "CAD",
"currency_code_sender": "USD",
"exchange_rate": "1.2730",
"exchange_rate_retrieved_at": "2022-01-04T14:15:22+00:00",
"payment_method": "international",
"delivery_method": "international_ach",
"fees": {
"object": "List",
"results": [{
"object": "Fee",
"amount": "0.40",
"currency_code": "USD",
"is_estimate": false,
"name": "Landing Fee"
},
{
"object": "Fee",
"amount": "10.00",
"currency_code": "USD",
"is_estimate": true,
"name": "Conversion Fee"
},
{
"object": "Fee",
"amount": "1.50",
"currency_code": "USD",
"is_estimate": false,
"name": "Delivery Fee"
}
]
}
}
Your response will contain an exchange_rate
showing you the conversion rate between the sender's currency and the receiver's currency. You'll also see the amount_sender
and amount_receiver
, as well as a currency_code_sender
and currency_code_receiver
. So, whichever currency you created the Payable
with will be the sender
and the currency the receiver gets will be the receiver
.
You'll also see an array of Fee
objects. Each Fee
is charged to you when the withdrawal for your payment is processed. Note that these fees are estimates, because rates can change -- although they are very unlikely to if you send the payment right away after checking the fees.
Rate Estimates without a Payable
If you don't want to create a full Payable
and you're just looking for a quick conversion, say, to display on your public website to inform vendors, you can use the Currency Conversion and Rate Estimates endpoint. This endpoint also accepts a POST
, but with a far simpler request body that doesn't include details like a vendor's company and account IDs.
It works both ways!
In your request, you can specify either all of the
sender
fields OR all of thereceiver
fields. So, if you know you owe $100 USD to a vendor, you can pass inamount_sender
= 100 andcurrency_code_sender
=USD
. But what if you know you owe a vendor 150€ EUR and you don't know how much that is in USD? No problem -- just make the request withamount_receiver
= 150 andcurrency_code_receiver
=EUR
and the response will tell you the USD amount. Either way, you will also get the full listing of associated fees.
{
"amount_receiver": "168.31",
"country_code_receiver": "CA",
"currency_code_receiver": "CAD",
"payment_method": "international",
"delivery_method": "international_ach",
"swift_charge_option": "our"
}
The response will be formatted identically to the one displayed above.
Understanding SWIFT fees
When using the international_swift
delivery option, fees are incurred from the SWIFT network. Routable users have the option to pay this entire fee themselves, or split it with their vendors, using the swift_charge_option
request field. Passing our
(the default) will charge the full fee to you, and passing sha
will cause the fee to be shared with the vendor.
Only use this option when making
international_swift
Payables, as the SWIFT fee does not apply tointernational_ach
transactions.
Learn more about these fees in our Routable Help Center.
Updated over 1 year ago