Submit Document For KYC
curl --request POST \
--url https://api.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"value": "<string>"
}
'import requests
url = "https://api.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update"
payload = { "value": "<string>" }
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({value: '<string>'})
};
fetch('https://api.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update', 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/documents/{documentId}/update",
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([
'value' => '<string>'
]),
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.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update"
payload := strings.NewReader("{\n \"value\": \"<string>\"\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.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"value\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update")
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 \"value\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": 5891,
"status_id": 2,
"status_name": "Waiting Approval Documents",
"document_id": 35,
"document_name": "kyc/qsa",
"collection_name": null,
"collection_id": null,
"value_field": "https://s3.amazonaws.com/bucket-name/path/to/file",
"rejection_reason": null,
"label": "KYC/QSA",
"type_field": "file",
"required_field": true,
"expires_at": null,
"automaticatic_validation": 0
}
KYC
Submit Document For KYC
Submit documents for a pending KYC verification
POST
/
v1
/
kyc
/
documents
/
{documentId}
/
update
Submit Document For KYC
curl --request POST \
--url https://api.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"value": "<string>"
}
'import requests
url = "https://api.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update"
payload = { "value": "<string>" }
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({value: '<string>'})
};
fetch('https://api.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update', 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/documents/{documentId}/update",
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([
'value' => '<string>'
]),
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.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update"
payload := strings.NewReader("{\n \"value\": \"<string>\"\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.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"value\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update")
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 \"value\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": 5891,
"status_id": 2,
"status_name": "Waiting Approval Documents",
"document_id": 35,
"document_name": "kyc/qsa",
"collection_name": null,
"collection_id": null,
"value_field": "https://s3.amazonaws.com/bucket-name/path/to/file",
"rejection_reason": null,
"label": "KYC/QSA",
"type_field": "file",
"required_field": true,
"expires_at": null,
"automaticatic_validation": 0
}
Submit Document For KYC
This route is used to submit documents for a pending KYC. There are two types of documents that can be submitted:- Text-type documents
- File-type documents
Attention point: Supported extensions for file-type documents:
jpg, jpeg, gif, png and pdfPath Parameters
integer
required
The ID of the document to update
Body
string
required
The value to submit for the document. For file-type documents, provide the file URL. For text-type documents, provide the text value.
Response
integer
Unique identifier for the uploaded document record.
integer
Identifier of the current validation status of the document.
string
Name of the document’s validation status.
integer
Identifier of the document.
string
Name of the document type uploaded.
string
Name of the document collection or group.
integer
Identifier of the document collection.
string
URL for downloading the uploaded document file.
string
Reason for rejection if the document was not approved.
string
Label or description used to identify the document field.
string
Type of input expected for this field.Example:
file or textboolean
Indicates whether this field is mandatory for completing the KYC process.
string
Expiration date of the document, if applicable.Format:
<date-time>integer
Indicates whether the document is eligible for automatic validation.Example:
1 = yes, 0 = noRequest Example
curl --request POST \
--url https://api.sandbox.wepayout.com.br/v1/kyc/documents/{documentId}/update \
--header 'Accept: application/json' \
--header 'Authorization: Bearer 123' \
--header 'Content-Type: application/json' \
--data '{
"value": "string"
}'
async function submitKYCDocument(documentId, value) {
const response = await fetch(
`https://api.sandbox.wepayout.com.br/v1/kyc/documents/${documentId}/update`,
{
method: 'POST',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer 123',
'Content-Type': 'application/json'
},
body: JSON.stringify({
value: value
})
}
);
if (!response.ok) {
throw new Error(`Failed to submit document: ${response.statusText}`);
}
return await response.json();
}
// Usage - Submit file URL
const fileResult = await submitKYCDocument(35, 'https://s3.amazonaws.com/bucket/file.pdf');
console.log('File document submitted:', fileResult);
// Usage - Submit text value
const textResult = await submitKYCDocument(36, 'John Doe');
console.log('Text document submitted:', textResult);
import requests
def submit_kyc_document(document_id, value):
url = f'https://api.sandbox.wepayout.com.br/v1/kyc/documents/{document_id}/update'
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer 123',
'Content-Type': 'application/json'
}
data = {
'value': value
}
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
return response.json()
# Usage - Submit file URL
file_result = submit_kyc_document(35, 'https://s3.amazonaws.com/bucket/file.pdf')
print('File document submitted:', file_result)
# Usage - Submit text value
text_result = submit_kyc_document(36, 'John Doe')
print('Text document submitted:', text_result)
{
"id": 5891,
"status_id": 2,
"status_name": "Waiting Approval Documents",
"document_id": 35,
"document_name": "kyc/qsa",
"collection_name": null,
"collection_id": null,
"value_field": "https://s3.amazonaws.com/bucket-name/path/to/file",
"rejection_reason": null,
"label": "KYC/QSA",
"type_field": "file",
"required_field": true,
"expires_at": null,
"automaticatic_validation": 0
}
Best Practices
One Document at a Time: Only one document can be updated per request. To submit multiple documents, make separate API calls for each.
File Extensions: Ensure file-type documents use only supported extensions:
jpg, jpeg, gif, png, or pdf.Document Status: After submission, the document status will typically change to “Waiting Approval Documents” (status_id: 2).
Related Resources
List KYC
List all KYC verifications
Get KYC By ID
Get KYC by ID
Get KYC By Document
Get KYC by document number
Create Payment
Create a payout payment
Was this page helpful?

