Documentation

Advanced Operations with Checkouts

Ecart Pay provides advanced features for managing checkouts, including the ability to update checkout details, modify items within a checkout, and retrieve checkout information. These functionalities ensure businesses can adapt to changing customer needs and provide seamless payment experiences.

Managing checkouts effectively is essential for businesses striving to deliver flexible and personalized payment solutions. With Ecart Pay, you can update key details of an existing checkout, modify individual items included in a checkout, and retrieve comprehensive information about a specific checkout. These capabilities are particularly useful for adapting to customer requests, correcting errors, or enhancing the overall user experience.

By allowing updates to both the checkout and its items, Ecart Pay enables businesses to maintain accuracy and transparency throughout the payment process. Additionally, retrieving checkout details is invaluable for generating reports, resolving customer inquiries, or integrating checkout data into other business systems.

Updating Checkouts

Why is it Useful to Update Checkouts?

Updating checkouts ensures that customer preferences, changes in pricing, or adjustments to services can be accommodated even after the initial checkout creation. This flexibility minimizes friction and enhances the overall payment journey.

Common Use Cases:

  • Updating customer contact information.
  • Modifying the notify_url to redirect transaction notifications.
  • Adjusting checkout concepts or amounts based on customer feedback.

Update Checkout

This endpoint allows businesses to update key details of an existing checkout, such as customer information or notification settings.

Endpoint

PUT {{baseURL}}/api/checkouts/{{id}}

Headers

  • Authorization: {token}

Request Body

{
    "customer": {
        "email": "[email protected]",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "8123688056"
    }
}

Example Request

curl --location --request PUT 'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw' \
--header 'Content-Type: application/json' \
--header 'Cookie: lang=en' \
--data-raw '{
    "customer": {
        "email": "[email protected]",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "8123688056"
    }
}'
package main

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

func main() {

  url := "https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34"
  method := "PUT"

  payload := strings.NewReader(`{
    "customer": {
        "email": "[email protected]",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "8123688056"
    }
}`)

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

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw")
  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))
}
PUT /api/checkouts/678551ec8b3f78f49c915e34 HTTP/1.1
Host: sandbox.ecartpay.com
Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw
Content-Type: application/json
Cookie: lang=en
Content-Length: 152

{
    "customer": {
        "email": "[email protected]",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "8123688056"
    }
}
// OkHttp

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"customer\": {\n        \"email\": \"[email protected]\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n        \"phone\": \"8123688056\"\n    }\n}");
Request request = new Request.Builder()
  .url("https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34")
  .method("PUT", body)
  .addHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw")
  .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.put("https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34")
  .header("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw")
  .header("Content-Type", "application/json")
  .header("Cookie", "lang=en")
  .body("{\n    \"customer\": {\n        \"email\": \"[email protected]\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n        \"phone\": \"8123688056\"\n    }\n}")
  .asString();
// Fetch

const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Cookie", "lang=en");

const raw = JSON.stringify({
  "customer": {
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "8123688056"
  }
});

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

fetch("https://sandbox.ecartpay.com/api/checkouts/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/checkouts/678551ec8b3f78f49c915e34",
  "method": "PUT",
  "timeout": 0,
  "headers": {
    "Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw",
    "Content-Type": "application/json",
    "Cookie": "lang=en"
  },
  "data": JSON.stringify({
    "customer": {
      "email": "[email protected]",
      "first_name": "John",
      "last_name": "Doe",
      "phone": "8123688056"
    }
  }),
};

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

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

// XHR

var data = JSON.stringify({
  "customer": {
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "8123688056"
  }
});

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

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

xhr.open("PUT", "https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw");
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, "PUT");
  curl_easy_setopt(curl, CURLOPT_URL, "https://sandbox.ecartpay.com/api/checkouts/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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw");
  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 = "{\n    \"customer\": {\n        \"email\": \"[email protected]\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n        \"phone\": \"8123688056\"\n    }\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({
  "customer": {
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "8123688056"
  }
});

