Initiate OOB Authentication Challenge
curl --request POST \
--url 'https://api.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate' \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"authenticationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"challengeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cardholder": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customerNumber": "<string>"
},
"card": {
"id": "b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47",
"maskedPan": "342170******9554"
},
"merchant": {
"name": "Airline of the world inc.",
"country": "FIN",
"url": "https://www.airline.com/order/64674"
}
}
'import requests
url = "https://api.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate"
payload = {
"authenticationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"challengeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cardholder": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customerNumber": "<string>"
},
"card": {
"id": "b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47",
"maskedPan": "342170******9554"
},
"merchant": {
"name": "Airline of the world inc.",
"country": "FIN",
"url": "https://www.airline.com/order/64674"
}
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
authenticationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
challengeId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
cardholder: {id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', customerNumber: '<string>'},
card: {id: 'b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47', maskedPan: '342170******9554'},
merchant: {
name: 'Airline of the world inc.',
country: 'FIN',
url: 'https://www.airline.com/order/64674'
}
})
};
fetch('https://api.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate', 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.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate",
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([
'authenticationId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'challengeId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'cardholder' => [
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'customerNumber' => '<string>'
],
'card' => [
'id' => 'b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47',
'maskedPan' => '342170******9554'
],
'merchant' => [
'name' => 'Airline of the world inc.',
'country' => 'FIN',
'url' => 'https://www.airline.com/order/64674'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$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.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate"
payload := strings.NewReader("{\n \"authenticationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"challengeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cardholder\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customerNumber\": \"<string>\"\n },\n \"card\": {\n \"id\": \"b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47\",\n \"maskedPan\": \"342170******9554\"\n },\n \"merchant\": {\n \"name\": \"Airline of the world inc.\",\n \"country\": \"FIN\",\n \"url\": \"https://www.airline.com/order/64674\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
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.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"authenticationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"challengeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cardholder\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customerNumber\": \"<string>\"\n },\n \"card\": {\n \"id\": \"b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47\",\n \"maskedPan\": \"342170******9554\"\n },\n \"merchant\": {\n \"name\": \"Airline of the world inc.\",\n \"country\": \"FIN\",\n \"url\": \"https://www.airline.com/order/64674\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"authenticationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"challengeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cardholder\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customerNumber\": \"<string>\"\n },\n \"card\": {\n \"id\": \"b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47\",\n \"maskedPan\": \"342170******9554\"\n },\n \"merchant\": {\n \"name\": \"Airline of the world inc.\",\n \"country\": \"FIN\",\n \"url\": \"https://www.airline.com/order/64674\"\n }\n}"
response = http.request(request)
puts response.read_body3DS
Initiate OOB Authentication Challenge
In Out-of-Band (OOB) authentication flow, Enfuce sends an authentication challenge webhook notification to the issuer’s registered endpoint for cardholder’s approval.
POST
/
v1
/
3ds
/
oob
/
challenge
/
initiate
Initiate OOB Authentication Challenge
curl --request POST \
--url 'https://api.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate' \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"authenticationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"challengeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cardholder": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customerNumber": "<string>"
},
"card": {
"id": "b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47",
"maskedPan": "342170******9554"
},
"merchant": {
"name": "Airline of the world inc.",
"country": "FIN",
"url": "https://www.airline.com/order/64674"
}
}
'import requests
url = "https://api.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate"
payload = {
"authenticationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"challengeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cardholder": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customerNumber": "<string>"
},
"card": {
"id": "b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47",
"maskedPan": "342170******9554"
},
"merchant": {
"name": "Airline of the world inc.",
"country": "FIN",
"url": "https://www.airline.com/order/64674"
}
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
authenticationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
challengeId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
cardholder: {id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', customerNumber: '<string>'},
card: {id: 'b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47', maskedPan: '342170******9554'},
merchant: {
name: 'Airline of the world inc.',
country: 'FIN',
url: 'https://www.airline.com/order/64674'
}
})
};
fetch('https://api.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate', 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.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate",
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([
'authenticationId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'challengeId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'cardholder' => [
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'customerNumber' => '<string>'
],
'card' => [
'id' => 'b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47',
'maskedPan' => '342170******9554'
],
'merchant' => [
'name' => 'Airline of the world inc.',
'country' => 'FIN',
'url' => 'https://www.airline.com/order/64674'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$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.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate"
payload := strings.NewReader("{\n \"authenticationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"challengeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cardholder\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customerNumber\": \"<string>\"\n },\n \"card\": {\n \"id\": \"b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47\",\n \"maskedPan\": \"342170******9554\"\n },\n \"merchant\": {\n \"name\": \"Airline of the world inc.\",\n \"country\": \"FIN\",\n \"url\": \"https://www.airline.com/order/64674\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
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.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"authenticationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"challengeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cardholder\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customerNumber\": \"<string>\"\n },\n \"card\": {\n \"id\": \"b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47\",\n \"maskedPan\": \"342170******9554\"\n },\n \"merchant\": {\n \"name\": \"Airline of the world inc.\",\n \"country\": \"FIN\",\n \"url\": \"https://www.airline.com/order/64674\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/processor/v1/3ds/oob/challenge/initiate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"authenticationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"challengeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cardholder\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customerNumber\": \"<string>\"\n },\n \"card\": {\n \"id\": \"b7e2a1d4-3f8c-4e29-91bc-0d5a6f2e8c47\",\n \"maskedPan\": \"342170******9554\"\n },\n \"merchant\": {\n \"name\": \"Airline of the world inc.\",\n \"country\": \"FIN\",\n \"url\": \"https://www.airline.com/order/64674\"\n }\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Body
application/json
Unique identifier of the authentication request.
Unique challenge identifier of this authentication step.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Authentication challenge acknowledged
Was this page helpful?
⌘I

