Reenviar documentos do onboarding (API)
curl --request POST \
--url https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents \
--header 'Content-Type: multipart/form-data' \
--header 'client-id: <api-key>' \
--header 'client-secret: <api-key>' \
--form 'documentoFrente=<string>' \
--form 'documentoVerso=<string>' \
--form 'selfie=<string>' \
--form 'cnhCompleta=<string>' \
--form 0.documentoFrente='@example-file' \
--form 0.documentoVerso='@example-file' \
--form 0.selfie='@example-file' \
--form 0.cnhCompleta='@example-file' \
--form 1.cnhCompleta='@example-file' \
--form 1.selfie='@example-file' \
--form 1.documentoFrente='@example-file' \
--form 1.documentoVerso='@example-file'import requests
url = "https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents"
files = {
"0.documentoFrente": ("example-file", open("example-file", "rb")),
"0.documentoVerso": ("example-file", open("example-file", "rb")),
"0.selfie": ("example-file", open("example-file", "rb")),
"0.cnhCompleta": ("example-file", open("example-file", "rb")),
"1.cnhCompleta": ("example-file", open("example-file", "rb")),
"1.selfie": ("example-file", open("example-file", "rb")),
"1.documentoFrente": ("example-file", open("example-file", "rb")),
"1.documentoVerso": ("example-file", open("example-file", "rb"))
}
payload = {
"documentoFrente": "<string>",
"documentoVerso": "<string>",
"selfie": "<string>",
"cnhCompleta": "<string>"
}
headers = {
"client-secret": "<api-key>",
"client-id": "<api-key>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('documentoFrente', '<string>');
form.append('documentoVerso', '<string>');
form.append('selfie', '<string>');
form.append('cnhCompleta', '<string>');
form.append('0.documentoFrente', '{
"fileName": "example-file"
}');
form.append('0.documentoVerso', '{
"fileName": "example-file"
}');
form.append('0.selfie', '{
"fileName": "example-file"
}');
form.append('0.cnhCompleta', '{
"fileName": "example-file"
}');
form.append('1.cnhCompleta', '{
"fileName": "example-file"
}');
form.append('1.selfie', '{
"fileName": "example-file"
}');
form.append('1.documentoFrente', '{
"fileName": "example-file"
}');
form.append('1.documentoVerso', '{
"fileName": "example-file"
}');
const options = {
method: 'POST',
headers: {'client-secret': '<api-key>', 'client-id': '<api-key>'}
};
options.body = form;
fetch('https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents', 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.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoFrente\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoVerso\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnhCompleta\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"client-id: <api-key>",
"client-secret: <api-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoFrente\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoVerso\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnhCompleta\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("client-secret", "<api-key>")
req.Header.Add("client-id", "<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.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents")
.header("client-secret", "<api-key>")
.header("client-id", "<api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoFrente\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoVerso\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnhCompleta\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["client-secret"] = '<api-key>'
request["client-id"] = '<api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoFrente\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoVerso\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnhCompleta\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"registration_id": "2f1c8b9a-4d3e-4f6a-9b1c-0a1b2c3d4e5f",
"status": "submitted"
}Cadastro e onboarding
Reenviar documentos do onboarding
Reenvia documentos de verificação após reprovação de KYC (ex.: fotos ruins). Consulte GET /v2/submerchants/onboarding//status antes. Só use quando can_resubmit for true. Body em multipart/form-data. Retorna 202 com registration_id e status.
POST
/
v2
/
submerchants
/
onboarding
/
{registrationId}
/
resend-documents
Reenviar documentos do onboarding (API)
curl --request POST \
--url https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents \
--header 'Content-Type: multipart/form-data' \
--header 'client-id: <api-key>' \
--header 'client-secret: <api-key>' \
--form 'documentoFrente=<string>' \
--form 'documentoVerso=<string>' \
--form 'selfie=<string>' \
--form 'cnhCompleta=<string>' \
--form 0.documentoFrente='@example-file' \
--form 0.documentoVerso='@example-file' \
--form 0.selfie='@example-file' \
--form 0.cnhCompleta='@example-file' \
--form 1.cnhCompleta='@example-file' \
--form 1.selfie='@example-file' \
--form 1.documentoFrente='@example-file' \
--form 1.documentoVerso='@example-file'import requests
url = "https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents"
files = {
"0.documentoFrente": ("example-file", open("example-file", "rb")),
"0.documentoVerso": ("example-file", open("example-file", "rb")),
"0.selfie": ("example-file", open("example-file", "rb")),
"0.cnhCompleta": ("example-file", open("example-file", "rb")),
"1.cnhCompleta": ("example-file", open("example-file", "rb")),
"1.selfie": ("example-file", open("example-file", "rb")),
"1.documentoFrente": ("example-file", open("example-file", "rb")),
"1.documentoVerso": ("example-file", open("example-file", "rb"))
}
payload = {
"documentoFrente": "<string>",
"documentoVerso": "<string>",
"selfie": "<string>",
"cnhCompleta": "<string>"
}
headers = {
"client-secret": "<api-key>",
"client-id": "<api-key>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('documentoFrente', '<string>');
form.append('documentoVerso', '<string>');
form.append('selfie', '<string>');
form.append('cnhCompleta', '<string>');
form.append('0.documentoFrente', '{
"fileName": "example-file"
}');
form.append('0.documentoVerso', '{
"fileName": "example-file"
}');
form.append('0.selfie', '{
"fileName": "example-file"
}');
form.append('0.cnhCompleta', '{
"fileName": "example-file"
}');
form.append('1.cnhCompleta', '{
"fileName": "example-file"
}');
form.append('1.selfie', '{
"fileName": "example-file"
}');
form.append('1.documentoFrente', '{
"fileName": "example-file"
}');
form.append('1.documentoVerso', '{
"fileName": "example-file"
}');
const options = {
method: 'POST',
headers: {'client-secret': '<api-key>', 'client-id': '<api-key>'}
};
options.body = form;
fetch('https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents', 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.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoFrente\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoVerso\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnhCompleta\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"client-id: <api-key>",
"client-secret: <api-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoFrente\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoVerso\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnhCompleta\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("client-secret", "<api-key>")
req.Header.Add("client-id", "<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.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents")
.header("client-secret", "<api-key>")
.header("client-id", "<api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoFrente\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoVerso\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnhCompleta\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["client-secret"] = '<api-key>'
request["client-id"] = '<api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoFrente\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documentoVerso\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnhCompleta\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.cnhCompleta\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoFrente\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.documentoVerso\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"registration_id": "2f1c8b9a-4d3e-4f6a-9b1c-0a1b2c3d4e5f",
"status": "submitted"
}Reenvia documentos de verificação quando o status do onboarding permitir.
Antes de reenviar, consulte
GET /v2/submerchants/onboarding/{registrationId}/status. Só reenvie se
can_resubmit for true. Retorna 202 com registration_id. Exige
headers client-id + client-secret.Quando usar
- Consulte o status do onboarding.
- Se
statusforaction_requiredecan_resubmitfortrue, reenvie os documentos neste endpoint. - Se
can_resubmitforfalse, não reenvie. O endpoint retorna409.
| Resultado do status | Ação |
|---|---|
action_required + can_resubmit: true | Reenvie os documentos |
processing | Aguarde a análise |
approved | Não reenvie |
rejected + can_resubmit: false | Contate o suporte |
Body (multipart/form-data)
Envie documentoFrente e documentoVerso, ou envie cnhCompleta. Envie
também selfie. Não envie contratoSocial nem cartaoCnpj.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
documentoFrente | file | Condicional | Frente do RG/CIN. Use com documentoVerso |
documentoVerso | file | Condicional | Verso do RG/CIN. Use com documentoFrente |
cnhCompleta | file | Condicional | CNH completa. Alternativa a frente + verso |
selfie | file | Sim | Selfie do rosto. Não use selfieComDocumento |
Exemplo com RG/CIN
curl -X POST \
https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents \
-H "client-id: SEU_CLIENT_ID" \
-H "client-secret: SEU_CLIENT_SECRET" \
-F "documentoFrente=@frente.jpg" \
-F "documentoVerso=@verso.jpg" \
-F "selfie=@selfie.jpg"
Exemplo com CNH
curl -X POST \
https://api.uvvipay.com.br/v2/submerchants/onboarding/{registrationId}/resend-documents \
-H "client-id: SEU_CLIENT_ID" \
-H "client-secret: SEU_CLIENT_SECRET" \
-F "cnhCompleta=@cnh.jpg" \
-F "selfie=@selfie.jpg"
Response (202 Accepted)
| Campo | Tipo | Descrição |
|---|---|---|
registration_id | string (UUID) | ID do registro de onboarding |
status | string | Status intermediário após o reenvio |
Exemplo
{
"registration_id": "2f1c8b9a-4d3e-4f6a-9b1c-0a1b2c3d4e5f",
"status": "submitted"
}
status desta resposta 202 é intermediário. Para decidir a
próxima ação, consulte
GET /v2/submerchants/onboarding/{registrationId}/status e use os valores
processing, approved, rejected ou action_required.Headers
Secret da credencial do merchant
ID público da credencial do merchant
Path Parameters
UUID do registro de onboarding retornado no POST /v2/submerchants/onboarding/pf|pj
Body
multipart/form-data
- Option 1
- Option 2
Frente do RG/CIN. Obrigatório com documentoVerso, se não enviar cnhCompleta.
Verso do RG/CIN. Obrigatório com documentoFrente, se não enviar cnhCompleta.
Selfie do titular ou representante (rosto). Não use selfieComDocumento.
CNH completa. Alternativa a documentoFrente + documentoVerso.