let config = {
  method: 'put',
  maxBodyLength: Infinity,
  url: 'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34',
  headers: { 
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw', 
    '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': 'PUT',
  'hostname': 'sandbox.ecartpay.com',
  'path': '/api/checkouts/678551ec8b3f78f49c915e34',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    '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({
  "customer": {
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "8123688056"
  }
});

req.write(postData);

req.end();

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

// Request

var request = require('request');
var options = {
  'method': 'PUT',
  'url': 'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    'Content-Type': 'application/json',
    'Cookie': 'lang=en'
  },
  body: JSON.stringify({
    "customer": {
      "email": "[email protected]",
      "first_name": "John",
      "last_name": "Doe",
      "phone": "8123688056"
    }
  })

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

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

// Unirest

var unirest = require('unirest');
var req = unirest('PUT', 'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34')
  .headers({
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    'Content-Type': 'application/json',
    'Cookie': 'lang=en'
  })
  .send(JSON.stringify({
    "customer": {
      "email": "[email protected]",
      "first_name": "John",
      "last_name": "Doe",
      "phone": "8123688056"
    }
  }))
  .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/checkouts/678551ec8b3f78f49c915e34"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw",
  @"Content-Type": @"application/json",
  @"Cookie": @"lang=en"
};

[request setAllHTTPHeaderFields:headers];
NSData *postData = [[NSData alloc] initWithData:[@"{\n    \"customer\": {\n        \"email\": \"[email protected]\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n        \"phone\": \"8123688056\"\n    }\n}" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];

[request setHTTPMethod:@"PUT"];

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 "{\n    \"customer\": {\n        \"email\": \"[email protected]\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n        \"phone\": \"8123688056\"\n    }\n}";;

let reqBody = 
  let uri = Uri.of_string "https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34" in
  let headers = Header.init ()
    |> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw"
    |> 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 `PUT 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/checkouts/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 => 'PUT',
  CURLOPT_POSTFIELDS =>'{
    "customer": {
        "email": "[email protected]",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "8123688056"
    }
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    'Content-Type: application/json',
    'Cookie: lang=en'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

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

// Guzzle

<?php
$client = new Client();
$headers = [
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Content-Type' => 'application/json',
  'Cookie' => 'lang=en'
];
$body = '{
  "customer": {
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "8123688056"
  }
}';
$request = new Request('PUT', 'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34', $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/checkouts/678551ec8b3f78f49c915e34');
$request->setMethod(HTTP_Request2::METHOD_PUT);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Content-Type' => 'application/json',
  'Cookie' => 'lang=en'
));
$request->setBody('{\n    "customer": {\n        "email": "[email protected]",\n        "first_name": "John",\n        "last_name": "Doe",\n        "phone": "8123688056"\n    }\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/checkouts/678551ec8b3f78f49c915e34');
$request->setRequestMethod('PUT');
$body = new http\Message\Body;
$body->append('{
    "customer": {
        "email": "[email protected]",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "8123688056"
    }
}');
$request->setBody($body);
$request->setOptions(array());
$request->setHeaders(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  '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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw")
$headers.Add("Content-Type", "application/json")
$headers.Add("Cookie", "lang=en")

$body = @"
{
    `"customer`": {
        `"email`": `"[email protected]`",
        `"first_name`": `"John`",
        `"last_name`": `"Doe`",
        `"phone`": `"8123688056`"
    }
}
"@

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

import http.client
import json

conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = json.dumps({
  "customer": {
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "8123688056"
  }
})
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Content-Type': 'application/json',
  'Cookie': 'lang=en'
}
conn.request("PUT", "/api/checkouts/678551ec8b3f78f49c915e34", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

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

# Requests

import requests
import json

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

payload = json.dumps({
  "customer": {
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "8123688056"
  }
})
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Content-Type': 'application/json',
  'Cookie': 'lang=en'
}

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

