POST Check if 3D Secure is available
{{baseUrl}}/get3dsAvailability
BODY json

{
  "additionalData": {},
  "brands": [],
  "cardNumber": "",
  "merchantAccount": "",
  "recurringDetailReference": "",
  "shopperReference": ""
}
Examples
REQUEST

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/get3dsAvailability");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}");

CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])

(client/post "{{baseUrl}}/get3dsAvailability" {:content-type :json
                                                               :form-params {:additionalData {}
                                                                             :brands []
                                                                             :cardNumber ""
                                                                             :merchantAccount ""
                                                                             :recurringDetailReference ""
                                                                             :shopperReference ""}})
require "http/client"

url = "{{baseUrl}}/get3dsAvailability"
headers = HTTP::Headers{
  "content-type" => "application/json"
}
reqBody = "{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}"

response = HTTP::Client.post url, headers: headers, body: reqBody
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Post,
    RequestUri = new Uri("{{baseUrl}}/get3dsAvailability"),
    Content = new StringContent("{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}")
    {
        Headers =
        {
            ContentType = new MediaTypeHeaderValue("application/json")
        }
    }
};
using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/get3dsAvailability");
var request = new RestRequest("", Method.Post);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}", ParameterType.RequestBody);
var response = client.Execute(request);
package main

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

func main() {

	url := "{{baseUrl}}/get3dsAvailability"

	payload := strings.NewReader("{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
POST /baseUrl/get3dsAvailability HTTP/1.1
Content-Type: application/json
Host: example.com
Content-Length: 147

{
  "additionalData": {},
  "brands": [],
  "cardNumber": "",
  "merchantAccount": "",
  "recurringDetailReference": "",
  "shopperReference": ""
}
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("POST", "{{baseUrl}}/get3dsAvailability")
  .setHeader("content-type", "application/json")
  .setBody("{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}")
  .execute()
  .toCompletableFuture()
  .thenAccept(System.out::println)
  .join();

client.close();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("{{baseUrl}}/get3dsAvailability"))
    .header("content-type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}"))
    .build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}");
Request request = new Request.Builder()
  .url("{{baseUrl}}/get3dsAvailability")
  .post(body)
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
HttpResponse response = Unirest.post("{{baseUrl}}/get3dsAvailability")
  .header("content-type", "application/json")
  .body("{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}")
  .asString();
const data = JSON.stringify({
  additionalData: {},
  brands: [],
  cardNumber: '',
  merchantAccount: '',
  recurringDetailReference: '',
  shopperReference: ''
});

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

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

xhr.open('POST', '{{baseUrl}}/get3dsAvailability');
xhr.setRequestHeader('content-type', 'application/json');

xhr.send(data);
import axios from 'axios';

const options = {
  method: 'POST',
  url: '{{baseUrl}}/get3dsAvailability',
  headers: {'content-type': 'application/json'},
  data: {
    additionalData: {},
    brands: [],
    cardNumber: '',
    merchantAccount: '',
    recurringDetailReference: '',
    shopperReference: ''
  }
};

