Documentation

Cards

Ecart Pay enables users to securely store card information in a PCI-compliant environment, ensuring data protection and transaction security.

This feature simplifies the checkout process by reducing the need to repeatedly input card details, enhancing convenience and operational efficiency. Stored cards can be utilized for both receiving payments and making transactions, providing a seamless and user-friendly experience.

Why Storing Cards is Useful

  • Enhanced Customer Convenience: By saving card details, customers can avoid the repetitive process of entering card information for every transaction. This streamlined checkout process improves user satisfaction and reduces cart abandonment rates.
  • Time-Saving for Frequent Transactions: Businesses and users conducting regular transactions benefit from quicker payment processing, enhancing operational efficiency.
  • Secure and Compliant Environment: Ecart Pay’s PCI compliance ensures that all card data is stored and processed securely, giving users peace of mind about the safety of their sensitive information.
  • Optimized Business Workflows: For subscription services or recurring payments, stored cards facilitate automatic billing, ensuring uninterrupted service and reliable cash flow.
Image 1. Cards as a Payment Method

Image 1. Cards as a Payment Method

How to Create and Store a Card

The process of saving a card in Ecart Pay is straightforward. Users need to make a request providing the necessary card details.

Endpoint

POST {{baseURL}}/api/cards

Headers

  • Authorization: {token}

Required Fields

  • number: The card number (e.g., “4242424242424132”).
  • name: The cardholder’s name.
  • exp_month: The card’s expiration month (e.g., “02”).
  • exp_year: The card’s expiration year (e.g., “2023”).
  • cvc: The card verification code.
💻

TESTING

If you are in a testing scenario, you can use the cards provided in the Testing section and simulate transactions with them: Debit/Credit Card

Example Request

curl --location 'https://sandbox.ecartpay.com/api/cards' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug' \
--header 'Content-Type: application/json' \
--header 'Cookie: lang=en' \
--data '{
    "number": "4242424242424132",
    "name": "Ecart Pay",
    "exp_month": "02",
    "exp_year": "2025",
    "cvc": "123"
}'
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {

  url := "https://sandbox.ecartpay.com/api/cards"
  method := "POST"

  payload := strings.NewReader(`{`+"
"+`
    "number": "4242424242424132",`+"
"+`
    "name": "Ecart Pay",`+"
"+`
    "exp_month": "02",`+"
"+`
    "exp_year": "2025",`+"
"+`
    "cvc": "123"`+"
"+`
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
  req.Header.Add("Content-Type", "application/json")
  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))
}
POST /api/cards HTTP/1.1
Host: sandbox.ecartpay.com
Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug
Content-Type: application/json
Cookie: lang=en
Content-Length: 132

{
    "number": "4242424242424132",
    "name": "Ecart Pay",
    "exp_month": "02",
    "exp_year": "2025",
    "cvc": "123"
}
// OkHttp

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n    \"number\": \"4242424242424132\",\r\n    \"name\": \"Ecart Pay\",\r\n    \"exp_month\": \"02\",\r\n    \"exp_year\": \"2025\",\r\n    \"cvc\": \"123\"\r\n}");
Request request = new Request.Builder()
  .url("https://sandbox.ecartpay.com/api/cards")
  .method("POST", body)
  .addHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
  .addHeader("Content-Type", "application/json")
  .addHeader("Cookie", "lang=en")
  .build();
Response response = client.newCall(request).execute();

// -------------------------------------------------------------

// Unirest

Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://sandbox.ecartpay.com/api/cards")
  .header("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
  .header("Content-Type", "application/json")
  .header("Cookie", "lang=en")
  .body("{\r\n    \"number\": \"4242424242424132\",\r\n    \"name\": \"Ecart Pay\",\r\n    \"exp_month\": \"02\",\r\n    \"exp_year\": \"2025\",\r\n    \"cvc\": \"123\"\r\n}")
  .asString();
// Fetch

const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Cookie", "lang=en");

const raw = JSON.stringify({
  "number": "4242424242424132",
  "name": "Ecart Pay",
  "exp_month": "02",
  "exp_year": "2025",
  "cvc": "123"
});

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: raw,
  redirect: "follow"
};

