Exchanges
Ecart Pay offers comprehensive currency exchange tools, enabling businesses to transact in multiple currencies seamlessly.
In an increasingly interconnected world, businesses often deal with international transactions involving multiple currencies. Ecart Pay’s currency exchange module simplifies this complexity by allowing users to manage and view exchange rates effortlessly. Whether you’re a business owner managing payments or an individual looking to understand exchange rates for your transactions, Ecart Pay’s tools make the process transparent and efficient.
This entry highlights the core features of Ecart Pay’s currency exchange module, its benefits, and how businesses can leverage this functionality to streamline global payments.
Why Use Ecart Pay’s Currency Exchange Features?
Having access to accurate and real-time currency exchange rates within Ecart Pay provides numerous advantages:
- Seamless Cross-Border Transactions: Support for various currencies ensures businesses can cater to international customers without worrying about manual currency conversion.
- Real-Time Rates: Access the latest exchange rates to make informed financial decisions.
- Streamlined Payments: By choosing a preferred base currency, businesses can standardize their financial operations and reporting.
- Enhanced Customer Experience: Offering transactions in customers’ local currency builds trust and improves satisfaction.
Retrieve Exchanges by Currency Base
Retrieve the list of exchange rates based on a specified base currency.
Endpoint
GET {{baseURL}}/api/exchanges?base={currency_code}
Headers
Authorization: {token}
Request Parameters
Parameter | Type | Description |
---|---|---|
base | string | The base currency (e.g., USD). |
Example Request
curl --location 'https://sandbox.ecartpay.com/api/exchanges?base=USD' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw' \
--header 'Cookie: lang=en'
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.ecartpay.com/api/exchanges?base=USD"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw")
req.Header.Add("Cookie", "lang=en")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
GET /api/exchanges?base=USD HTTP/1.1
Host: sandbox.ecartpay.com
Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw
Cookie: lang=en
// OkHttp
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://sandbox.ecartpay.com/api/exchanges?base=USD")
.method("GET", body)
.addHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw")
.addHeader("Cookie", "lang=en")
.build();
Response response = client.newCall(request).execute();
// -------------------------------------------------------------
// Unirest
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://sandbox.ecartpay.com/api/exchanges?base=USD")
.header("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw")
.header("Cookie", "lang=en")
.asString();
// Fetch
const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw");
myHeaders.append("Cookie", "lang=en");
const requestOptions = {
method: "GET",
headers: myHeaders,
redirect: "follow"
};
fetch("https://sandbox.ecartpay.com/api/exchanges?base=USD", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
// -------------------------------------------------------------
// jQuery
var settings = {
"url": "https://sandbox.ecartpay.com/api/exchanges?base=USD",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw",
"Cookie": "lang=en"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
// -------------------------------------------------------------
// XHR
// WARNING: For GET requests, body is set to null by browsers.
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
if(this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://sandbox.ecartpay.com/api/exchanges?base=USD");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw");
// WARNING: Cookies will be stripped away by the browser before sending the request.
xhr.setRequestHeader("Cookie", "lang=en");
xhr.send();
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_URL, "https://sandbox.ecartpay.com/api/exchanges?base=USD");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw");
headers = curl_slist_append(headers, "Cookie: lang=en");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
curl_slist_free_all(headers);
}
curl_easy_cleanup(curl);
// Axios
const axios = require('axios');
let config = {
method: 'get',
maxBodyLength: Infinity,
url: 'https://sandbox.ecartpay.com/api/exchanges?base=USD',
headers: {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
}
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
// -------------------------------------------------------------
// Native
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'GET',
'hostname': 'sandbox.ecartpay.com',
'path': '/api/exchanges?base=USD',
'headers': {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
// -------------------------------------------------------------
// Request
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://sandbox.ecartpay.com/api/exchanges?base=USD',
'headers': {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
// -------------------------------------------------------------
// Unirest
var unirest = require('unirest');
var req = unirest('GET', 'https://sandbox.ecartpay.com/api/exchanges?base=USD')
.headers({
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
})
.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.raw_body);
});
#import <Foundation/Foundation.h>
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sandbox.ecartpay.com/api/exchanges?base=USD"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
NSDictionary *headers = @{
@"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw",
@"Cookie": @"lang=en"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
dispatch_semaphore_signal(sema);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSError *parseError = nil;
NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
NSLog(@"%@",responseDictionary);
dispatch_semaphore_signal(sema);
}
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix
let reqBody =
let uri = Uri.of_string "https://sandbox.ecartpay.com/api/exchanges?base=USD" in
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw"
|> fun h -> Header.add h "Cookie" "lang=en"
in
Client.call ~headers `GET uri >>= fun (_resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body -> body
let () =
let respBody = Lwt_main.run reqBody in
print_endline (respBody)
// cURL
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://sandbox.ecartpay.com/api/exchanges?base=USD',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie: lang=en'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
// -------------------------------------------------------------
// Guzzle
<?php
$client = new Client();
$headers = [
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie' => 'lang=en'
];
$request = new Request('GET', 'https://sandbox.ecartpay.com/api/exchanges?base=USD', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
// -------------------------------------------------------------
// HTTP_Request2
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://sandbox.ecartpay.com/api/exchanges?base=USD');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie' => 'lang=en'
));
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
// -------------------------------------------------------------
// pecl_http
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://sandbox.ecartpay.com/api/exchanges?base=USD');
$request->setRequestMethod('GET');
$request->setOptions(array());
$request->setHeaders(array(
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie' => 'lang=en'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw")
$headers.Add("Cookie", "lang=en")
$response = Invoke-RestMethod 'https://sandbox.ecartpay.com/api/exchanges?base=USD' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
# http.client
import http.client
conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = ''
headers = {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
}
conn.request("GET", "/api/exchanges?base=USD", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
// -------------------------------------------------------------
# Requests
import requests
url = "https://sandbox.ecartpay.com/api/exchanges?base=USD"
payload = {}
headers = {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
# httr
library(httr)
headers = c(
'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie' = 'lang=en'
)
res <- VERB("GET", url = "https://sandbox.ecartpay.com/api/exchanges?base=USD", add_headers(headers))
cat(content(res, 'text'))
// -------------------------------------------------------------
# RCurl
library(RCurl)
headers = c(
"Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw",
"Cookie" = "lang=en"
)
res <- getURL("https://sandbox.ecartpay.com/api/exchanges?base=USD", .opts=list(httpheader = headers, followlocation = TRUE))
cat(res)
require "uri"
require "net/http"
url = URI("https://sandbox.ecartpay.com/api/exchanges?base=USD")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw"
request["Cookie"] = "lang=en"
response = https.request(request)
puts response.read_body
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::builder()
.build()?;
let mut headers = reqwest::header::HeaderMap::new();
headers.insert("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw".parse()?);
headers.insert("Cookie", "lang=en".parse()?);
let request = client.request(reqwest::Method::GET, "https://sandbox.ecartpay.com/api/exchanges?base=USD")
.headers(headers);
let response = request.send().await?;
let body = response.text().await?;
println!("{}", body);
Ok(())
}
# Httpie
http --follow --timeout 3600 GET 'https://sandbox.ecartpay.com/api/exchanges?base=USD' \
Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw' \
Cookie:'lang=en'
// -------------------------------------------------------------
# wget
wget --no-check-certificate --quiet \
--method GET \
--timeout=0 \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw' \
--header 'Cookie: lang=en' \
'https://sandbox.ecartpay.com/api/exchanges?base=USD'
var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/exchanges?base=USD")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw", forHTTPHeaderField: "Authorization")
request.addValue("lang=en", forHTTPHeaderField: "Cookie")
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Example Response
{
"id": "5fab326d8986165dffa64ac5",
"base": "USD",
"exchanges": {
"AED": 3.6732,
"AFN": 79.030285,
"ALL": 102.827543,
"AMD": 508.430002,
"ANG": 1.795936,
"AOA": 647.19,
"ARS": 95.5263,
"AUD": 1.321903,
"AWG": 1.8,
"AZN": 1.700805,
"BAM": 1.638968,
"BBD": 2,
"BDT": 84.838098,
"BGN": 1.6399,
"BHD": 0.377007,
"BIF": 1980.416568,
"BMD": 1,
"BND": 1.343266,
"BOB": 6.912196,
"BRL": 4.9262,
"BSD": 1,
"BTC": 0.000029067326,
"BTN": 74.234653,
"BWP": 10.833969,
"BYN": 2.528638,
"BZD": 2.016761,
"CAD": 1.233915,
"CDF": 1986.98927,
"CHF": 0.919794,
"CLF": 0.026615,
"CLP": 735.001553,
"CNH": 6.46142,
"CNY": 6.4561,
"COP": 3749.437008,
"CRC": 620.020264,
"CUC": 1,
"CUP": 25.75,
"CVE": 95.85,
"CZK": 21.3208,
"DJF": 178.117125,
"DKK": 6.2359,
"DOP": 57.029132,
"DZD": 134.025407,
"EGP": 15.6705,
"ERN": 15.002,
"ETB": 43.852804,
"EUR": 0.83857,
"FJD": 2.06105,
"FKP": 0.720523,
"GBP": 0.720523,
"GEL": 3.145,
"GGP": 0.720523,
"GHS": 5.826084,
"GIP": 0.720523,
"GMD": 51.12,
"GNF": 9825.773055,
"GTQ": 7.753029,
"GYD": 209.277218,
"HKD": 7.763004,
"HNL": 23.909491,
"HRK": 6.2884,
"HTG": 92.84378,
"HUF": 293.966975,
"IDR": 14484.5,
"ILS": 3.259376,
"IMP": 0.720523,
"INR": 74.284142,
"IQD": 1459.733973,
"IRR": 42105,
"ISK": 123.53,
"JEP": 0.720523,
"JMD": 150.081709,
"JOD": 0.709,
"JPY": 110.5989,
"KES": 107.840346,
"KGS": 84.589799,
"KHR": 4083.030315,
"KMF": 412.900102,
"KPW": 900,
"KRW": 1130.349729,
"KWD": 0.301069,
"KYD": 0.833773,
"KZT": 426.934748,
"LAK": 9479.741907,
"LBP": 1512.7593,
"LKR": 199.100909,
"LRD": 171.450049,
"LSL": 14.087217,
"LYD": 4.50468,
"MAD": 8.895966,
"MDL": 17.994133,
"MGA": 3788.61044,
"MKD": 51.673464,
"MMK": 1646.836879,
"MNT": 2847.354137,
"MOP": 7.999581,
"MRO": 356.999828,
"MRU": 36.168144,
"MUR": 42.49717,
"MVR": 15.41,
"MWK": 806.003963,
"MXN": 19.82665,
"MYR": 4.146,
"MZN": 63.301999,
"NAD": 14.18,
"NGN": 410.5,
"NIO": 34.942385,
"NOK": 8.524919,
"NPR": 118.7756,
"NZD": 1.42007,
"OMR": 0.38499,
"PAB": 1,
"PEN": 3.980892,
"PGK": 3.559924,
"PHP": 48.692,
"PKR": 157.880022,
"PLN": 3.7752,
"PYG": 6783.667427,
"QAR": 3.644131,
"RON": 4.132,
"RSD": 98.551947,
"RUB": 72.2265,
"RWF": 1006.38561,
"SAR": 3.750745,
"SBD": 8.016064,
"SCR": 14.915098,
"SDG": 449.5,
"SEK": 8.51495,
"SGD": 1.3432,
"SHP": 0.720523,
"SLL": 10252.949863,
"SOS": 578.750851,
"SRD": 20.8535,
"SSP": 130.26,
"STD": 20518.098064,
"STN": 20.7,
"SVC": 8.75508,
"SYP": 1257.897232,
"SZL": 14.08571,
"THB": 31.915833,
"TJS": 11.410769,
"TMT": 3.51,
"TND": 2.7725,
"TOP": 2.241465,
"TRY": 8.69022,
"TTD": 6.791117,
"TWD": 27.8474,
"TZS": 2320.58393,
"UAH": 27.36477,
"UGX": 3556.825487,
"USD": 1,
"UYU": 43.456944,
"UZS": 10575.982571,
"VES": 3209358.225806,
"VND": 23051.644609,
"VUV": 109.647402,
"WST": 2.542132,
"XAF": 550.065758,
"XAG": 0.03832225,
"XAU": 0.00056247,
"XCD": 2.70255,
"XDR": 0.700151,
"XOF": 550.065758,
"XPD": 0.00037135,
"XPF": 100.068,
"XPT": 0.00091316,
"YER": 250.200039,
"ZAR": 14.2648,
"ZMW": 22.618639,
"ZWL": 322
},
"created_at": "2020-11-11T00:38:05.617Z",
"updated_at": "2021-06-28T23:36:11.630Z"
}
Why Are Multiple Exchange Options Useful?
Having access to various exchange options benefits businesses in several ways:
- Catering to Global Markets: Offering pricing in customers’ local currency removes barriers to entry and enhances trust.
- Financial Efficiency: Reduces the need for third-party currency conversion services, saving time and fees.
- Transparency: Businesses and customers can make well-informed decisions with clear and updated exchange rates.
Available Currencies
Currency | Country |
---|---|
USD | United States |
EUR | European Union |
COP | Colombia |
MXN | Mexico |
CLP | Chile |
JPY | Japan |
ARS | Argentina |
RUB | Russia |
INR | India |
UYU | Uruguay |
GTQ | Guatemala |
AUD | Australia |
CNY | China |
BRL | Brazil |
PEN | Peru |
CAD | Canada |
Retrieve Available Currencies
Retrieve a complete list of all available currencies and their corresponding base exchanges within Ecart Pay.
Endpoint
GET {{baseURL}}/api/exchanges/available
Headers
Authorization: {token}
Example Request
curl --location 'https://sandbox.ecartpay.com/api/exchanges/available' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw' \
--header 'Cookie: lang=en'
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.ecartpay.com/api/exchanges/available"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw")
req.Header.Add("Cookie", "lang=en")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
GET /api/exchanges/available HTTP/1.1
Host: sandbox.ecartpay.com
Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw
Cookie: lang=en
// OkHttp
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://sandbox.ecartpay.com/api/exchanges/available")
.method("GET", body)
.addHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw")
.addHeader("Cookie", "lang=en")
.build();
Response response = client.newCall(request).execute();
// -------------------------------------------------------------
// Unirest
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://sandbox.ecartpay.com/api/exchanges/available")
.header("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw")
.header("Cookie", "lang=en")
.asString();
// Fetch
const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw");
myHeaders.append("Cookie", "lang=en");
const requestOptions = {
method: "GET",
headers: myHeaders,
redirect: "follow"
};
fetch("https://sandbox.ecartpay.com/api/exchanges/available", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
// -------------------------------------------------------------
// jQuery
var settings = {
"url": "https://sandbox.ecartpay.com/api/exchanges/available",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw",
"Cookie": "lang=en"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
// -------------------------------------------------------------
// XHR
// WARNING: For GET requests, body is set to null by browsers.
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
if(this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://sandbox.ecartpay.com/api/exchanges/available");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw");
// WARNING: Cookies will be stripped away by the browser before sending the request.
xhr.setRequestHeader("Cookie", "lang=en");
xhr.send();
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_URL, "https://sandbox.ecartpay.com/api/exchanges/available");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw");
headers = curl_slist_append(headers, "Cookie: lang=en");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
curl_slist_free_all(headers);
}
curl_easy_cleanup(curl);
// Axios
const axios = require('axios');
let config = {
method: 'get',
maxBodyLength: Infinity,
url: 'https://sandbox.ecartpay.com/api/exchanges/available',
headers: {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
}
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
// -------------------------------------------------------------
// Native
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'GET',
'hostname': 'sandbox.ecartpay.com',
'path': '/api/exchanges/available',
'headers': {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
// -------------------------------------------------------------
// Request
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://sandbox.ecartpay.com/api/exchanges/available',
'headers': {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
// -------------------------------------------------------------
// Unirest
var unirest = require('unirest');
var req = unirest('GET', 'https://sandbox.ecartpay.com/api/exchanges/available')
.headers({
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
})
.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.raw_body);
});
#import <Foundation/Foundation.h>
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sandbox.ecartpay.com/api/exchanges/available"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
NSDictionary *headers = @{
@"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw",
@"Cookie": @"lang=en"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
dispatch_semaphore_signal(sema);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSError *parseError = nil;
NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
NSLog(@"%@",responseDictionary);
dispatch_semaphore_signal(sema);
}
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix
let reqBody =
let uri = Uri.of_string "https://sandbox.ecartpay.com/api/exchanges/available" in
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw"
|> fun h -> Header.add h "Cookie" "lang=en"
in
Client.call ~headers `GET uri >>= fun (_resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body -> body
let () =
let respBody = Lwt_main.run reqBody in
print_endline (respBody)
// cURL
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://sandbox.ecartpay.com/api/exchanges/available',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie: lang=en'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
// -------------------------------------------------------------
// Guzzle
<?php
$client = new Client();
$headers = [
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie' => 'lang=en'
];
$request = new Request('GET', 'https://sandbox.ecartpay.com/api/exchanges/available', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
// -------------------------------------------------------------
// HTTP_Request2
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://sandbox.ecartpay.com/api/exchanges/available');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie' => 'lang=en'
));
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
// -------------------------------------------------------------
// pecl_http
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://sandbox.ecartpay.com/api/exchanges/available');
$request->setRequestMethod('GET');
$request->setOptions(array());
$request->setHeaders(array(
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie' => 'lang=en'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw")
$headers.Add("Cookie", "lang=en")
$response = Invoke-RestMethod 'https://sandbox.ecartpay.com/api/exchanges/available' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
# http.client
import http.client
conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = ''
headers = {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
}
conn.request("GET", "/api/exchanges/available", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
// -------------------------------------------------------------
# Requests
import requests
url = "https://sandbox.ecartpay.com/api/exchanges/available"
payload = {}
headers = {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie': 'lang=en'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
# httr
library(httr)
headers = c(
'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw',
'Cookie' = 'lang=en'
)
res <- VERB("GET", url = "https://sandbox.ecartpay.com/api/exchanges/available", add_headers(headers))
cat(content(res, 'text'))
// -------------------------------------------------------------
# RCurl
library(RCurl)
headers = c(
"Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw",
"Cookie" = "lang=en"
)
res <- getURL("https://sandbox.ecartpay.com/api/exchanges/available", .opts=list(httpheader = headers, followlocation = TRUE))
cat(res)
require "uri"
require "net/http"
url = URI("https://sandbox.ecartpay.com/api/exchanges/available")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw"
request["Cookie"] = "lang=en"
response = https.request(request)
puts response.read_body
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::builder()
.build()?;
let mut headers = reqwest::header::HeaderMap::new();
headers.insert("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw".parse()?);
headers.insert("Cookie", "lang=en".parse()?);
let request = client.request(reqwest::Method::GET, "https://sandbox.ecartpay.com/api/exchanges/available")
.headers(headers);
let response = request.send().await?;
let body = response.text().await?;
println!("{}", body);
Ok(())
}
# Httpie
http --follow --timeout 3600 GET 'https://sandbox.ecartpay.com/api/exchanges/available' \
Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw' \
Cookie:'lang=en'
// -------------------------------------------------------------
# wget
wget --no-check-certificate --quiet \
--method GET \
--timeout=0 \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw' \
--header 'Cookie: lang=en' \
'https://sandbox.ecartpay.com/api/exchanges/available'
var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/exchanges/available")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkzNzkwNTQsImV4cCI6MTczOTM4MjY1NH0.Bh9ojHtrU_nbzQ-Y4akRTtQDXU3I3YzGoQDWXsbqivFb5RNQJ7IhvYVuxNSASha6U2FbV6pX4DlJncxpdn8Zcw", forHTTPHeaderField: "Authorization")
request.addValue("lang=en", forHTTPHeaderField: "Cookie")
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Example Response
[
{
"id": "5fab326d8986165dffa64ac5",
"base": "USD",
"created_at": "2020-11-11T00:38:05.617Z",
"updated_at": "2021-06-28T23:36:11.630Z"
},
{
"id": "5fbbe2a7daa13100175a77fe",
"base": "EUR",
"created_at": "2020-11-23T16:26:15.752Z",
"updated_at": "2021-06-28T23:36:11.592Z"
},
{
"id": "5fbbe2b1daa13100175a77ff",
"base": "COP",
"created_at": "2020-11-23T16:26:25.751Z",
"updated_at": "2021-06-28T23:36:11.647Z"
},
{
"id": "5fbbed4adaa13100175a780a",
"base": "MXN",
"created_at": "2020-11-23T17:11:38.580Z",
"updated_at": "2021-06-28T23:36:11.662Z"
},
{
"id": "61579e99b50a7f3b00b6a62c",
"base": "CLP",
"created_at": "2021-10-01T23:49:45.537Z",
"updated_at": "2021-10-01T23:49:45.537Z"
},
{
"id": "6157c0d265d4550016e3d689",
"base": "JPY",
"created_at": "2021-10-02T02:15:46.842Z",
"updated_at": "2021-10-02T02:15:46.842Z"
},
{
"id": "6157c0d265d4550016e3d68b",
"base": "ARS",
"created_at": "2021-10-02T02:15:46.855Z",
"updated_at": "2021-10-02T02:15:46.855Z"
},
{
"id": "6157c0d265d4550016e3d68d",
"base": "RUB",
"created_at": "2021-10-02T02:15:46.868Z",
"updated_at": "2021-10-02T02:15:46.868Z"
},
{
"id": "615b3914751c749da2817600",
"base": "INR",
"created_at": "2021-10-04T17:25:40.316Z",
"updated_at": "2021-10-04T17:25:40.316Z"
},
{
"id": "615f277980a3990016968462",
"base": "UYU",
"created_at": "2021-10-07T16:59:37.916Z",
"updated_at": "2021-10-07T16:59:37.916Z"
},
{
"id": "6189b0b9df291598221a5d7a",
"base": "GTQ",
"created_at": "2021-11-08T23:20:25.234Z",
"updated_at": "2021-11-08T23:20:25.234Z"
},
{
"id": "619c13bc2b5d2a9be72f42b3",
"base": "AUD",
"created_at": "2021-11-22T22:03:40.559Z",
"updated_at": "2021-11-22T22:03:40.559Z"
},
{
"id": "61a558d42312553920fce992",
"base": "CNY",
"created_at": "2021-11-29T22:48:52.373Z",
"updated_at": "2021-11-29T22:48:52.373Z"
},
{
"id": "620416e15f222b510a4b6a6b",
"base": "BRL",
"created_at": "2022-02-09T19:32:49.294Z",
"updated_at": "2022-02-09T19:32:49.294Z"
},
{
"id": "621fea7c8e72394651072334",
"base": "PEN",
"created_at": "2022-03-02T22:06:52.049Z",
"updated_at": "2022-03-02T22:06:52.049Z"
},
{
"id": "621fea7c8e72394651072336",
"base": "CAD",
"created_at": "2022-03-02T22:06:52.079Z",
"updated_at": "2022-03-02T22:06:52.079Z"
}
]
Use Cases for Ecart Pay Currency Exchange
- Understanding Global Transactions: Businesses working with international clients can use exchange rates to manage pricing strategies and understand market dynamics.
- Streamlined Accounting: Consolidate earnings or expenses in a single currency, simplifying reporting and financial tracking.
- Competitive Pricing: Provide local currency options for customers to reduce barriers and increase conversion rates.
- Transparent Billing: Use real-time rates to ensure customers and partners are billed accurately and fairly.
Conclusion
Ecart Pay’s currency exchange module is a vital tool for businesses aiming to operate in the global market efficiently. By providing real-time exchange rates and support for diverse currencies, it simplifies financial operations and enhances customer experience. Whether managing cross-border payments or optimizing internal processes, Ecart Pay’s exchange features empower businesses to thrive in a global economy.
Updated about 2 months ago