Generate KYB Link
curl --request POST \
--url https://api.cadanapay.com/v1/businesses/{businessId}/kyb-link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"refreshURL": "<string>",
"returnURL": "<string>",
"expiresIn": 3600
}
'import requests
url = "https://api.cadanapay.com/v1/businesses/{businessId}/kyb-link"
payload = {
"refreshURL": "<string>",
"returnURL": "<string>",
"expiresIn": 3600
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({refreshURL: '<string>', returnURL: '<string>', expiresIn: 3600})
};
fetch('https://api.cadanapay.com/v1/businesses/{businessId}/kyb-link', 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.cadanapay.com/v1/businesses/{businessId}/kyb-link",
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([
'refreshURL' => '<string>',
'returnURL' => '<string>',
'expiresIn' => 3600
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.cadanapay.com/v1/businesses/{businessId}/kyb-link"
payload := strings.NewReader("{\n \"refreshURL\": \"<string>\",\n \"returnURL\": \"<string>\",\n \"expiresIn\": 3600\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.cadanapay.com/v1/businesses/{businessId}/kyb-link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"refreshURL\": \"<string>\",\n \"returnURL\": \"<string>\",\n \"expiresIn\": 3600\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cadanapay.com/v1/businesses/{businessId}/kyb-link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"refreshURL\": \"<string>\",\n \"returnURL\": \"<string>\",\n \"expiresIn\": 3600\n}"
response = http.request(request)
puts response.read_body{
"id": "8ef9a712-cdae-4110-b1ea-9ba95abbee6e",
"url": "<string>",
"expiresAt": 1716796800
}{
"code": "invalid_request_body",
"message": "The request body provided is not valid",
"params": {
"field": "Value is invalid."
}
}{
"code": "resource_not_found",
"message": "Requested resource could not be found."
}{
"code": "internal_error",
"message": "An unexpected error occurred. Please try again later."
}KYB
Generate KYB Link
Get KYB Link
POST
/
v1
/
businesses
/
{businessId}
/
kyb-link
Generate KYB Link
curl --request POST \
--url https://api.cadanapay.com/v1/businesses/{businessId}/kyb-link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"refreshURL": "<string>",
"returnURL": "<string>",
"expiresIn": 3600
}
'import requests
url = "https://api.cadanapay.com/v1/businesses/{businessId}/kyb-link"
payload = {
"refreshURL": "<string>",
"returnURL": "<string>",
"expiresIn": 3600
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({refreshURL: '<string>', returnURL: '<string>', expiresIn: 3600})
};
fetch('https://api.cadanapay.com/v1/businesses/{businessId}/kyb-link', 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.cadanapay.com/v1/businesses/{businessId}/kyb-link",
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([
'refreshURL' => '<string>',
'returnURL' => '<string>',
'expiresIn' => 3600
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.cadanapay.com/v1/businesses/{businessId}/kyb-link"
payload := strings.NewReader("{\n \"refreshURL\": \"<string>\",\n \"returnURL\": \"<string>\",\n \"expiresIn\": 3600\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.cadanapay.com/v1/businesses/{businessId}/kyb-link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"refreshURL\": \"<string>\",\n \"returnURL\": \"<string>\",\n \"expiresIn\": 3600\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cadanapay.com/v1/businesses/{businessId}/kyb-link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"refreshURL\": \"<string>\",\n \"returnURL\": \"<string>\",\n \"expiresIn\": 3600\n}"
response = http.request(request)
puts response.read_body{
"id": "8ef9a712-cdae-4110-b1ea-9ba95abbee6e",
"url": "<string>",
"expiresAt": 1716796800
}{
"code": "invalid_request_body",
"message": "The request body provided is not valid",
"params": {
"field": "Value is invalid."
}
}{
"code": "resource_not_found",
"message": "Requested resource could not be found."
}{
"code": "internal_error",
"message": "An unexpected error occurred. Please try again later."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Required when using a Platform API token. The tenant key identifying which business to operate on.
Path Parameters
The unique identifier for the business
Body
application/json
Common request body for endpoints that generate hosted (link-out) URLs.
The URL the user will be redirected to if the link is expired
The URL that the user will be redirected to upon leaving or completing the linked flow.
Seconds the link stays valid for, up to 72 hours. Omit for the 24 hour default. A value above the maximum is rejected rather than shortened. The resolved expiry comes back as expiresAt.
Required range:
1 <= x <= 259200Example:
3600
⌘I