fetch("https://sandbox.ecartpay.com/api/cards", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));

// -------------------------------------------------------------

// jQuery

var settings = {
  "url": "https://sandbox.ecartpay.com/api/cards",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug",
    "Content-Type": "application/json",
    "Cookie": "lang=en"
  },
  "data": JSON.stringify({
    "number": "4242424242424132",
    "name": "Ecart Pay",
    "exp_month": "02",
    "exp_year": "2025",
    "cvc": "123"
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

// -------------------------------------------------------------

// XHR

// WARNING: For POST requests, body is set to null by browsers.
var data = JSON.stringify({
  "number": "4242424242424132",
  "name": "Ecart Pay",
  "exp_month": "02",
  "exp_year": "2025",
  "cvc": "123"
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
  if(this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandbox.ecartpay.com/api/cards");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");
xhr.setRequestHeader("Content-Type", "application/json");
// WARNING: Cookies will be stripped away by the browser before sending the request.
xhr.setRequestHeader("Cookie", "lang=en");

xhr.send(data);
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
  curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
  curl_easy_setopt(curl, CURLOPT_URL, "https://sandbox.ecartpay.com/api/cards");
  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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");
  headers = curl_slist_append(headers, "Content-Type: application/json");
  headers = curl_slist_append(headers, "Cookie: lang=en");
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
  const char *data = "{\r\n    \"number\": \"4242424242424132\",\r\n    \"name\": \"Ecart Pay\",\r\n    \"exp_month\": \"02\",\r\n    \"exp_year\": \"2025\",\r\n    \"cvc\": \"123\"\r\n}";
  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
  res = curl_easy_perform(curl);
  curl_slist_free_all(headers);
}
curl_easy_cleanup(curl);
// Axios

const axios = require('axios');
let data = JSON.stringify({
  "number": "4242424242424132",
  "name": "Ecart Pay",
  "exp_month": "02",
  "exp_year": "2025",
  "cvc": "123"
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://sandbox.ecartpay.com/api/cards',
  headers: { 
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug', 
    'Content-Type': 'application/json', 
    'Cookie': 'lang=en'
  },
  data : data
};

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': 'POST',
  'hostname': 'sandbox.ecartpay.com',
  'path': '/api/cards',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    'Content-Type': 'application/json',
    '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);
  });
});

var postData = JSON.stringify({
  "number": "4242424242424132",
  "name": "Ecart Pay",
  "exp_month": "02",
  "exp_year": "2025",
  "cvc": "123"
});

req.write(postData);

req.end();

// -------------------------------------------------------------