print(response.text)
# httr

library(httr)

headers = c(
  'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Content-Type' = 'application/json',
  'Cookie' = 'lang=en'
)

body = '{
  "customer": {
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "8123688056"
  }
}';

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

cat(content(res, 'text'))

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

# RCurl

library(RCurl)
headers = c(
  "Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw",
  "Content-Type" = "application/json",
  "Cookie" = "lang=en"
)
params = "{
  \"customer\": {
    \"email\": \"[email protected]\",
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"phone\": \"8123688056\"
  }
}"
res <- httpPUT("https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34", params, httpheader = headers, followlocation = TRUE)
cat(res)
require "uri"
require "json"
require "net/http"

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

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

request = Net::HTTP::Put.new(url)
request["Authorization"] = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw"
request["Content-Type"] = "application/json"
request["Cookie"] = "lang=en"
request.body = JSON.dump({
  "customer": {
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "8123688056"
  }
})

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

    let data = r#"{
    "customer": {
        "email": "[email protected]",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "8123688056"
    }
}"#;

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

    let request = client.request(reqwest::Method::PUT, "https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34")
        .headers(headers)
        .json(&json);

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

    println!("{}", body);

    Ok(())
}
# Httpie

printf '{
    "customer": {
        "email": "[email protected]",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "8123688056"
    }
}'| http  --follow --timeout 3600 PUT 'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34' \
 Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw' \
 Content-Type:'application/json' \
 Cookie:'lang=en'

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

# wget

wget --no-check-certificate --quiet \
  --method PUT \
  --timeout=0 \
  --header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw' \
  --header 'Content-Type: application/json' \
  --header 'Cookie: lang=en' \
  --body-data '{
    "customer": {
        "email": "[email protected]",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "8123688056"
    }
}' \
   'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34'
let parameters = "{\n    \"customer\": {\n        \"email\": \"[email protected]\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n        \"phone\": \"8123688056\"\n    }\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("lang=en", forHTTPHeaderField: "Cookie")

request.httpMethod = "PUT"
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": "65a80ecd6a78d6cf6d05c456",
    "account_id": "5fab3b20b40b0a613e1b6f15",
    "amounts": [
        100,
        200,
        500,
        100
    ],
    "concept": "Recharge",
    "notify_url": "https://example.com/webhooks/checkout?user_id=1",
    "items": [],
    "created_at": "2024-01-17T17:30:53.437Z",
    "updated_at": "2024-01-17T17:50:16.550Z",
    "customer": {
        "email": "[email protected]",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "8123688056"
    }
}

Updating Items

Why is it Useful to Update Items?

Modifying items within a checkout allows businesses to adjust specific details, such as prices or quantities, ensuring accuracy and alignment with customer needs. This feature is particularly valuable for correcting errors or updating services included in the checkout.

Common Use Cases:

  • Correcting the price of an item after creation.
  • Adjusting quantities based on customer input.
  • Updating item descriptions for clarity.

Update Item

This endpoint enables updates to specific items within a checkout, such as modifying prices or quantities.

Endpoint

PUT {{baseURL}}/api/checkouts/{{checkout_id}}/items/{{id}}

Headers

  • Authorization: {token}

Request Body

{
    "price": "200"
}

Example Request

curl --location --request PUT 'https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw' \
--header 'Content-Type: application/json' \
--header 'Cookie: lang=en' \
--data '{
    "price": "200"
}'
package main

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

func main() {

  url := "https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34"
  method := "PUT"

  payload := strings.NewReader(`{
    "price": "200"
}`)

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

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw")
  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))
}
PUT /api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34 HTTP/1.1
Host: sandbox.ecartpay.com
Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw
Content-Type: application/json
Cookie: lang=en
Content-Length: 22

