Open a KYC verification session
curl --request GET \
--url https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}const url = 'https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}';
const options = {method: 'GET'};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}"
response = requests.get(url)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"type": "https://docs.swipelux.com/errors/not-found",
"title": "<string>",
"status": 404,
"code": "not_found",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/kyc-process-conflict",
"title": "<string>",
"status": 409,
"code": "kyc_process_conflict",
"detail": "<string>",
"correlationId": "<string>",
"retryable": true,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}{
"type": "https://docs.swipelux.com/errors/kyc-session-terminal",
"title": "<string>",
"status": 410,
"code": "kyc_session_terminal",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/internal-error",
"title": "<string>",
"status": 500,
"code": "internal_error",
"detail": "<string>",
"correlationId": "<string>",
"retryable": true,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/kyc-provider-unavailable",
"title": "<string>",
"status": 502,
"code": "kyc_provider_unavailable",
"detail": "<string>",
"correlationId": "<string>",
"retryable": true,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/verification-collection-mapping-invalid",
"title": "<string>",
"status": 503,
"code": "verification_collection_mapping_invalid",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}Tasks
Open a KYC verification session
Opens the verification session for one customer task. Swipelux checks that the session belongs to the customer and task. An eligible session that only asks for documents opens a Swipelux-hosted upload page. Otherwise, or when that page is unavailable, Swipelux redirects to a short-lived verification link that is never stored or returned in task JSON. A session that already completed successfully returns 204 No Content.
GET
/
kyc
/
redirect
/
{customerId}
/
{taskId}
/
{verificationSessionId}
Open a KYC verification session
curl --request GET \
--url https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}const url = 'https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}';
const options = {method: 'GET'};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}"
response = requests.get(url)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://platform.swipelux.com/kyc/redirect/{customerId}/{taskId}/{verificationSessionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"type": "https://docs.swipelux.com/errors/not-found",
"title": "<string>",
"status": 404,
"code": "not_found",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/kyc-process-conflict",
"title": "<string>",
"status": 409,
"code": "kyc_process_conflict",
"detail": "<string>",
"correlationId": "<string>",
"retryable": true,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}{
"type": "https://docs.swipelux.com/errors/kyc-session-terminal",
"title": "<string>",
"status": 410,
"code": "kyc_session_terminal",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/internal-error",
"title": "<string>",
"status": 500,
"code": "internal_error",
"detail": "<string>",
"correlationId": "<string>",
"retryable": true,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/kyc-provider-unavailable",
"title": "<string>",
"status": 502,
"code": "kyc_provider_unavailable",
"detail": "<string>",
"correlationId": "<string>",
"retryable": true,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "https://docs.swipelux.com/errors/verification-collection-mapping-invalid",
"title": "<string>",
"status": 503,
"code": "verification_collection_mapping_invalid",
"detail": "<string>",
"correlationId": "<string>",
"retryable": false,
"errors": [
{
"pointer": "<string>",
"code": "<string>",
"message": "<string>"
}
],
"transferId": "<string>",
"statusReason": {
"code": "sanctions_screening_failed",
"message": "<string>",
"actor": "customer",
"retryable": true
},
"reviewAnswer": "<string>",
"capabilities": [
"<string>"
],
"blockingResources": [
{
"type": "account",
"id": "<string>",
"requiredAction": "archive_account"
}
]
}Path Parameters
Owning customer identifier.
Pattern:
^cus_[0-9A-Za-z]{18}$Lifecycle-owned task identifier.
Pattern:
^tsk_[0-9A-Za-z]{18}$Exact hosted verification-session identifier.
Pattern:
^vfy_[0-9A-Za-z]{18}$Response
The exact verification session already completed successfully; no provider redirect is required.