// Request

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://sandbox.ecartpay.com/api/cards',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    'Content-Type': 'application/json',
    'Cookie': 'lang=en'
  },
  body: JSON.stringify({
    "number": "4242424242424132",
    "name": "Ecart Pay",
    "exp_month": "02",
    "exp_year": "2025",
    "cvc": "123"
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

// -------------------------------------------------------------

// Unirest

var unirest = require('unirest');
var req = unirest('POST', 'https://sandbox.ecartpay.com/api/cards')
  .headers({
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    'Content-Type': 'application/json',
    'Cookie': 'lang=en'
  })
  .send(JSON.stringify({
    "number": "4242424242424132",
    "name": "Ecart Pay",
    "exp_month": "02",
    "exp_year": "2025",
    "cvc": "123"
  }))
  .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/cards"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug",
  @"Content-Type": @"application/json",
  @"Cookie": @"lang=en"
};

[request setAllHTTPHeaderFields:headers];
NSData *postData = [[NSData alloc] initWithData:[@"{\r\n    \"number\": \"4242424242424132\",\r\n    \"name\": \"Ecart Pay\",\r\n    \"exp_month\": \"02\",\r\n    \"exp_year\": \"2025\",\r\n    \"cvc\": \"123\"\r\n}" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];

[request setHTTPMethod:@"POST"];

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 postData = ref "{\r\n    \"number\": \"4242424242424132\",\r\n    \"name\": \"Ecart Pay\",\r\n    \"exp_month\": \"02\",\r\n    \"exp_year\": \"2025\",\r\n    \"cvc\": \"123\"\r\n}";;

let reqBody = 
  let uri = Uri.of_string "https://sandbox.ecartpay.com/api/cards" in
  let headers = Header.init ()
    |> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug"
    |> fun h -> Header.add h "Content-Type" "application/json"
    |> fun h -> Header.add h "Cookie" "lang=en"
  in
  let body = Cohttp_lwt.Body.of_string !postData in

  Client.call ~headers ~body `POST 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/cards',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "number": "4242424242424132",
    "name": "Ecart Pay",
    "exp_month": "02",
    "exp_year": "2025",
    "cvc": "123"
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    'Content-Type: application/json',
    'Cookie: lang=en'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

// -------------------------------------------------------------

// Guzzle

<?php
$client = new Client();
$headers = [
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Content-Type' => 'application/json',
  'Cookie' => 'lang=en'
];
$body = '{
  "number": "4242424242424132",
  "name": "Ecart Pay",
  "exp_month": "02",
  "exp_year": "2025",
  "cvc": "123"
}';
$request = new Request('POST', 'https://sandbox.ecartpay.com/api/cards', $headers, $body);
$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/cards');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Content-Type' => 'application/json',
  'Cookie' => 'lang=en'
));
$request->setBody('{
\n    "number": "4242424242424132",
\n    "name": "Ecart Pay",
\n    "exp_month": "02",
\n    "exp_year": "2025",
\n    "cvc": "123"
\n}');
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/cards');
$request->setRequestMethod('POST');
$body = new http\Message\Body;
$body->append('{
    "number": "4242424242424132",
    "name": "Ecart Pay",
    "exp_month": "02",
    "exp_year": "2025",
    "cvc": "123"
}');
$request->setBody($body);
$request->setOptions(array());
$request->setHeaders(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Content-Type' => 'application/json',
  '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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
$headers.Add("Content-Type", "application/json")
$headers.Add("Cookie", "lang=en")

$body = @"
{
    `"number`": `"4242424242424132`",
    `"name`": `"Ecart Pay`",
    `"exp_month`": `"02`",
    `"exp_year`": `"2025`",
    `"cvc`": `"123`"
}
"@

$response = Invoke-RestMethod 'https://sandbox.ecartpay.com/api/cards' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json
# http.client

import http.client
import json

conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = json.dumps({
  "number": "4242424242424132",
  "name": "Ecart Pay",
  "exp_month": "02",
  "exp_year": "2025",
  "cvc": "123"
})
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Content-Type': 'application/json',
  'Cookie': 'lang=en'
}
conn.request("POST", "/api/cards", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

// -------------------------------------------------------------

# Requests

import requests
import json

url = "https://sandbox.ecartpay.com/api/cards"

payload = json.dumps({
  "number": "4242424242424132",
  "name": "Ecart Pay",
  "exp_month": "02",
  "exp_year": "2025",
  "cvc": "123"
})
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Content-Type': 'application/json',
  'Cookie': 'lang=en'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
# httr

library(httr)

headers = c(
  'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Content-Type' = 'application/json',
  'Cookie' = 'lang=en'
)

body = '{
  "number": "4242424242424132",
  "name": "Ecart Pay",
  "exp_month": "02",
  "exp_year": "2025",
  "cvc": "123"
}';

res <- VERB("POST", url = "https://sandbox.ecartpay.com/api/cards", body = body, add_headers(headers))

cat(content(res, 'text'))

// -------------------------------------------------------------

# RCurl

library(RCurl)
headers = c(
  "Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug",
  "Content-Type" = "application/json",
  "Cookie" = "lang=en"
)
params = "{
  \"number\": \"4242424242424132\",
  \"name\": \"Ecart Pay\",
  \"exp_month\": \"02\",
  \"exp_year\": \"2025\",
  \"cvc\": \"123\"
}"
res <- postForm("https://sandbox.ecartpay.com/api/cards", .opts=list(postfields = params, httpheader = headers, followlocation = TRUE), style = "httppost")
cat(res)
require "uri"
require "json"
require "net/http"