{
    "price": "200"
}
// OkHttp

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"price\": \"200\"\n}");
Request request = new Request.Builder()
  .url("https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34")
  .method("PUT", body)
  .addHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw")
  .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.put("https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34")
  .header("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw")
  .header("Content-Type", "application/json")
  .header("Cookie", "lang=en")
  .body("{\n    \"price\": \"200\"\n}")
  .asString();
// Fetch

const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Cookie", "lang=en");

const raw = JSON.stringify({
  "price": "200"
});

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

fetch("https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/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/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34",
  "method": "PUT",
  "timeout": 0,
  "headers": {
    "Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw",
    "Content-Type": "application/json",
    "Cookie": "lang=en"
  },
  "data": JSON.stringify({
    "price": "200"
  }),
};

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

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

// XHR

var data = JSON.stringify({
  "price": "200"
});

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

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

xhr.open("PUT", "https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw");
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, "PUT");
  curl_easy_setopt(curl, CURLOPT_URL, "https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw");
  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 = "{\n    \"price\": \"200\"\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({
  "price": "200"
});

let config = {
  method: 'put',
  maxBodyLength: Infinity,
  url: 'https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34',
  headers: { 
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw', 
    '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': 'PUT',
  'hostname': 'sandbox.ecartpay.com',
  'path': '/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    '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({
  "price": "200"
});

req.write(postData);

req.end();

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

// Request

var request = require('request');
var options = {
  'method': 'PUT',
  'url': 'https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    'Content-Type': 'application/json',
    'Cookie': 'lang=en'
  },
  body: JSON.stringify({
    "price": "200"
  })

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

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

// Unirest

var unirest = require('unirest');
var req = unirest('PUT', 'https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34')
  .headers({
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    'Content-Type': 'application/json',
    'Cookie': 'lang=en'
  })
  .send(JSON.stringify({
    "price": "200"
  }))
  .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/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw",
  @"Content-Type": @"application/json",
  @"Cookie": @"lang=en"
};

[request setAllHTTPHeaderFields:headers];
NSData *postData = [[NSData alloc] initWithData:[@"{\n    \"price\": \"200\"\n}" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];

[request setHTTPMethod:@"PUT"];

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 "{\n    \"price\": \"200\"\n}";;

let reqBody = 
  let uri = Uri.of_string "https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34" in
  let headers = Header.init ()
    |> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw"
    |> 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 `PUT 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/checkouts/65a84ac08b65781903ee943c/items/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 => 'PUT',
  CURLOPT_POSTFIELDS =>'{
    "price": "200"
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    'Content-Type: application/json',
    'Cookie: lang=en'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

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

// Guzzle

<?php
$client = new Client();
$headers = [
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Content-Type' => 'application/json',
  'Cookie' => 'lang=en'
];
$body = '{
  "price": "200"
}';
$request = new Request('PUT', 'https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34', $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/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34');
$request->setMethod(HTTP_Request2::METHOD_PUT);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Content-Type' => 'application/json',
  'Cookie' => 'lang=en'
));
$request->setBody('{\n    "price": "200"\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/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34');
$request->setRequestMethod('PUT');
$body = new http\Message\Body;
$body->append('{
    "price": "200"
}');
$request->setBody($body);
$request->setOptions(array());
$request->setHeaders(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  '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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw")
$headers.Add("Content-Type", "application/json")
$headers.Add("Cookie", "lang=en")

$body = @"
{
    `"price`": `"200`"
}
"@

$response = Invoke-RestMethod 'https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34' -Method 'PUT' -Headers $headers -Body $body
$response | ConvertTo-Json
# http.client

import http.client
import json

conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = json.dumps({
  "price": "200"
})
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Content-Type': 'application/json',
  'Cookie': 'lang=en'
}
conn.request("PUT", "/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

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

# Requests

import requests
import json

url = "https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34"

payload = json.dumps({
  "price": "200"
})
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Content-Type': 'application/json',
  'Cookie': 'lang=en'
}

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

print(response.text)
# httr

library(httr)

headers = c(
  'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Content-Type' = 'application/json',
  'Cookie' = 'lang=en'
)

