Simulate KYC approval (sandbox only)
curl --request POST \
--url https://api.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval \
--header 'Api-Key: <api-key>' \
--header 'Idempotency-Key: <idempotency-key>'import requests
url = "https://api.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval"
headers = {
"Idempotency-Key": "<idempotency-key>",
"Api-Key": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', 'Api-Key': '<api-key>'}
};
fetch('https://api.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval', 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.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Api-Key: <api-key>",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Api-Key", "<api-key>")
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.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval")
.header("Idempotency-Key", "<idempotency-key>")
.header("Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"customer_id": "00000000-0000-0000-0000-000000000000",
"kyc_status": "approved",
"message": "Simulated KYC approval processed. Customer endorsements will be evaluated."
}Sandbox
Simulate KYC approval (sandbox only)
Simulates a KYC/KYB approval for a customer in the sandbox environment. This endpoint is not available in production.
Mimics what happens when a customer completes identity verification through the KYC provider in production:
- Sets the customer’s KYC status to
approved - Populates required entity data (name, address, date of birth) using any data already on the customer, falling back to sandbox defaults
- Approves any pending endorsements, enabling the customer to initiate transfers
Useful for testing the full customer lifecycle without integrating with a real KYC provider.
POST
/
customers
/
{customerID}
/
simulate_kyc_approval
Simulate KYC approval (sandbox only)
curl --request POST \
--url https://api.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval \
--header 'Api-Key: <api-key>' \
--header 'Idempotency-Key: <idempotency-key>'import requests
url = "https://api.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval"
headers = {
"Idempotency-Key": "<idempotency-key>",
"Api-Key": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', 'Api-Key': '<api-key>'}
};
fetch('https://api.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval', 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.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Api-Key: <api-key>",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Api-Key", "<api-key>")
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.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval")
.header("Idempotency-Key", "<idempotency-key>")
.header("Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bridge.xyz/v0/customers/{customerID}/simulate_kyc_approval")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"customer_id": "00000000-0000-0000-0000-000000000000",
"kyc_status": "approved",
"message": "Simulated KYC approval processed. Customer endorsements will be evaluated."
}Authorizations
Headers
Path Parameters
A UUID that uniquely identifies a resource
Required string length:
1 - 42Pattern:
[a-z0-9]*Response
KYC approval simulated successfully
Response from the simulate KYC approval endpoint
Whether the simulation succeeded
The ID of the customer whose KYC was simulated
Status of the KYC flow.
Available options:
not_started, incomplete, awaiting_questionnaire, awaiting_ubo, under_review, approved, rejected, paused, offboarded, deposits_restricted Human-readable description of what was processed
Was this page helpful?