url = URI("https://sandbox.ecartpay.com/api/cards")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug"
request["Content-Type"] = "application/json"
request["Cookie"] = "lang=en"
request.body = JSON.dump({
  "number": "4242424242424132",
  "name": "Ecart Pay",
  "exp_month": "02",
  "exp_year": "2025",
  "cvc": "123"
})

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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug".parse()?);
    headers.insert("Content-Type", "application/json".parse()?);
    headers.insert("Cookie", "lang=en".parse()?);

    let data = r#"{
    "number": "4242424242424132",
    "name": "Ecart Pay",
    "exp_month": "02",
    "exp_year": "2025",
    "cvc": "123"
}"#;

    let json: serde_json::Value = serde_json::from_str(&data)?;

    let request = client.request(reqwest::Method::POST, "https://sandbox.ecartpay.com/api/cards")
        .headers(headers)
        .json(&json);

    let response = request.send().await?;
    let body = response.text().await?;

    println!("{}", body);

    Ok(())
}
# Httpie

printf '{
    "number": "4242424242424132",
    "name": "Ecart Pay",
    "exp_month": "02",
    "exp_year": "2025",
    "cvc": "123"
}'| http  --follow --timeout 3600 POST 'https://sandbox.ecartpay.com/api/cards' \
 Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug' \
 Content-Type:'application/json' \
 Cookie:'lang=en'

// -------------------------------------------------------------

# wget

wget --no-check-certificate --quiet \
  --method POST \
  --timeout=0 \
  --header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug' \
  --header 'Content-Type: application/json' \
  --header 'Cookie: lang=en' \
  --body-data '{
    "number": "4242424242424132",
    "name": "Ecart Pay",
    "exp_month": "02",
    "exp_year": "2025",
    "cvc": "123"
}' \
   'https://sandbox.ecartpay.com/api/cards'
let parameters = "{\r\n    \"number\": \"4242424242424132\",\r\n    \"name\": \"Ecart Pay\",\r\n    \"exp_month\": \"02\",\r\n    \"exp_year\": \"2025\",\r\n    \"cvc\": \"123\"\r\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/cards")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("lang=en", forHTTPHeaderField: "Cookie")

request.httpMethod = "POST"
request.httpBody = postData

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": "6255aa54c2c8a9f87135daad",
    "account_id": "62559ba8085afe001606a916",
    "brand": "visa",
    "last": "4142",
    "created_at": "2022-04-12T16:35:32.139Z",
    "exp_month": "01",
    "exp_year": "2012",
    "name": "Ecart Pay",
    "number": "U2FsdGVkX1/8Y7XiovRkPZ3vZ0VYqT/AWibdiAN+A1VGAXcQrHbX9A==",
    "updated_at": "2022-04-12T16:35:32.139Z"
}

How to Delete a Card

For enhanced control and security, Ecart Pay allows users to delete stored cards when they are no longer needed. This ensures that your account remains clutter-free and secure. Users need to make a request providing the necessary id.

Endpoint

DELETE {{baseURL}}/api/cards/{card_id}

This endpoint deletes a specific card by its unique identifier. Removing a saved card is useful when updating your payment methods or ensuring data security.

Headers

  • Authorization: {token}

Example Request

curl --location --request DELETE 'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug' \
--header 'Cookie: lang=en'
package main

import (
  "fmt"
  "net/http"
  "io"
)

func main() {

  url := "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34"
  method := "DELETE"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
  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))
}
DELETE /api/cards/678551ec8b3f78f49c915e34 HTTP/1.1
Host: sandbox.ecartpay.com
Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug
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/cards/678551ec8b3f78f49c915e34")
  .method("DELETE", body)
  .addHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
  .addHeader("Cookie", "lang=en")
  .build();
Response response = client.newCall(request).execute();