body = '{
  "price": "200"
}';

res <- VERB("PUT", url = "https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34", body = body, add_headers(headers))

cat(content(res, 'text'))

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

# RCurl

library(RCurl)
headers = c(
  "Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw",
  "Content-Type" = "application/json",
  "Cookie" = "lang=en"
)
params = "{
  \"price\": \"200\"
}"
res <- httpPUT("https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34", params, httpheader = headers, followlocation = TRUE)
cat(res)
require "uri"
require "json"
require "net/http"

url = URI("https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34")

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

request = Net::HTTP::Put.new(url)
request["Authorization"] = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw"
request["Content-Type"] = "application/json"
request["Cookie"] = "lang=en"
request.body = JSON.dump({
  "price": "200"
})

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

    let data = r#"{
    "price": "200"
}"#;

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

    let request = client.request(reqwest::Method::PUT, "https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34")
        .headers(headers)
        .json(&json);

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

    println!("{}", body);

    Ok(())
}
# Httpie

printf '{
    "price": "200"
}'| http  --follow --timeout 3600 PUT 'https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34' \
 Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw' \
 Content-Type:'application/json' \
 Cookie:'lang=en'

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

# wget

wget --no-check-certificate --quiet \
  --method PUT \
  --timeout=0 \
  --header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw' \
  --header 'Content-Type: application/json' \
  --header 'Cookie: lang=en' \
  --body-data '{
    "price": "200"
}' \
   'https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34'
let parameters = "{\n    \"price\": \"200\"\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/checkouts/65a84ac08b65781903ee943c/items/678551ec8b3f78f49c915e34")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("lang=en", forHTTPHeaderField: "Cookie")

request.httpMethod = "PUT"
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

{
    "name": "Recharge",
    "quantity": 1,
    "price": 200,
    "discount": 0,
    "total": 100,
    "is_service": false,
    "id": "65a84ac08b65781903ee943d"
}

Retrieving Checkout Details

Why is it Useful to Retrieve Checkout Details?

Accessing detailed information about a specific checkout allows businesses to:

  • Verify transaction details.
  • Display a summary of the purchase to the customer.
  • Integrate checkout data into reporting or analytics systems.

Common Use Cases:

  • Resolving customer inquiries.
  • Generating transaction reports.
  • Displaying order summaries during customer support interactions.

Get Checkout

This endpoint retrieves the complete details of a specific checkout, including customer information, items, and transaction metadata.

Endpoint

GET {{baseURL}}/api/checkouts/{{id}}

Headers

  • Authorization: {token}

Example Request

curl --location 'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw' \
--header 'Cookie: lang=en' \
--data ''
package main

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

func main() {

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

  payload := strings.NewReader(``)

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

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

const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw");
myHeaders.append("Cookie", "lang=en");

const raw = "";

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

fetch("https://sandbox.ecartpay.com/api/checkouts/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/checkouts/678551ec8b3f78f49c915e34",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw",
    "Cookie": "lang=en"
  },
};

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

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

// XHR

// WARNING: For GET requests, body is set to null by browsers.
var data = "";

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/checkouts/678551ec8b3f78f49c915e34");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw");
// 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, "GET");
  curl_easy_setopt(curl, CURLOPT_URL, "https://sandbox.ecartpay.com/api/checkouts/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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw");
  headers = curl_slist_append(headers, "Cookie: lang=en");
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
  const char *data = "";
  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 = '';

let config = {
  method: 'get',
  maxBodyLength: Infinity,
  url: 'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34',
  headers: { 
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw', 
    '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': 'GET',
  'hostname': 'sandbox.ecartpay.com',
  'path': '/api/checkouts/678551ec8b3f78f49c915e34',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    '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/checkouts/678551ec8b3f78f49c915e34',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    '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/checkouts/678551ec8b3f78f49c915e34')
  .headers({
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    'Cookie': 'lang=en'
  })
  .send("")
  .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/checkouts/678551ec8b3f78f49c915e34"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw",
  @"Cookie": @"lang=en"
};

