List KYC
curl --request GET \
--url https://api.sandbox.wepayout.com.br/v1/kyc \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sandbox.wepayout.com.br/v1/kyc"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.wepayout.com.br/v1/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.sandbox.wepayout.com.br/v1/kyc",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.sandbox.wepayout.com.br/v1/kyc"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.wepayout.com.br/v1/kyc")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.wepayout.com.br/v1/kyc")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 1563,
"origin_request": "PAYIN",
"description": "test",
"notes": null,
"created_at": "2025-05-19 10:53:48",
"updated_at": "2025-05-19 10:53:48",
"merchant": "Merchant's name",
"submerchant": null,
"status": {
"id": 1,
"name": "Waiting Upload Documents"
},
"beneficiary": {
"id": 1691,
"name": "TEST",
"document": "12345678987"
}
}
]
KYC
List KYC
Retrieves a list of pending KYC verifications
GET
/
v1
/
kyc
List KYC
curl --request GET \
--url https://api.sandbox.wepayout.com.br/v1/kyc \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sandbox.wepayout.com.br/v1/kyc"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.wepayout.com.br/v1/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.sandbox.wepayout.com.br/v1/kyc",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.sandbox.wepayout.com.br/v1/kyc"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.wepayout.com.br/v1/kyc")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.wepayout.com.br/v1/kyc")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 1563,
"origin_request": "PAYIN",
"description": "test",
"notes": null,
"created_at": "2025-05-19 10:53:48",
"updated_at": "2025-05-19 10:53:48",
"merchant": "Merchant's name",
"submerchant": null,
"status": {
"id": 1,
"name": "Waiting Upload Documents"
},
"beneficiary": {
"id": 1691,
"name": "TEST",
"document": "12345678987"
}
}
]
List KYC
Retrieves a list of pending KYC verifications.Status: You can filter KYC results by using the
status_id query parameter at the KYC listing endpoint. Below are the available status values.Status Table
| TENDER ID | STATUS NAME |
|---|---|
| 1 | Awaiting Upload Documents |
| 2 | Awaiting Approval Documents |
| 3 | Approved |
| 4 | Pending Regularization |
| 5 | Canceled |
Query Parameters
string
The current number you wish to view.
string
The maximum number of items shown per page.
string
Sort order.Allowed values:
0, 1, 2, 3, 4, 5string
Status filter.Allowed values:
1, 2, 3, 4, 5Response
array
Array of KYC records.
Show KYC Object
Show KYC Object
integer
Unique identifier for the KYC record.
string
Identifier or reference of the original request that triggered this KYC process.Example:
PAYIN or REQUESTstring
Textual description or details about the KYC request.
string
Additional notes or observations about the KYC request.
string
Date and time of the KYC record was created.Format:
YYYY-MM-DD HH:mm:ssstring
Date and time of the last update made to this KYC record.Format:
YYYY-MM-DD HH:mm:ssstring
Name of the main merchant associated with the KYC process.
string
Identifier of the submerchant involved in the KYC process.
object
Request Example
curl --request GET \
--url 'https://api.sandbox.wepayout.com.br/v1/kyc' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer 123'
curl --request GET \
--url 'https://api.sandbox.wepayout.com.br/v1/kyc?status_id=1' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer 123'
curl --request GET \
--url 'https://api.sandbox.wepayout.com.br/v1/kyc?page=1&per_page=10' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer 123'
async function listKYC(filters = {}) {
const params = new URLSearchParams({
page: filters.page || 1,
per_page: filters.perPage || 10,
...filters
});
const response = await fetch(
`https://api.sandbox.wepayout.com.br/v1/kyc?${params}`,
{
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer 123'
}
}
);
return await response.json();
}
// Usage examples
// List all KYC records
const allKYC = await listKYC();
// Filter by status
const pendingKYC = await listKYC({ status_id: 1 });
// With pagination
const page1 = await listKYC({ page: 1, per_page: 10 });
console.log('KYC records:', allKYC);
import requests
def list_kyc(filters=None):
url = 'https://api.sandbox.wepayout.com.br/v1/kyc'
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer 123'
}
params = {
'page': 1,
'per_page': 10
}
if filters:
params.update(filters)
response = requests.get(url, headers=headers, params=params)
return response.json()
# Usage examples
# List all KYC records
all_kyc = list_kyc()
# Filter by status
pending_kyc = list_kyc({'status_id': 1})
# With pagination
page_1 = list_kyc({'page': 1, 'per_page': 10})
print('KYC records:', all_kyc)
[
{
"id": 1563,
"origin_request": "PAYIN",
"description": "test",
"notes": null,
"created_at": "2025-05-19 10:53:48",
"updated_at": "2025-05-19 10:53:48",
"merchant": "Merchant's name",
"submerchant": null,
"status": {
"id": 1,
"name": "Waiting Upload Documents"
},
"beneficiary": {
"id": 1691,
"name": "TEST",
"document": "12345678987"
}
}
]
Use Cases
Monitor Pending KYC Verifications
Monitor Pending KYC Verifications
Track all KYC verifications that are awaiting document upload:
async function getPendingKYC() {
const pending = await listKYC({ status_id: 1 });
console.log(`Found ${pending.length} pending KYC verifications`);
pending.forEach(kyc => {
console.log(`- ${kyc.beneficiary.name}: ${kyc.status.name}`);
});
return pending;
}
Filter by Origin Request
Filter by Origin Request
Get KYC records by origin (PAYIN or REQUEST):
async function getKYCByOrigin(origin) {
const allKYC = await listKYC();
return allKYC.filter(kyc => kyc.origin_request === origin);
}
// Get all PAYIN-related KYC
const payinKYC = await getKYCByOrigin('PAYIN');
Track KYC Status Changes
Track KYC Status Changes
Monitor KYC status changes over time:
async function trackKYCStatus(kycId) {
const allKYC = await listKYC();
const kyc = allKYC.find(k => k.id === kycId);
if (!kyc) {
throw new Error('KYC not found');
}
return {
id: kyc.id,
beneficiary: kyc.beneficiary.name,
currentStatus: kyc.status.name,
lastUpdate: kyc.updated_at,
origin: kyc.origin_request
};
}
Generate KYC Report
Generate KYC Report
Generate a report of all KYC verifications by status:
async function generateKYCReport() {
const allKYC = await listKYC();
const report = {
total: allKYC.length,
byStatus: {},
byOrigin: {}
};
allKYC.forEach(kyc => {
// Count by status
const statusName = kyc.status.name;
report.byStatus[statusName] = (report.byStatus[statusName] || 0) + 1;
// Count by origin
const origin = kyc.origin_request;
report.byOrigin[origin] = (report.byOrigin[origin] || 0) + 1;
});
return report;
}
// Usage
const report = await generateKYCReport();
console.log('KYC Report:', report);
// Output: { total: 50, byStatus: { 'Approved': 30, 'Pending': 20 }, byOrigin: { 'PAYIN': 35, 'REQUEST': 15 } }
Status Workflow
Best Practices
Pagination: Always use pagination when listing KYC records to avoid performance issues. The default page size is 10.
Status Monitoring: Regularly check KYC status to ensure timely document uploads and approvals.
Filter by Status: Use the
status_id parameter to filter KYC records by specific statuses and reduce response size.Related Resources
Get Balance
Check account balance
Create Charge
Create a new charge
Create Payment
Create a payout payment
Get Statement
View account statement
Was this page helpful?
⌘I