// -------------------------------------------------------------

// Unirest

Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.delete("https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34")
  .header("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
  .header("Cookie", "lang=en")
  .asString();
// Fetch

const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");
myHeaders.append("Cookie", "lang=en");

const requestOptions = {
  method: "DELETE",
  headers: myHeaders,
  redirect: "follow"
};

fetch("https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));

// -------------------------------------------------------------

// jQuery

var settings = {
  "url": "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34",
  "method": "DELETE",
  "timeout": 0,
  "headers": {
    "Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug",
    "Cookie": "lang=en"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

// -------------------------------------------------------------

// XHR

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
  if(this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");
// 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, "DELETE");
  curl_easy_setopt(curl, CURLOPT_URL, "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34");
  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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");
  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: 'delete',
  maxBodyLength: Infinity,
  url: 'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34',
  headers: { 
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug', 
    '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': 'DELETE',
  'hostname': 'sandbox.ecartpay.com',
  'path': '/api/cards/678551ec8b3f78f49c915e34',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    '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': 'DELETE',
  'url': 'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    '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('DELETE', 'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34')
  .headers({
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    '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/cards/678551ec8b3f78f49c915e34"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug",
  @"Cookie": @"lang=en"
};

[request setAllHTTPHeaderFields:headers];

[request setHTTPMethod:@"DELETE"];

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/cards/678551ec8b3f78f49c915e34" in
  let headers = Header.init ()
    |> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug"
    |> fun h -> Header.add h "Cookie" "lang=en"
  in
  Client.call ~headers `DELETE 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/cards/678551ec8b3f78f49c915e34',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'DELETE',
  CURLOPT_HTTPHEADER => array(
    'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    'Cookie: lang=en'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

// -------------------------------------------------------------

// Guzzle

<?php
$client = new Client();
$headers = [
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Cookie' => 'lang=en'
];
$request = new Request('DELETE', 'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34', $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/cards/678551ec8b3f78f49c915e34');
$request->setMethod(HTTP_Request2::METHOD_DELETE);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  '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/cards/678551ec8b3f78f49c915e34');
$request->setRequestMethod('DELETE');
$request->setOptions(array());
$request->setHeaders(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  '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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
$headers.Add("Cookie", "lang=en")

$response = Invoke-RestMethod 'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34' -Method 'DELETE' -Headers $headers
$response | ConvertTo-Json
# http.client

import http.client

conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = ''
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Cookie': 'lang=en'
}
conn.request("DELETE", "/api/cards/678551ec8b3f78f49c915e34", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

// -------------------------------------------------------------

# Requests

import requests

url = "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34"

payload = {}
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Cookie': 'lang=en'
}

response = requests.request("DELETE", url, headers=headers, data=payload)

print(response.text)
# httr

library(httr)

headers = c(
  'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Cookie' = 'lang=en'
)

res <- VERB("DELETE", url = "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34", add_headers(headers))

cat(content(res, 'text'))

// -------------------------------------------------------------

# RCurl

library(RCurl)
headers = c(
  "Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug",
  "Cookie" = "lang=en"
)
res <- httpDELETE("https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34", httpheader = headers, followlocation = TRUE)
cat(res)
require "uri"
require "net/http"

url = URI("https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug"
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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug".parse()?);
    headers.insert("Cookie", "lang=en".parse()?);

    let request = client.request(reqwest::Method::DELETE, "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34")
        .headers(headers);

    let response = request.send().await?;
    let body = response.text().await?;

    println!("{}", body);

    Ok(())
}
# Httpie

http --follow --timeout 3600 DELETE 'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34' \
 Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug' \
 Cookie:'lang=en'

// -------------------------------------------------------------

# wget

wget --no-check-certificate --quiet \
  --method DELETE \
  --timeout=0 \
  --header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug' \
  --header 'Cookie: lang=en' \
   'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34'
var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug", forHTTPHeaderField: "Authorization")
request.addValue("lang=en", forHTTPHeaderField: "Cookie")

request.httpMethod = "DELETE"

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

{
  "success": true
}

How to Retrieve All Stored Cards

To retrieve a list of all active cards in your account, make a request to the following:

Endpoint

GET {{baseURL}}/api/cards

Headers

  • Authorization: {token}

Example Request

curl --location 'https://sandbox.ecartpay.com/api/cards' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug' \
--header 'Cookie: lang=en'
package main

import (
  "fmt"
  "net/http"
  "io"
)

func main() {

  url := "https://sandbox.ecartpay.com/api/cards"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
  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/cards HTTP/1.1
Host: sandbox.ecartpay.com
Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug
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/cards")
  .method("GET", body)
  .addHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
  .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/cards")
  .header("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
  .header("Cookie", "lang=en")
  .asString();
// Fetch

const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");
myHeaders.append("Cookie", "lang=en");

const requestOptions = {
  method: "GET",
  headers: myHeaders,
  redirect: "follow"
};

fetch("https://sandbox.ecartpay.com/api/cards", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));

// -------------------------------------------------------------

// jQuery

var settings = {
  "url": "https://sandbox.ecartpay.com/api/cards",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug",
    "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/cards");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");
// 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/cards");
  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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");
  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/cards',
  headers: { 
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug', 
    '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/cards',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    '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/cards',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    '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/cards')
  .headers({
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    '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/cards"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug",
  @"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/cards" in
  let headers = Header.init ()
    |> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug"
    |> 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/cards',
  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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
    'Cookie: lang=en'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

// -------------------------------------------------------------

// Guzzle

<?php
$client = new Client();
$headers = [
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Cookie' => 'lang=en'
];
$request = new Request('GET', 'https://sandbox.ecartpay.com/api/cards', $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/cards');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  '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/cards');
$request->setRequestMethod('GET');
$request->setOptions(array());
$request->setHeaders(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  '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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
$headers.Add("Cookie", "lang=en")

$response = Invoke-RestMethod 'https://sandbox.ecartpay.com/api/cards' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
# http.client

import http.client

conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = ''
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Cookie': 'lang=en'
}
conn.request("GET", "/api/cards", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

// -------------------------------------------------------------

# Requests

import requests

url = "https://sandbox.ecartpay.com/api/cards"

payload = {}
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Cookie': 'lang=en'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
# httr

library(httr)

headers = c(
  'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug',
  'Cookie' = 'lang=en'
)

res <- VERB("GET", url = "https://sandbox.ecartpay.com/api/cards", add_headers(headers))

cat(content(res, 'text'))

// -------------------------------------------------------------

# RCurl

library(RCurl)
headers = c(
  "Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug",
  "Cookie" = "lang=en"
)
res <- getURL("https://sandbox.ecartpay.com/api/cards", .opts=list(httpheader = headers, followlocation = TRUE))
cat(res)
require "uri"
require "net/http"

url = URI("https://sandbox.ecartpay.com/api/cards")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug"
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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug".parse()?);
    headers.insert("Cookie", "lang=en".parse()?);

    let request = client.request(reqwest::Method::GET, "https://sandbox.ecartpay.com/api/cards")
        .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/cards' \
 Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug' \
 Cookie:'lang=en'

// -------------------------------------------------------------

# wget

wget --no-check-certificate --quiet \
  --method GET \
  --timeout=0 \
  --header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug' \
  --header 'Cookie: lang=en' \
   'https://sandbox.ecartpay.com/api/cards'
var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/cards")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug", 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": "6255aa54c2c8a9f87135daad",
        "brand": "visa",
        "exp_month": "01",
        "exp_year": "2012",
        "last": "4142",
        "name": "Ecart Pay",
        "created_at": "2022-04-12T16:35:32.139Z",
        "updated_at": "2022-04-12T16:36:30.318Z"
    },
    {
        "id": "6255aa95c2c8a9f87135e7d6",
        "brand": "visa",
        "exp_month": "01",
        "exp_year": "2012",
        "last": "4332",
        "name": "Ecart Pay",
        "created_at": "2022-04-12T16:36:37.005Z",
        "updated_at": "2022-04-12T16:37:06.412Z"
    }
]

How to Retrieve a Single Card

To retrieve details of a specific card, send a request to the following:

Endpoint

GET {{baseURL}}/api/cards/{card_id}

Headers

  • Authorization: {token}

Example Request

curl --location 'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
package main

import (
  "fmt"
  "net/http"
  "io"
)

func main() {

  url := "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")

  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/cards/678551ec8b3f78f49c915e34 HTTP/1.1
Host: sandbox.ecartpay.com
Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug
// 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/cards/678551ec8b3f78f49c915e34")
  .method("GET", body)
  .addHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
  .build();
Response response = client.newCall(request).execute();

// -------------------------------------------------------------

// Unirest

Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34")
  .header("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")
  .asString();
// Fetch

const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");

const requestOptions = {
  method: "GET",
  headers: myHeaders,
  redirect: "follow"
};

fetch("https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));

// -------------------------------------------------------------

// jQuery

var settings = {
  "url": "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug"
  },
};

$.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/cards/678551ec8b3f78f49c915e34");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");

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/cards/678551ec8b3f78f49c915e34");
  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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug");
  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/cards/678551ec8b3f78f49c915e34',
  headers: { 
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
  }
};

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/cards/678551ec8b3f78f49c915e34',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
  },
  '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/cards/678551ec8b3f78f49c915e34',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
  }
};
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/cards/678551ec8b3f78f49c915e34')
  .headers({
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
  })
  .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/cards/678551ec8b3f78f49c915e34"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug"
};

[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/cards/678551ec8b3f78f49c915e34" in
  let headers = Header.init ()
    |> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug"
  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/cards/678551ec8b3f78f49c915e34',
  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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

// -------------------------------------------------------------

// Guzzle

<?php
$client = new Client();
$headers = [
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
];
$request = new Request('GET', 'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34', $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/cards/678551ec8b3f78f49c915e34');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
));
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/cards/678551ec8b3f78f49c915e34');
$request->setRequestMethod('GET');
$request->setOptions(array());
$request->setHeaders(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug")

$response = Invoke-RestMethod 'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
# http.client

import http.client

conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = ''
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
}
conn.request("GET", "/api/cards/678551ec8b3f78f49c915e34", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

// -------------------------------------------------------------

# Requests

import requests

url = "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34"

payload = {}
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
# httr

library(httr)

headers = c(
  'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'
)

res <- VERB("GET", url = "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34", add_headers(headers))

cat(content(res, 'text'))

// -------------------------------------------------------------

# RCurl

library(RCurl)
headers = c(
  "Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug"
)
res <- getURL("https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34", .opts=list(httpheader = headers, followlocation = TRUE))
cat(res)
require "uri"
require "net/http"

url = URI("https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug"

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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug".parse()?);

    let request = client.request(reqwest::Method::GET, "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34")
        .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/cards/678551ec8b3f78f49c915e34' \
 Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug'

// -------------------------------------------------------------

# wget

wget --no-check-certificate --quiet \
  --method GET \
  --timeout=0 \
  --header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug' \
   'https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34'
var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/cards/678551ec8b3f78f49c915e34")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzkyODg3OTMsImV4cCI6MTczOTI5MjM5M30.o3bUTdpH493jiKsQncJR5F44w-uLXwvbE6DUtlLUndEof7TU4NTIQuI0CwFP5mPlibtlwSUSWitF54hvh30Nug", forHTTPHeaderField: "Authorization")

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": "6255aa54c2c8a9f87135daad",
    "account_id": "62559ba8085afe001606a916",
    "brand": "visa",
    "last": "4142",
    "created_at": "2022-04-12T16:35:32.139Z",
    "exp_month": "01",
    "exp_year": "2012",
    "name": "Ecart Pay",
    "number": "4242424203424142",
    "updated_at": "2022-04-12T16:36:30.318Z"
}

By leveraging these card management features, Ecart Pay empowers users to take full control of their payment methods while maintaining high standards of security and efficiency.