Handle 3DS method completion
curl --request POST \
--url https://api.example.com/three-ds/method \
--header 'Content-Type: multipart/form-data' \
--form 'threeDSMethodData=<string>'import requests
url = "https://api.example.com/three-ds/method"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"threeDSMethodData\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
headers = {"Content-Type": "multipart/form-data"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const form = new FormData();
form.append('threeDSMethodData', '<string>');
const options = {method: 'POST'};
options.body = form;
fetch('https://api.example.com/three-ds/method', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/three-ds/method",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"threeDSMethodData\"\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/three-ds/method"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"threeDSMethodData\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/three-ds/method")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"threeDSMethodData\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/three-ds/method")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"threeDSMethodData\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body<string>{
"message": "<string>"
}3D Secure
Handle 3DS method completion
Callback endpoint for 3D Secure method completion. This is called by the card issuer after the 3DS method iframe has loaded and collected device information.
POST
/
three-ds
/
method
Handle 3DS method completion
curl --request POST \
--url https://api.example.com/three-ds/method \
--header 'Content-Type: multipart/form-data' \
--form 'threeDSMethodData=<string>'import requests
url = "https://api.example.com/three-ds/method"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"threeDSMethodData\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
headers = {"Content-Type": "multipart/form-data"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const form = new FormData();
form.append('threeDSMethodData', '<string>');
const options = {method: 'POST'};
options.body = form;
fetch('https://api.example.com/three-ds/method', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/three-ds/method",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"threeDSMethodData\"\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/three-ds/method"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"threeDSMethodData\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/three-ds/method")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"threeDSMethodData\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/three-ds/method")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"threeDSMethodData\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body<string>{
"message": "<string>"
}Query Parameters
The custom order identifier associated with the payment
Body
multipart/form-data
3D Secure method completion data
Base64 JSON the card issuer posts, carrying the 3DS server transaction identifier
Response
Loading screen displayed to the cardholder while payment is processed
The response is of type string.