[request setAllHTTPHeaderFields:headers];
NSData *postData = [[NSData alloc] initWithData:[@"" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];

[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/checkouts/678551ec8b3f78f49c915e34" in
  let headers = Header.init ()
    |> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw"
    |> 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/checkouts/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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
    'Cookie: lang=en'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

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

// Guzzle

<?php
$client = new Client();
$headers = [
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Cookie' => 'lang=en'
];
$body = '';
$request = new Request('GET', 'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34', $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/checkouts/678551ec8b3f78f49c915e34');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Cookie' => 'lang=en'
));
$request->setBody('');
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/checkouts/678551ec8b3f78f49c915e34');
$request->setRequestMethod('GET');
$body = new http\Message\Body;
$request->setBody($body);
$request->setOptions(array());
$request->setHeaders(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  '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.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw")
$headers.Add("Cookie", "lang=en")

$body = @"

"@

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

import http.client

conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = ''
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Cookie': 'lang=en'
}
conn.request("GET", "/api/checkouts/678551ec8b3f78f49c915e34", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

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

# Requests

import requests

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

payload = ""
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Cookie': 'lang=en'
}

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

print(response.text)
# httr

library(httr)

headers = c(
  'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw',
  'Cookie' = 'lang=en'
)

body = ""

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

cat(content(res, 'text'))

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

# RCurl

library(RCurl)
headers = c(
  "Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw",
  "Cookie" = "lang=en"
)
params = ""
res <- getURL("https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34", .opts=list(httpheader = headers, followlocation = TRUE))
cat(res)
require "uri"
require "net/http"

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

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

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

    let data = "";

    let request = client.request(reqwest::Method::GET, "https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34")
        .headers(headers)
        .body(data);

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

    println!("{}", body);

    Ok(())
}
# Httpie

http  --follow --timeout 3600 GET 'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34' \
 Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw' \
 Cookie:'lang=en'

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

# wget

wget --no-check-certificate --quiet \
  --method GET \
  --timeout=0 \
  --header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw' \
  --header 'Cookie: lang=en' \
   'https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34'
var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/checkouts/678551ec8b3f78f49c915e34")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgzNDE4MDIsImV4cCI6MTczODM0NTQwMn0.oljOZCifmNBdKJMc9J34kWNH6m6UzhOZUWc7L-_WlUdCZy0faONwwfn9SZaFBlAUs9KgStJGFc9PuW5zWcN7Jw", 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": "65b011ba7f9f32242108721f",
    "account_id": "5d2d436e3199ae000449065b",
    "title": "Ecart Pay",
    "subtitle": "The best payment solution",
    "image_url": "https://miimage.com/image.jpg",
    "currency": "MXN",
    "amounts": [
        100,
        200,
        500,
        1000,
        1500,
        3000
    ],
    "concept": "Recharge",
    "items": [
        {
            "name": "Recharge",
            "quantity": 1,
            "price": 100,
            "discount": 0,
            "is_service": false,
            "id": "65b011ba7f9f322421087221"
        }
    ],
    "customer_id": "65aff37afebdf2a42f88c178",
    "notify_url": "https://example.com/webhooks/checkout?user_id=1",
    "reference_id": "001",
    "reference": "Custom recharge",
    "token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9...",
    "public_id": "pub6189be80df291598221a5e93",
    "link": "https://sandbox.ecartpay.com/v2/checkout?id=65b011ba7f9f32242108721f",
    "created_at": "2024-01-23T19:21:30.912Z",
    "updated_at": "2024-01-23T19:21:30.912Z"
}

Conclusion

The ability to update checkouts and their items, along with retrieving checkout details, equips businesses with the tools necessary to adapt to changing needs and provide a superior payment experience. These functionalities not only enhance operational efficiency but also foster trust and satisfaction among customers.