Initiate KYC verification for a user
curl --request POST \
--url https://api.privy.io/v1/users/{user_id}/fiat/kyc \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'privy-app-id: <privy-app-id>' \
--data '
{
"provider": "bridge-sandbox",
"data": {
"type": "individual",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]",
"phone": "+59898222122",
"residential_address": {
"street_line_1": "1234 Lombard Street",
"street_line_2": "Apt 2F",
"city": "San Francisco",
"subdivision": "CA",
"postal_code": "94109",
"country": "USA"
},
"signed_agreement_id": "123",
"birth_date": "1989-09-09",
"identifying_information": [
{
"type": "ssn",
"number": "111-11-1111",
"issuing_country": "USA",
"image_front": "data:image/jpeg;base64,/9j/4AAQSkZJRg...",
"image_back": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
}
]
}
}
'HttpResponse<String> response = Unirest.post("https://api.privy.io/v1/users/{user_id}/fiat/kyc")
.header("privy-app-id", "<privy-app-id>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"provider\": \"bridge-sandbox\",\n \"data\": {\n \"type\": \"individual\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"email\": \"[email protected]\",\n \"phone\": \"+59898222122\",\n \"residential_address\": {\n \"street_line_1\": \"1234 Lombard Street\",\n \"street_line_2\": \"Apt 2F\",\n \"city\": \"San Francisco\",\n \"subdivision\": \"CA\",\n \"postal_code\": \"94109\",\n \"country\": \"USA\"\n },\n \"signed_agreement_id\": \"123\",\n \"birth_date\": \"1989-09-09\",\n \"identifying_information\": [\n {\n \"type\": \"ssn\",\n \"number\": \"111-11-1111\",\n \"issuing_country\": \"USA\",\n \"image_front\": \"data:image/jpeg;base64,/9j/4AAQSkZJRg...\",\n \"image_back\": \"data:image/jpeg;base64,/9j/4AAQSkZJRg...\"\n }\n ]\n }\n}")
.asString();const options = {
method: 'POST',
headers: {
'privy-app-id': '<privy-app-id>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
provider: 'bridge-sandbox',
data: {
type: 'individual',
first_name: 'John',
last_name: 'Doe',
email: '[email protected]',
phone: '+59898222122',
residential_address: {
street_line_1: '1234 Lombard Street',
street_line_2: 'Apt 2F',
city: 'San Francisco',
subdivision: 'CA',
postal_code: '94109',
country: 'USA'
},
signed_agreement_id: '123',
birth_date: '1989-09-09',
identifying_information: [
{
type: 'ssn',
number: '111-11-1111',
issuing_country: 'USA',
image_front: 'data:image/jpeg;base64,/9j/4AAQSkZJRg...',
image_back: 'data:image/jpeg;base64,/9j/4AAQSkZJRg...'
}
]
}
})
};
fetch('https://api.privy.io/v1/users/{user_id}/fiat/kyc', 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.privy.io/v1/users/{user_id}/fiat/kyc",
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([
'provider' => 'bridge-sandbox',
'data' => [
'type' => 'individual',
'first_name' => 'John',
'last_name' => 'Doe',
'email' => '[email protected]',
'phone' => '+59898222122',
'residential_address' => [
'street_line_1' => '1234 Lombard Street',
'street_line_2' => 'Apt 2F',
'city' => 'San Francisco',
'subdivision' => 'CA',
'postal_code' => '94109',
'country' => 'USA'
],
'signed_agreement_id' => '123',
'birth_date' => '1989-09-09',
'identifying_information' => [
[
'type' => 'ssn',
'number' => '111-11-1111',
'issuing_country' => 'USA',
'image_front' => 'data:image/jpeg;base64,/9j/4AAQSkZJRg...',
'image_back' => 'data:image/jpeg;base64,/9j/4AAQSkZJRg...'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json",
"privy-app-id: <privy-app-id>"
],
]);
$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.privy.io/v1/users/{user_id}/fiat/kyc"
payload := strings.NewReader("{\n \"provider\": \"bridge-sandbox\",\n \"data\": {\n \"type\": \"individual\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"email\": \"[email protected]\",\n \"phone\": \"+59898222122\",\n \"residential_address\": {\n \"street_line_1\": \"1234 Lombard Street\",\n \"street_line_2\": \"Apt 2F\",\n \"city\": \"San Francisco\",\n \"subdivision\": \"CA\",\n \"postal_code\": \"94109\",\n \"country\": \"USA\"\n },\n \"signed_agreement_id\": \"123\",\n \"birth_date\": \"1989-09-09\",\n \"identifying_information\": [\n {\n \"type\": \"ssn\",\n \"number\": \"111-11-1111\",\n \"issuing_country\": \"USA\",\n \"image_front\": \"data:image/jpeg;base64,/9j/4AAQSkZJRg...\",\n \"image_back\": \"data:image/jpeg;base64,/9j/4AAQSkZJRg...\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("privy-app-id", "<privy-app-id>")
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))
}{
"user_id": "cmaftdj280001ww1ihwhy57s3",
"provider_user_id": "303912cc-74fa-4f7a-9c51-2945b40ac09a",
"status": "under_review"
}Start KYC process
Initiates KYC verification process for a user with the configured provider
POST
/
v1
/
users
/
{user_id}
/
fiat
/
kyc
Initiate KYC verification for a user
curl --request POST \
--url https://api.privy.io/v1/users/{user_id}/fiat/kyc \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'privy-app-id: <privy-app-id>' \
--data '
{
"provider": "bridge-sandbox",
"data": {
"type": "individual",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]",
"phone": "+59898222122",
"residential_address": {
"street_line_1": "1234 Lombard Street",
"street_line_2": "Apt 2F",
"city": "San Francisco",
"subdivision": "CA",
"postal_code": "94109",
"country": "USA"
},
"signed_agreement_id": "123",
"birth_date": "1989-09-09",
"identifying_information": [
{
"type": "ssn",
"number": "111-11-1111",
"issuing_country": "USA",
"image_front": "data:image/jpeg;base64,/9j/4AAQSkZJRg...",
"image_back": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
}
]
}
}
'HttpResponse<String> response = Unirest.post("https://api.privy.io/v1/users/{user_id}/fiat/kyc")
.header("privy-app-id", "<privy-app-id>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"provider\": \"bridge-sandbox\",\n \"data\": {\n \"type\": \"individual\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"email\": \"[email protected]\",\n \"phone\": \"+59898222122\",\n \"residential_address\": {\n \"street_line_1\": \"1234 Lombard Street\",\n \"street_line_2\": \"Apt 2F\",\n \"city\": \"San Francisco\",\n \"subdivision\": \"CA\",\n \"postal_code\": \"94109\",\n \"country\": \"USA\"\n },\n \"signed_agreement_id\": \"123\",\n \"birth_date\": \"1989-09-09\",\n \"identifying_information\": [\n {\n \"type\": \"ssn\",\n \"number\": \"111-11-1111\",\n \"issuing_country\": \"USA\",\n \"image_front\": \"data:image/jpeg;base64,/9j/4AAQSkZJRg...\",\n \"image_back\": \"data:image/jpeg;base64,/9j/4AAQSkZJRg...\"\n }\n ]\n }\n}")
.asString();const options = {
method: 'POST',
headers: {
'privy-app-id': '<privy-app-id>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
provider: 'bridge-sandbox',
data: {
type: 'individual',
first_name: 'John',
last_name: 'Doe',
email: '[email protected]',
phone: '+59898222122',
residential_address: {
street_line_1: '1234 Lombard Street',
street_line_2: 'Apt 2F',
city: 'San Francisco',
subdivision: 'CA',
postal_code: '94109',
country: 'USA'
},
signed_agreement_id: '123',
birth_date: '1989-09-09',
identifying_information: [
{
type: 'ssn',
number: '111-11-1111',
issuing_country: 'USA',
image_front: 'data:image/jpeg;base64,/9j/4AAQSkZJRg...',
image_back: 'data:image/jpeg;base64,/9j/4AAQSkZJRg...'
}
]
}
})
};
fetch('https://api.privy.io/v1/users/{user_id}/fiat/kyc', 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.privy.io/v1/users/{user_id}/fiat/kyc",
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([
'provider' => 'bridge-sandbox',
'data' => [
'type' => 'individual',
'first_name' => 'John',
'last_name' => 'Doe',
'email' => '[email protected]',
'phone' => '+59898222122',
'residential_address' => [
'street_line_1' => '1234 Lombard Street',
'street_line_2' => 'Apt 2F',
'city' => 'San Francisco',
'subdivision' => 'CA',
'postal_code' => '94109',
'country' => 'USA'
],
'signed_agreement_id' => '123',
'birth_date' => '1989-09-09',
'identifying_information' => [
[
'type' => 'ssn',
'number' => '111-11-1111',
'issuing_country' => 'USA',
'image_front' => 'data:image/jpeg;base64,/9j/4AAQSkZJRg...',
'image_back' => 'data:image/jpeg;base64,/9j/4AAQSkZJRg...'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json",
"privy-app-id: <privy-app-id>"
],
]);
$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.privy.io/v1/users/{user_id}/fiat/kyc"
payload := strings.NewReader("{\n \"provider\": \"bridge-sandbox\",\n \"data\": {\n \"type\": \"individual\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"email\": \"[email protected]\",\n \"phone\": \"+59898222122\",\n \"residential_address\": {\n \"street_line_1\": \"1234 Lombard Street\",\n \"street_line_2\": \"Apt 2F\",\n \"city\": \"San Francisco\",\n \"subdivision\": \"CA\",\n \"postal_code\": \"94109\",\n \"country\": \"USA\"\n },\n \"signed_agreement_id\": \"123\",\n \"birth_date\": \"1989-09-09\",\n \"identifying_information\": [\n {\n \"type\": \"ssn\",\n \"number\": \"111-11-1111\",\n \"issuing_country\": \"USA\",\n \"image_front\": \"data:image/jpeg;base64,/9j/4AAQSkZJRg...\",\n \"image_back\": \"data:image/jpeg;base64,/9j/4AAQSkZJRg...\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("privy-app-id", "<privy-app-id>")
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))
}{
"user_id": "cmaftdj280001ww1ihwhy57s3",
"provider_user_id": "303912cc-74fa-4f7a-9c51-2945b40ac09a",
"status": "under_review"
}Authorizations
Basic Auth header with your app ID as the username and your app secret as the password.
Headers
ID of your Privy app.
Path Parameters
The ID of the user to initiate KYC for
Body
application/json
Response
200 - application/json
KYC verification status
Was this page helpful?