try {
  const { data } = await axios.request(options);
  console.log(data);
} catch (error) {
  console.error(error);
}
const url = '{{baseUrl}}/get3dsAvailability';
const options = {
  method: 'POST',
  headers: {'content-type': 'application/json'},
  body: '{"additionalData":{},"brands":[],"cardNumber":"","merchantAccount":"","recurringDetailReference":"","shopperReference":""}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
const settings = {
  async: true,
  crossDomain: true,
  url: '{{baseUrl}}/get3dsAvailability',
  method: 'POST',
  headers: {
    'content-type': 'application/json'
  },
  processData: false,
  data: '{\n  "additionalData": {},\n  "brands": [],\n  "cardNumber": "",\n  "merchantAccount": "",\n  "recurringDetailReference": "",\n  "shopperReference": ""\n}'
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
val client = OkHttpClient()

val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}")
val request = Request.Builder()
  .url("{{baseUrl}}/get3dsAvailability")
  .post(body)
  .addHeader("content-type", "application/json")
  .build()

val response = client.newCall(request).execute()
const http = require('https');

const options = {
  method: 'POST',
  hostname: 'example.com',
  port: null,
  path: '/baseUrl/get3dsAvailability',
  headers: {
    'content-type': 'application/json'
  }
};

const req = http.request(options, function (res) {
  const chunks = [];

  res.on('data', function (chunk) {
    chunks.push(chunk);
  });

  res.on('end', function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.write(JSON.stringify({
  additionalData: {},
  brands: [],
  cardNumber: '',
  merchantAccount: '',
  recurringDetailReference: '',
  shopperReference: ''
}));
req.end();
const request = require('request');

const options = {
  method: 'POST',
  url: '{{baseUrl}}/get3dsAvailability',
  headers: {'content-type': 'application/json'},
  body: {
    additionalData: {},
    brands: [],
    cardNumber: '',
    merchantAccount: '',
    recurringDetailReference: '',
    shopperReference: ''
  },
  json: true
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
const unirest = require('unirest');

const req = unirest('POST', '{{baseUrl}}/get3dsAvailability');

req.headers({
  'content-type': 'application/json'
});

req.type('json');
req.send({
  additionalData: {},
  brands: [],
  cardNumber: '',
  merchantAccount: '',
  recurringDetailReference: '',
  shopperReference: ''
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
const axios = require('axios').default;

const options = {
  method: 'POST',
  url: '{{baseUrl}}/get3dsAvailability',
  headers: {'content-type': 'application/json'},
  data: {
    additionalData: {},
    brands: [],
    cardNumber: '',
    merchantAccount: '',
    recurringDetailReference: '',
    shopperReference: ''
  }
};

try {
  const { data } = await axios.request(options);
  console.log(data);
} catch (error) {
  console.error(error);
}
const fetch = require('node-fetch');

const url = '{{baseUrl}}/get3dsAvailability';
const options = {
  method: 'POST',
  headers: {'content-type': 'application/json'},
  body: '{"additionalData":{},"brands":[],"cardNumber":"","merchantAccount":"","recurringDetailReference":"","shopperReference":""}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
#import 

NSDictionary *headers = @{ @"content-type": @"application/json" };
NSDictionary *parameters = @{ @"additionalData": @{  },
                              @"brands": @[  ],
                              @"cardNumber": @"",
                              @"merchantAccount": @"",
                              @"recurringDetailReference": @"",
                              @"shopperReference": @"" };

NSData *postData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/get3dsAvailability"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt

let uri = Uri.of_string "{{baseUrl}}/get3dsAvailability" in
let headers = Header.add (Header.init ()) "content-type" "application/json" in
let body = Cohttp_lwt_body.of_string "{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}" in

Client.call ~headers ~body `POST uri
>>= fun (res, body_stream) ->
  (* Do stuff with the result *)
 "{{baseUrl}}/get3dsAvailability",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'additionalData' => [
        
    ],
    'brands' => [
        
    ],
    'cardNumber' => '',
    'merchantAccount' => '',
    'recurringDetailReference' => '',
    'shopperReference' => ''
  ]),
  CURLOPT_HTTPHEADER => [
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
request('POST', '{{baseUrl}}/get3dsAvailability', [
  'body' => '{
  "additionalData": {},
  "brands": [],
  "cardNumber": "",
  "merchantAccount": "",
  "recurringDetailReference": "",
  "shopperReference": ""
}',
  'headers' => [
    'content-type' => 'application/json',
  ],
]);

echo $response->getBody();
setUrl('{{baseUrl}}/get3dsAvailability');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders([
  'content-type' => 'application/json'
]);

$request->setContentType('application/json');
$request->setBody(json_encode([
  'additionalData' => [
    
  ],
  'brands' => [
    
  ],
  'cardNumber' => '',
  'merchantAccount' => '',
  'recurringDetailReference' => '',
  'shopperReference' => ''
]));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
append(json_encode([
  'additionalData' => [
    
  ],
  'brands' => [
    
  ],
  'cardNumber' => '',
  'merchantAccount' => '',
  'recurringDetailReference' => '',
  'shopperReference' => ''
]));
$request->setRequestUrl('{{baseUrl}}/get3dsAvailability');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setHeaders([
  'content-type' => 'application/json'
]);

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
$headers=@{}
$headers.Add("content-type", "application/json")
$response = Invoke-WebRequest -Uri '{{baseUrl}}/get3dsAvailability' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
  "additionalData": {},
  "brands": [],
  "cardNumber": "",
  "merchantAccount": "",
  "recurringDetailReference": "",
  "shopperReference": ""
}'
$headers=@{}
$headers.Add("content-type", "application/json")
$response = Invoke-RestMethod -Uri '{{baseUrl}}/get3dsAvailability' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
  "additionalData": {},
  "brands": [],
  "cardNumber": "",
  "merchantAccount": "",
  "recurringDetailReference": "",
  "shopperReference": ""
}'
import http.client

conn = http.client.HTTPSConnection("example.com")

payload = "{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}"

headers = { 'content-type': "application/json" }

conn.request("POST", "/baseUrl/get3dsAvailability", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
import requests

url = "{{baseUrl}}/get3dsAvailability"

payload = {
    "additionalData": {},
    "brands": [],
    "cardNumber": "",
    "merchantAccount": "",
    "recurringDetailReference": "",
    "shopperReference": ""
}
headers = {"content-type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
library(httr)

url <- "{{baseUrl}}/get3dsAvailability"

payload <- "{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}"

encode <- "json"

response <- VERB("POST", url, body = payload, content_type("application/json"), encode = encode)

content(response, "text")
require 'uri'
require 'net/http'

url = URI("{{baseUrl}}/get3dsAvailability")

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

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}"

response = http.request(request)
puts response.read_body
require 'faraday'

conn = Faraday.new(
  url: 'https://example.com',
  headers: {'Content-Type' => 'application/json'}
)

response = conn.post('/baseUrl/get3dsAvailability') do |req|
  req.body = "{\n  \"additionalData\": {},\n  \"brands\": [],\n  \"cardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"recurringDetailReference\": \"\",\n  \"shopperReference\": \"\"\n}"
end

puts response.status
puts response.body
use serde_json::json;
use reqwest;

#[tokio::main]
pub async fn main() {
    let url = "{{baseUrl}}/get3dsAvailability";

    let payload = json!({
        "additionalData": json!({}),
        "brands": (),
        "cardNumber": "",
        "merchantAccount": "",
        "recurringDetailReference": "",
        "shopperReference": ""
    });

    let mut headers = reqwest::header::HeaderMap::new();
    headers.insert("content-type", "application/json".parse().unwrap());

    let client = reqwest::Client::new();
    let response = client.post(url)
        .headers(headers)
        .json(&payload)
        .send()
        .await;

    let results = response.unwrap()
        .json::()
        .await
        .unwrap();

    dbg!(results);
}
curl --request POST \
  --url {{baseUrl}}/get3dsAvailability \
  --header 'content-type: application/json' \
  --data '{
  "additionalData": {},
  "brands": [],
  "cardNumber": "",
  "merchantAccount": "",
  "recurringDetailReference": "",
  "shopperReference": ""
}'
echo '{
  "additionalData": {},
  "brands": [],
  "cardNumber": "",
  "merchantAccount": "",
  "recurringDetailReference": "",
  "shopperReference": ""
}' |  \
  http POST {{baseUrl}}/get3dsAvailability \
  content-type:application/json
wget --quiet \
  --method POST \
  --header 'content-type: application/json' \
  --body-data '{\n  "additionalData": {},\n  "brands": [],\n  "cardNumber": "",\n  "merchantAccount": "",\n  "recurringDetailReference": "",\n  "shopperReference": ""\n}' \
  --output-document \
  - {{baseUrl}}/get3dsAvailability
import Foundation

let headers = ["content-type": "application/json"]
let parameters = [
  "additionalData": [],
  "brands": [],
  "cardNumber": "",
  "merchantAccount": "",
  "recurringDetailReference": "",
  "shopperReference": ""
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/get3dsAvailability")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
RESPONSE HEADERS

Content-Type
application/json
RESPONSE BODY json

{
  "threeDS1Supported": true,
  "threeDS2CardRangeDetails": [],
  "threeDS2supported": false
}
RESPONSE HEADERS

Content-Type
application/json
RESPONSE BODY json

{
  "errorCode": "702",
  "errorType": "validation",
  "message": "Unexpected input: I",
  "status": 400
}
POST Get a fees cost estimate
{{baseUrl}}/getCostEstimate
BODY json

{
  "amount": {
    "currency": "",
    "value": 0
  },
  "assumptions": {
    "assume3DSecureAuthenticated": false,
    "assumeLevel3Data": false,
    "installments": 0
  },
  "cardNumber": "",
  "encryptedCardNumber": "",
  "merchantAccount": "",
  "merchantDetails": {
    "countryCode": "",
    "enrolledIn3DSecure": false,
    "mcc": ""
  },
  "recurring": {
    "contract": "",
    "recurringDetailName": "",
    "recurringExpiry": "",
    "recurringFrequency": "",
    "tokenService": ""
  },
  "selectedRecurringDetailReference": "",
  "shopperInteraction": "",
  "shopperReference": ""
}
Examples
REQUEST

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/getCostEstimate");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}");

CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])

(client/post "{{baseUrl}}/getCostEstimate" {:content-type :json
                                                            :form-params {:amount {:currency ""
                                                                                   :value 0}
                                                                          :assumptions {:assume3DSecureAuthenticated false
                                                                                        :assumeLevel3Data false
                                                                                        :installments 0}
                                                                          :cardNumber ""
                                                                          :encryptedCardNumber ""
                                                                          :merchantAccount ""
                                                                          :merchantDetails {:countryCode ""
                                                                                            :enrolledIn3DSecure false
                                                                                            :mcc ""}
                                                                          :recurring {:contract ""
                                                                                      :recurringDetailName ""
                                                                                      :recurringExpiry ""
                                                                                      :recurringFrequency ""
                                                                                      :tokenService ""}
                                                                          :selectedRecurringDetailReference ""
                                                                          :shopperInteraction ""
                                                                          :shopperReference ""}})
require "http/client"

url = "{{baseUrl}}/getCostEstimate"
headers = HTTP::Headers{
  "content-type" => "application/json"
}
reqBody = "{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}"

response = HTTP::Client.post url, headers: headers, body: reqBody
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Post,
    RequestUri = new Uri("{{baseUrl}}/getCostEstimate"),
    Content = new StringContent("{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}")
    {
        Headers =
        {
            ContentType = new MediaTypeHeaderValue("application/json")
        }
    }
};
using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/getCostEstimate");
var request = new RestRequest("", Method.Post);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}", ParameterType.RequestBody);
var response = client.Execute(request);
package main

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

func main() {

	url := "{{baseUrl}}/getCostEstimate"

	payload := strings.NewReader("{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
POST /baseUrl/getCostEstimate HTTP/1.1
Content-Type: application/json
Host: example.com
Content-Length: 596

{
  "amount": {
    "currency": "",
    "value": 0
  },
  "assumptions": {
    "assume3DSecureAuthenticated": false,
    "assumeLevel3Data": false,
    "installments": 0
  },
  "cardNumber": "",
  "encryptedCardNumber": "",
  "merchantAccount": "",
  "merchantDetails": {
    "countryCode": "",
    "enrolledIn3DSecure": false,
    "mcc": ""
  },
  "recurring": {
    "contract": "",
    "recurringDetailName": "",
    "recurringExpiry": "",
    "recurringFrequency": "",
    "tokenService": ""
  },
  "selectedRecurringDetailReference": "",
  "shopperInteraction": "",
  "shopperReference": ""
}
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("POST", "{{baseUrl}}/getCostEstimate")
  .setHeader("content-type", "application/json")
  .setBody("{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}")
  .execute()
  .toCompletableFuture()
  .thenAccept(System.out::println)
  .join();

client.close();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("{{baseUrl}}/getCostEstimate"))
    .header("content-type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}"))
    .build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}");
Request request = new Request.Builder()
  .url("{{baseUrl}}/getCostEstimate")
  .post(body)
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
HttpResponse response = Unirest.post("{{baseUrl}}/getCostEstimate")
  .header("content-type", "application/json")
  .body("{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}")
  .asString();
const data = JSON.stringify({
  amount: {
    currency: '',
    value: 0
  },
  assumptions: {
    assume3DSecureAuthenticated: false,
    assumeLevel3Data: false,
    installments: 0
  },
  cardNumber: '',
  encryptedCardNumber: '',
  merchantAccount: '',
  merchantDetails: {
    countryCode: '',
    enrolledIn3DSecure: false,
    mcc: ''
  },
  recurring: {
    contract: '',
    recurringDetailName: '',
    recurringExpiry: '',
    recurringFrequency: '',
    tokenService: ''
  },
  selectedRecurringDetailReference: '',
  shopperInteraction: '',
  shopperReference: ''
});

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

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

xhr.open('POST', '{{baseUrl}}/getCostEstimate');
xhr.setRequestHeader('content-type', 'application/json');

xhr.send(data);
import axios from 'axios';

const options = {
  method: 'POST',
  url: '{{baseUrl}}/getCostEstimate',
  headers: {'content-type': 'application/json'},
  data: {
    amount: {currency: '', value: 0},
    assumptions: {assume3DSecureAuthenticated: false, assumeLevel3Data: false, installments: 0},
    cardNumber: '',
    encryptedCardNumber: '',
    merchantAccount: '',
    merchantDetails: {countryCode: '', enrolledIn3DSecure: false, mcc: ''},
    recurring: {
      contract: '',
      recurringDetailName: '',
      recurringExpiry: '',
      recurringFrequency: '',
      tokenService: ''
    },
    selectedRecurringDetailReference: '',
    shopperInteraction: '',
    shopperReference: ''
  }
};

try {
  const { data } = await axios.request(options);
  console.log(data);
} catch (error) {
  console.error(error);
}
const url = '{{baseUrl}}/getCostEstimate';
const options = {
  method: 'POST',
  headers: {'content-type': 'application/json'},
  body: '{"amount":{"currency":"","value":0},"assumptions":{"assume3DSecureAuthenticated":false,"assumeLevel3Data":false,"installments":0},"cardNumber":"","encryptedCardNumber":"","merchantAccount":"","merchantDetails":{"countryCode":"","enrolledIn3DSecure":false,"mcc":""},"recurring":{"contract":"","recurringDetailName":"","recurringExpiry":"","recurringFrequency":"","tokenService":""},"selectedRecurringDetailReference":"","shopperInteraction":"","shopperReference":""}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
const settings = {
  async: true,
  crossDomain: true,
  url: '{{baseUrl}}/getCostEstimate',
  method: 'POST',
  headers: {
    'content-type': 'application/json'
  },
  processData: false,
  data: '{\n  "amount": {\n    "currency": "",\n    "value": 0\n  },\n  "assumptions": {\n    "assume3DSecureAuthenticated": false,\n    "assumeLevel3Data": false,\n    "installments": 0\n  },\n  "cardNumber": "",\n  "encryptedCardNumber": "",\n  "merchantAccount": "",\n  "merchantDetails": {\n    "countryCode": "",\n    "enrolledIn3DSecure": false,\n    "mcc": ""\n  },\n  "recurring": {\n    "contract": "",\n    "recurringDetailName": "",\n    "recurringExpiry": "",\n    "recurringFrequency": "",\n    "tokenService": ""\n  },\n  "selectedRecurringDetailReference": "",\n  "shopperInteraction": "",\n  "shopperReference": ""\n}'
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
val client = OkHttpClient()

val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}")
val request = Request.Builder()
  .url("{{baseUrl}}/getCostEstimate")
  .post(body)
  .addHeader("content-type", "application/json")
  .build()

val response = client.newCall(request).execute()
const http = require('https');

const options = {
  method: 'POST',
  hostname: 'example.com',
  port: null,
  path: '/baseUrl/getCostEstimate',
  headers: {
    'content-type': 'application/json'
  }
};

const req = http.request(options, function (res) {
  const chunks = [];

  res.on('data', function (chunk) {
    chunks.push(chunk);
  });

  res.on('end', function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.write(JSON.stringify({
  amount: {currency: '', value: 0},
  assumptions: {assume3DSecureAuthenticated: false, assumeLevel3Data: false, installments: 0},
  cardNumber: '',
  encryptedCardNumber: '',
  merchantAccount: '',
  merchantDetails: {countryCode: '', enrolledIn3DSecure: false, mcc: ''},
  recurring: {
    contract: '',
    recurringDetailName: '',
    recurringExpiry: '',
    recurringFrequency: '',
    tokenService: ''
  },
  selectedRecurringDetailReference: '',
  shopperInteraction: '',
  shopperReference: ''
}));
req.end();
const request = require('request');

const options = {
  method: 'POST',
  url: '{{baseUrl}}/getCostEstimate',
  headers: {'content-type': 'application/json'},
  body: {
    amount: {currency: '', value: 0},
    assumptions: {assume3DSecureAuthenticated: false, assumeLevel3Data: false, installments: 0},
    cardNumber: '',
    encryptedCardNumber: '',
    merchantAccount: '',
    merchantDetails: {countryCode: '', enrolledIn3DSecure: false, mcc: ''},
    recurring: {
      contract: '',
      recurringDetailName: '',
      recurringExpiry: '',
      recurringFrequency: '',
      tokenService: ''
    },
    selectedRecurringDetailReference: '',
    shopperInteraction: '',
    shopperReference: ''
  },
  json: true
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
const unirest = require('unirest');

const req = unirest('POST', '{{baseUrl}}/getCostEstimate');

req.headers({
  'content-type': 'application/json'
});

req.type('json');
req.send({
  amount: {
    currency: '',
    value: 0
  },
  assumptions: {
    assume3DSecureAuthenticated: false,
    assumeLevel3Data: false,
    installments: 0
  },
  cardNumber: '',
  encryptedCardNumber: '',
  merchantAccount: '',
  merchantDetails: {
    countryCode: '',
    enrolledIn3DSecure: false,
    mcc: ''
  },
  recurring: {
    contract: '',
    recurringDetailName: '',
    recurringExpiry: '',
    recurringFrequency: '',
    tokenService: ''
  },
  selectedRecurringDetailReference: '',
  shopperInteraction: '',
  shopperReference: ''
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
const axios = require('axios').default;

const options = {
  method: 'POST',
  url: '{{baseUrl}}/getCostEstimate',
  headers: {'content-type': 'application/json'},
  data: {
    amount: {currency: '', value: 0},
    assumptions: {assume3DSecureAuthenticated: false, assumeLevel3Data: false, installments: 0},
    cardNumber: '',
    encryptedCardNumber: '',
    merchantAccount: '',
    merchantDetails: {countryCode: '', enrolledIn3DSecure: false, mcc: ''},
    recurring: {
      contract: '',
      recurringDetailName: '',
      recurringExpiry: '',
      recurringFrequency: '',
      tokenService: ''
    },
    selectedRecurringDetailReference: '',
    shopperInteraction: '',
    shopperReference: ''
  }
};

try {
  const { data } = await axios.request(options);
  console.log(data);
} catch (error) {
  console.error(error);
}
const fetch = require('node-fetch');

const url = '{{baseUrl}}/getCostEstimate';
const options = {
  method: 'POST',
  headers: {'content-type': 'application/json'},
  body: '{"amount":{"currency":"","value":0},"assumptions":{"assume3DSecureAuthenticated":false,"assumeLevel3Data":false,"installments":0},"cardNumber":"","encryptedCardNumber":"","merchantAccount":"","merchantDetails":{"countryCode":"","enrolledIn3DSecure":false,"mcc":""},"recurring":{"contract":"","recurringDetailName":"","recurringExpiry":"","recurringFrequency":"","tokenService":""},"selectedRecurringDetailReference":"","shopperInteraction":"","shopperReference":""}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
#import 

NSDictionary *headers = @{ @"content-type": @"application/json" };
NSDictionary *parameters = @{ @"amount": @{ @"currency": @"", @"value": @0 },
                              @"assumptions": @{ @"assume3DSecureAuthenticated": @NO, @"assumeLevel3Data": @NO, @"installments": @0 },
                              @"cardNumber": @"",
                              @"encryptedCardNumber": @"",
                              @"merchantAccount": @"",
                              @"merchantDetails": @{ @"countryCode": @"", @"enrolledIn3DSecure": @NO, @"mcc": @"" },
                              @"recurring": @{ @"contract": @"", @"recurringDetailName": @"", @"recurringExpiry": @"", @"recurringFrequency": @"", @"tokenService": @"" },
                              @"selectedRecurringDetailReference": @"",
                              @"shopperInteraction": @"",
                              @"shopperReference": @"" };

NSData *postData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/getCostEstimate"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt

let uri = Uri.of_string "{{baseUrl}}/getCostEstimate" in
let headers = Header.add (Header.init ()) "content-type" "application/json" in
let body = Cohttp_lwt_body.of_string "{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}" in

Client.call ~headers ~body `POST uri
>>= fun (res, body_stream) ->
  (* Do stuff with the result *)
 "{{baseUrl}}/getCostEstimate",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'amount' => [
        'currency' => '',
        'value' => 0
    ],
    'assumptions' => [
        'assume3DSecureAuthenticated' => null,
        'assumeLevel3Data' => null,
        'installments' => 0
    ],
    'cardNumber' => '',
    'encryptedCardNumber' => '',
    'merchantAccount' => '',
    'merchantDetails' => [
        'countryCode' => '',
        'enrolledIn3DSecure' => null,
        'mcc' => ''
    ],
    'recurring' => [
        'contract' => '',
        'recurringDetailName' => '',
        'recurringExpiry' => '',
        'recurringFrequency' => '',
        'tokenService' => ''
    ],
    'selectedRecurringDetailReference' => '',
    'shopperInteraction' => '',
    'shopperReference' => ''
  ]),
  CURLOPT_HTTPHEADER => [
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
request('POST', '{{baseUrl}}/getCostEstimate', [
  'body' => '{
  "amount": {
    "currency": "",
    "value": 0
  },
  "assumptions": {
    "assume3DSecureAuthenticated": false,
    "assumeLevel3Data": false,
    "installments": 0
  },
  "cardNumber": "",
  "encryptedCardNumber": "",
  "merchantAccount": "",
  "merchantDetails": {
    "countryCode": "",
    "enrolledIn3DSecure": false,
    "mcc": ""
  },
  "recurring": {
    "contract": "",
    "recurringDetailName": "",
    "recurringExpiry": "",
    "recurringFrequency": "",
    "tokenService": ""
  },
  "selectedRecurringDetailReference": "",
  "shopperInteraction": "",
  "shopperReference": ""
}',
  'headers' => [
    'content-type' => 'application/json',
  ],
]);

echo $response->getBody();
setUrl('{{baseUrl}}/getCostEstimate');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders([
  'content-type' => 'application/json'
]);

$request->setContentType('application/json');
$request->setBody(json_encode([
  'amount' => [
    'currency' => '',
    'value' => 0
  ],
  'assumptions' => [
    'assume3DSecureAuthenticated' => null,
    'assumeLevel3Data' => null,
    'installments' => 0
  ],
  'cardNumber' => '',
  'encryptedCardNumber' => '',
  'merchantAccount' => '',
  'merchantDetails' => [
    'countryCode' => '',
    'enrolledIn3DSecure' => null,
    'mcc' => ''
  ],
  'recurring' => [
    'contract' => '',
    'recurringDetailName' => '',
    'recurringExpiry' => '',
    'recurringFrequency' => '',
    'tokenService' => ''
  ],
  'selectedRecurringDetailReference' => '',
  'shopperInteraction' => '',
  'shopperReference' => ''
]));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
append(json_encode([
  'amount' => [
    'currency' => '',
    'value' => 0
  ],
  'assumptions' => [
    'assume3DSecureAuthenticated' => null,
    'assumeLevel3Data' => null,
    'installments' => 0
  ],
  'cardNumber' => '',
  'encryptedCardNumber' => '',
  'merchantAccount' => '',
  'merchantDetails' => [
    'countryCode' => '',
    'enrolledIn3DSecure' => null,
    'mcc' => ''
  ],
  'recurring' => [
    'contract' => '',
    'recurringDetailName' => '',
    'recurringExpiry' => '',
    'recurringFrequency' => '',
    'tokenService' => ''
  ],
  'selectedRecurringDetailReference' => '',
  'shopperInteraction' => '',
  'shopperReference' => ''
]));
$request->setRequestUrl('{{baseUrl}}/getCostEstimate');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setHeaders([
  'content-type' => 'application/json'
]);

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
$headers=@{}
$headers.Add("content-type", "application/json")
$response = Invoke-WebRequest -Uri '{{baseUrl}}/getCostEstimate' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
  "amount": {
    "currency": "",
    "value": 0
  },
  "assumptions": {
    "assume3DSecureAuthenticated": false,
    "assumeLevel3Data": false,
    "installments": 0
  },
  "cardNumber": "",
  "encryptedCardNumber": "",
  "merchantAccount": "",
  "merchantDetails": {
    "countryCode": "",
    "enrolledIn3DSecure": false,
    "mcc": ""
  },
  "recurring": {
    "contract": "",
    "recurringDetailName": "",
    "recurringExpiry": "",
    "recurringFrequency": "",
    "tokenService": ""
  },
  "selectedRecurringDetailReference": "",
  "shopperInteraction": "",
  "shopperReference": ""
}'
$headers=@{}
$headers.Add("content-type", "application/json")
$response = Invoke-RestMethod -Uri '{{baseUrl}}/getCostEstimate' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
  "amount": {
    "currency": "",
    "value": 0
  },
  "assumptions": {
    "assume3DSecureAuthenticated": false,
    "assumeLevel3Data": false,
    "installments": 0
  },
  "cardNumber": "",
  "encryptedCardNumber": "",
  "merchantAccount": "",
  "merchantDetails": {
    "countryCode": "",
    "enrolledIn3DSecure": false,
    "mcc": ""
  },
  "recurring": {
    "contract": "",
    "recurringDetailName": "",
    "recurringExpiry": "",
    "recurringFrequency": "",
    "tokenService": ""
  },
  "selectedRecurringDetailReference": "",
  "shopperInteraction": "",
  "shopperReference": ""
}'
import http.client

conn = http.client.HTTPSConnection("example.com")

payload = "{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}"

headers = { 'content-type': "application/json" }

conn.request("POST", "/baseUrl/getCostEstimate", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
import requests

url = "{{baseUrl}}/getCostEstimate"

payload = {
    "amount": {
        "currency": "",
        "value": 0
    },
    "assumptions": {
        "assume3DSecureAuthenticated": False,
        "assumeLevel3Data": False,
        "installments": 0
    },
    "cardNumber": "",
    "encryptedCardNumber": "",
    "merchantAccount": "",
    "merchantDetails": {
        "countryCode": "",
        "enrolledIn3DSecure": False,
        "mcc": ""
    },
    "recurring": {
        "contract": "",
        "recurringDetailName": "",
        "recurringExpiry": "",
        "recurringFrequency": "",
        "tokenService": ""
    },
    "selectedRecurringDetailReference": "",
    "shopperInteraction": "",
    "shopperReference": ""
}
headers = {"content-type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
library(httr)

url <- "{{baseUrl}}/getCostEstimate"

payload <- "{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}"

encode <- "json"

response <- VERB("POST", url, body = payload, content_type("application/json"), encode = encode)

content(response, "text")
require 'uri'
require 'net/http'

url = URI("{{baseUrl}}/getCostEstimate")

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

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}"

response = http.request(request)
puts response.read_body
require 'faraday'

conn = Faraday.new(
  url: 'https://example.com',
  headers: {'Content-Type' => 'application/json'}
)

response = conn.post('/baseUrl/getCostEstimate') do |req|
  req.body = "{\n  \"amount\": {\n    \"currency\": \"\",\n    \"value\": 0\n  },\n  \"assumptions\": {\n    \"assume3DSecureAuthenticated\": false,\n    \"assumeLevel3Data\": false,\n    \"installments\": 0\n  },\n  \"cardNumber\": \"\",\n  \"encryptedCardNumber\": \"\",\n  \"merchantAccount\": \"\",\n  \"merchantDetails\": {\n    \"countryCode\": \"\",\n    \"enrolledIn3DSecure\": false,\n    \"mcc\": \"\"\n  },\n  \"recurring\": {\n    \"contract\": \"\",\n    \"recurringDetailName\": \"\",\n    \"recurringExpiry\": \"\",\n    \"recurringFrequency\": \"\",\n    \"tokenService\": \"\"\n  },\n  \"selectedRecurringDetailReference\": \"\",\n  \"shopperInteraction\": \"\",\n  \"shopperReference\": \"\"\n}"
end

puts response.status
puts response.body
use serde_json::json;
use reqwest;

#[tokio::main]
pub async fn main() {
    let url = "{{baseUrl}}/getCostEstimate";

    let payload = json!({
        "amount": json!({
            "currency": "",
            "value": 0
        }),
        "assumptions": json!({
            "assume3DSecureAuthenticated": false,
            "assumeLevel3Data": false,
            "installments": 0
        }),
        "cardNumber": "",
        "encryptedCardNumber": "",
        "merchantAccount": "",
        "merchantDetails": json!({
            "countryCode": "",
            "enrolledIn3DSecure": false,
            "mcc": ""
        }),
        "recurring": json!({
            "contract": "",
            "recurringDetailName": "",
            "recurringExpiry": "",
            "recurringFrequency": "",
            "tokenService": ""
        }),
        "selectedRecurringDetailReference": "",
        "shopperInteraction": "",
        "shopperReference": ""
    });

    let mut headers = reqwest::header::HeaderMap::new();
    headers.insert("content-type", "application/json".parse().unwrap());

    let client = reqwest::Client::new();
    let response = client.post(url)
        .headers(headers)
        .json(&payload)
        .send()
        .await;

    let results = response.unwrap()
        .json::()
        .await
        .unwrap();

    dbg!(results);
}
curl --request POST \
  --url {{baseUrl}}/getCostEstimate \
  --header 'content-type: application/json' \
  --data '{
  "amount": {
    "currency": "",
    "value": 0
  },
  "assumptions": {
    "assume3DSecureAuthenticated": false,
    "assumeLevel3Data": false,
    "installments": 0
  },
  "cardNumber": "",
  "encryptedCardNumber": "",
  "merchantAccount": "",
  "merchantDetails": {
    "countryCode": "",
    "enrolledIn3DSecure": false,
    "mcc": ""
  },
  "recurring": {
    "contract": "",
    "recurringDetailName": "",
    "recurringExpiry": "",
    "recurringFrequency": "",
    "tokenService": ""
  },
  "selectedRecurringDetailReference": "",
  "shopperInteraction": "",
  "shopperReference": ""
}'
echo '{
  "amount": {
    "currency": "",
    "value": 0
  },
  "assumptions": {
    "assume3DSecureAuthenticated": false,
    "assumeLevel3Data": false,
    "installments": 0
  },
  "cardNumber": "",
  "encryptedCardNumber": "",
  "merchantAccount": "",
  "merchantDetails": {
    "countryCode": "",
    "enrolledIn3DSecure": false,
    "mcc": ""
  },
  "recurring": {
    "contract": "",
    "recurringDetailName": "",
    "recurringExpiry": "",
    "recurringFrequency": "",
    "tokenService": ""
  },
  "selectedRecurringDetailReference": "",
  "shopperInteraction": "",
  "shopperReference": ""
}' |  \
  http POST {{baseUrl}}/getCostEstimate \
  content-type:application/json
wget --quiet \
  --method POST \
  --header 'content-type: application/json' \
  --body-data '{\n  "amount": {\n    "currency": "",\n    "value": 0\n  },\n  "assumptions": {\n    "assume3DSecureAuthenticated": false,\n    "assumeLevel3Data": false,\n    "installments": 0\n  },\n  "cardNumber": "",\n  "encryptedCardNumber": "",\n  "merchantAccount": "",\n  "merchantDetails": {\n    "countryCode": "",\n    "enrolledIn3DSecure": false,\n    "mcc": ""\n  },\n  "recurring": {\n    "contract": "",\n    "recurringDetailName": "",\n    "recurringExpiry": "",\n    "recurringFrequency": "",\n    "tokenService": ""\n  },\n  "selectedRecurringDetailReference": "",\n  "shopperInteraction": "",\n  "shopperReference": ""\n}' \
  --output-document \
  - {{baseUrl}}/getCostEstimate
import Foundation

let headers = ["content-type": "application/json"]
let parameters = [
  "amount": [
    "currency": "",
    "value": 0
  ],
  "assumptions": [
    "assume3DSecureAuthenticated": false,
    "assumeLevel3Data": false,
    "installments": 0
  ],
  "cardNumber": "",
  "encryptedCardNumber": "",
  "merchantAccount": "",
  "merchantDetails": [
    "countryCode": "",
    "enrolledIn3DSecure": false,
    "mcc": ""
  ],
  "recurring": [
    "contract": "",
    "recurringDetailName": "",
    "recurringExpiry": "",
    "recurringFrequency": "",
    "tokenService": ""
  ],
  "selectedRecurringDetailReference": "",
  "shopperInteraction": "",
  "shopperReference": ""
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/getCostEstimate")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
RESPONSE HEADERS

Content-Type
application/json
RESPONSE BODY json

{
  "costEstimateAmount": {
    "currency": "EUR",
    "value": 12
  },
  "resultCode": "Success",
  "surchargeType": "PASSTHROUGH"
}
RESPONSE HEADERS

Content-Type
application/json
RESPONSE BODY json

{
  "costEstimateAmount": {
    "currency": "EUR",
    "value": 12
  },
  "resultCode": "Success",
  "surchargeType": "PASSTHROUGH"
}
RESPONSE HEADERS

Content-Type
application/json
RESPONSE BODY json

{
  "costEstimateAmount": {
    "currency": "EUR",
    "value": 12
  },
  "resultCode": "Success",
  "surchargeType": "PASSTHROUGH"
}
RESPONSE HEADERS

Content-Type
application/json
RESPONSE BODY json

{
  "costEstimateAmount": {
    "currency": "EUR",
    "value": 12
  },
  "resultCode": "Success",
  "surchargeType": "PASSTHROUGH"
}
RESPONSE HEADERS

Content-Type
application/json
RESPONSE BODY json

{
  "errorCode": "702",
  "errorType": "validation",
  "message": "Unexpected input: I",
  "status": 400
}