curl --request POST \
--url https://api.uvvipay.com.br/v2/submerchants/onboarding/pj \
--header 'Content-Type: multipart/form-data' \
--header 'client-id: <api-key>' \
--header 'client-secret: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--form cnpj=12345678000199 \
--form representativeCpf=12345678901 \
--form 'representativeName=Maria Souza' \
--form birthDate=1985-05-20 \
--form 'phone=+5511888888888' \
--form 'bankAccount={
"bankAccountType": "conta_corrente",
"bankName": "Banco do Brasil",
"bankCode": "001",
"bankAgency": "1234",
"bankAccount": "56789",
"bankAccountDv": "0",
"ispb": "00000000"
}' \
--form 'documentoFrente=<string>' \
--form 'documentoVerso=<string>' \
--form 'selfie=<string>' \
--form 'contratoSocial=<string>' \
--form 'cartaoCnpj=<string>' \
--form email=contato@empresa.com \
--form 'cnhCompleta=<string>' \
--form 0.documentoFrente='@example-file' \
--form 0.documentoVerso='@example-file' \
--form 0.selfie='@example-file' \
--form 0.contratoSocial='@example-file' \
--form 0.cartaoCnpj='@example-file' \
--form 0.cnhCompleta='@example-file' \
--form 1.cnhCompleta='@example-file' \
--form 1.selfie='@example-file' \
--form 1.contratoSocial='@example-file' \
--form 1.cartaoCnpj='@example-file' \
--form 1.documentoFrente='@example-file' \
--form 1.documentoVerso='@example-file'import requests
url = "https://api.uvvipay.com.br/v2/submerchants/onboarding/pj"
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.contratoSocial": ("example-file", open("example-file", "rb")),
"0.cartaoCnpj": ("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.contratoSocial": ("example-file", open("example-file", "rb")),
"1.cartaoCnpj": ("example-file", open("example-file", "rb")),
"1.documentoFrente": ("example-file", open("example-file", "rb")),
"1.documentoVerso": ("example-file", open("example-file", "rb"))
}
payload = {
"cnpj": "12345678000199",
"representativeCpf": "12345678901",
"representativeName": "Maria Souza",
"birthDate": "1985-05-20",
"phone": "+5511888888888",
"bankAccount": "{
\"bankAccountType\": \"conta_corrente\",
\"bankName\": \"Banco do Brasil\",
\"bankCode\": \"001\",
\"bankAgency\": \"1234\",
\"bankAccount\": \"56789\",
\"bankAccountDv\": \"0\",
\"ispb\": \"00000000\"
}",
"documentoFrente": "<string>",
"documentoVerso": "<string>",
"selfie": "<string>",
"contratoSocial": "<string>",
"cartaoCnpj": "<string>",
"email": "contato@empresa.com",
"cnhCompleta": "<string>"
}
headers = {
"client-secret": "<api-key>",
"client-id": "<api-key>",
"x-idempotency-key": "<x-idempotency-key>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('cnpj', '12345678000199');
form.append('representativeCpf', '12345678901');
form.append('representativeName', 'Maria Souza');
form.append('birthDate', '1985-05-20');
form.append('phone', '+5511888888888');
form.append('bankAccount', '{
"bankAccountType": "conta_corrente",
"bankName": "Banco do Brasil",
"bankCode": "001",
"bankAgency": "1234",
"bankAccount": "56789",
"bankAccountDv": "0",
"ispb": "00000000"
}');
form.append('documentoFrente', '<string>');
form.append('documentoVerso', '<string>');
form.append('selfie', '<string>');
form.append('contratoSocial', '<string>');
form.append('cartaoCnpj', '<string>');
form.append('email', 'contato@empresa.com');
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.contratoSocial', '{
"fileName": "example-file"
}');
form.append('0.cartaoCnpj', '{
"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.contratoSocial', '{
"fileName": "example-file"
}');
form.append('1.cartaoCnpj', '{
"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>',
'x-idempotency-key': '<x-idempotency-key>'
}
};
options.body = form;
fetch('https://api.uvvipay.com.br/v2/submerchants/onboarding/pj', 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/pj",
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=\"cnpj\"\r\n\r\n12345678000199\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeCpf\"\r\n\r\n12345678901\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeName\"\r\n\r\nMaria Souza\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"birthDate\"\r\n\r\n1985-05-20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"phone\"\r\n\r\n+5511888888888\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bankAccount\"\r\n\r\n{\r\n \"bankAccountType\": \"conta_corrente\",\r\n \"bankName\": \"Banco do Brasil\",\r\n \"bankCode\": \"001\",\r\n \"bankAgency\": \"1234\",\r\n \"bankAccount\": \"56789\",\r\n \"bankAccountDv\": \"0\",\r\n \"ispb\": \"00000000\"\r\n}\r\n-----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=\"contratoSocial\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cartaoCnpj\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ncontato@empresa.com\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.contratoSocial\"; 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.cartaoCnpj\"; 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.contratoSocial\"; 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.cartaoCnpj\"; 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>",
"x-idempotency-key: <x-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.uvvipay.com.br/v2/submerchants/onboarding/pj"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnpj\"\r\n\r\n12345678000199\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeCpf\"\r\n\r\n12345678901\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeName\"\r\n\r\nMaria Souza\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"birthDate\"\r\n\r\n1985-05-20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"phone\"\r\n\r\n+5511888888888\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bankAccount\"\r\n\r\n{\r\n \"bankAccountType\": \"conta_corrente\",\r\n \"bankName\": \"Banco do Brasil\",\r\n \"bankCode\": \"001\",\r\n \"bankAgency\": \"1234\",\r\n \"bankAccount\": \"56789\",\r\n \"bankAccountDv\": \"0\",\r\n \"ispb\": \"00000000\"\r\n}\r\n-----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=\"contratoSocial\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cartaoCnpj\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ncontato@empresa.com\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.contratoSocial\"; 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.cartaoCnpj\"; 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.contratoSocial\"; 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.cartaoCnpj\"; 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>")
req.Header.Add("x-idempotency-key", "<x-idempotency-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/pj")
.header("client-secret", "<api-key>")
.header("client-id", "<api-key>")
.header("x-idempotency-key", "<x-idempotency-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnpj\"\r\n\r\n12345678000199\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeCpf\"\r\n\r\n12345678901\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeName\"\r\n\r\nMaria Souza\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"birthDate\"\r\n\r\n1985-05-20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"phone\"\r\n\r\n+5511888888888\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bankAccount\"\r\n\r\n{\r\n \"bankAccountType\": \"conta_corrente\",\r\n \"bankName\": \"Banco do Brasil\",\r\n \"bankCode\": \"001\",\r\n \"bankAgency\": \"1234\",\r\n \"bankAccount\": \"56789\",\r\n \"bankAccountDv\": \"0\",\r\n \"ispb\": \"00000000\"\r\n}\r\n-----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=\"contratoSocial\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cartaoCnpj\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ncontato@empresa.com\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.contratoSocial\"; 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.cartaoCnpj\"; 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.contratoSocial\"; 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.cartaoCnpj\"; 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/pj")
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["x-idempotency-key"] = '<x-idempotency-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnpj\"\r\n\r\n12345678000199\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeCpf\"\r\n\r\n12345678901\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeName\"\r\n\r\nMaria Souza\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"birthDate\"\r\n\r\n1985-05-20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"phone\"\r\n\r\n+5511888888888\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bankAccount\"\r\n\r\n{\r\n \"bankAccountType\": \"conta_corrente\",\r\n \"bankName\": \"Banco do Brasil\",\r\n \"bankCode\": \"001\",\r\n \"bankAgency\": \"1234\",\r\n \"bankAccount\": \"56789\",\r\n \"bankAccountDv\": \"0\",\r\n \"ispb\": \"00000000\"\r\n}\r\n-----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=\"contratoSocial\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cartaoCnpj\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ncontato@empresa.com\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.contratoSocial\"; 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.cartaoCnpj\"; 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.contratoSocial\"; 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.cartaoCnpj\"; 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"
}Onboarding PJ
Inicia o onboarding assíncrono de subconta pessoa jurídica via multipart/form-data. Retorna 202 com registration_id e status.
curl --request POST \
--url https://api.uvvipay.com.br/v2/submerchants/onboarding/pj \
--header 'Content-Type: multipart/form-data' \
--header 'client-id: <api-key>' \
--header 'client-secret: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--form cnpj=12345678000199 \
--form representativeCpf=12345678901 \
--form 'representativeName=Maria Souza' \
--form birthDate=1985-05-20 \
--form 'phone=+5511888888888' \
--form 'bankAccount={
"bankAccountType": "conta_corrente",
"bankName": "Banco do Brasil",
"bankCode": "001",
"bankAgency": "1234",
"bankAccount": "56789",
"bankAccountDv": "0",
"ispb": "00000000"
}' \
--form 'documentoFrente=<string>' \
--form 'documentoVerso=<string>' \
--form 'selfie=<string>' \
--form 'contratoSocial=<string>' \
--form 'cartaoCnpj=<string>' \
--form email=contato@empresa.com \
--form 'cnhCompleta=<string>' \
--form 0.documentoFrente='@example-file' \
--form 0.documentoVerso='@example-file' \
--form 0.selfie='@example-file' \
--form 0.contratoSocial='@example-file' \
--form 0.cartaoCnpj='@example-file' \
--form 0.cnhCompleta='@example-file' \
--form 1.cnhCompleta='@example-file' \
--form 1.selfie='@example-file' \
--form 1.contratoSocial='@example-file' \
--form 1.cartaoCnpj='@example-file' \
--form 1.documentoFrente='@example-file' \
--form 1.documentoVerso='@example-file'import requests
url = "https://api.uvvipay.com.br/v2/submerchants/onboarding/pj"
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.contratoSocial": ("example-file", open("example-file", "rb")),
"0.cartaoCnpj": ("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.contratoSocial": ("example-file", open("example-file", "rb")),
"1.cartaoCnpj": ("example-file", open("example-file", "rb")),
"1.documentoFrente": ("example-file", open("example-file", "rb")),
"1.documentoVerso": ("example-file", open("example-file", "rb"))
}
payload = {
"cnpj": "12345678000199",
"representativeCpf": "12345678901",
"representativeName": "Maria Souza",
"birthDate": "1985-05-20",
"phone": "+5511888888888",
"bankAccount": "{
\"bankAccountType\": \"conta_corrente\",
\"bankName\": \"Banco do Brasil\",
\"bankCode\": \"001\",
\"bankAgency\": \"1234\",
\"bankAccount\": \"56789\",
\"bankAccountDv\": \"0\",
\"ispb\": \"00000000\"
}",
"documentoFrente": "<string>",
"documentoVerso": "<string>",
"selfie": "<string>",
"contratoSocial": "<string>",
"cartaoCnpj": "<string>",
"email": "contato@empresa.com",
"cnhCompleta": "<string>"
}
headers = {
"client-secret": "<api-key>",
"client-id": "<api-key>",
"x-idempotency-key": "<x-idempotency-key>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('cnpj', '12345678000199');
form.append('representativeCpf', '12345678901');
form.append('representativeName', 'Maria Souza');
form.append('birthDate', '1985-05-20');
form.append('phone', '+5511888888888');
form.append('bankAccount', '{
"bankAccountType": "conta_corrente",
"bankName": "Banco do Brasil",
"bankCode": "001",
"bankAgency": "1234",
"bankAccount": "56789",
"bankAccountDv": "0",
"ispb": "00000000"
}');
form.append('documentoFrente', '<string>');
form.append('documentoVerso', '<string>');
form.append('selfie', '<string>');
form.append('contratoSocial', '<string>');
form.append('cartaoCnpj', '<string>');
form.append('email', 'contato@empresa.com');
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.contratoSocial', '{
"fileName": "example-file"
}');
form.append('0.cartaoCnpj', '{
"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.contratoSocial', '{
"fileName": "example-file"
}');
form.append('1.cartaoCnpj', '{
"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>',
'x-idempotency-key': '<x-idempotency-key>'
}
};
options.body = form;
fetch('https://api.uvvipay.com.br/v2/submerchants/onboarding/pj', 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/pj",
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=\"cnpj\"\r\n\r\n12345678000199\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeCpf\"\r\n\r\n12345678901\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeName\"\r\n\r\nMaria Souza\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"birthDate\"\r\n\r\n1985-05-20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"phone\"\r\n\r\n+5511888888888\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bankAccount\"\r\n\r\n{\r\n \"bankAccountType\": \"conta_corrente\",\r\n \"bankName\": \"Banco do Brasil\",\r\n \"bankCode\": \"001\",\r\n \"bankAgency\": \"1234\",\r\n \"bankAccount\": \"56789\",\r\n \"bankAccountDv\": \"0\",\r\n \"ispb\": \"00000000\"\r\n}\r\n-----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=\"contratoSocial\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cartaoCnpj\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ncontato@empresa.com\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.contratoSocial\"; 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.cartaoCnpj\"; 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.contratoSocial\"; 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.cartaoCnpj\"; 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>",
"x-idempotency-key: <x-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.uvvipay.com.br/v2/submerchants/onboarding/pj"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnpj\"\r\n\r\n12345678000199\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeCpf\"\r\n\r\n12345678901\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeName\"\r\n\r\nMaria Souza\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"birthDate\"\r\n\r\n1985-05-20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"phone\"\r\n\r\n+5511888888888\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bankAccount\"\r\n\r\n{\r\n \"bankAccountType\": \"conta_corrente\",\r\n \"bankName\": \"Banco do Brasil\",\r\n \"bankCode\": \"001\",\r\n \"bankAgency\": \"1234\",\r\n \"bankAccount\": \"56789\",\r\n \"bankAccountDv\": \"0\",\r\n \"ispb\": \"00000000\"\r\n}\r\n-----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=\"contratoSocial\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cartaoCnpj\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ncontato@empresa.com\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.contratoSocial\"; 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.cartaoCnpj\"; 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.contratoSocial\"; 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.cartaoCnpj\"; 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>")
req.Header.Add("x-idempotency-key", "<x-idempotency-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/pj")
.header("client-secret", "<api-key>")
.header("client-id", "<api-key>")
.header("x-idempotency-key", "<x-idempotency-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnpj\"\r\n\r\n12345678000199\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeCpf\"\r\n\r\n12345678901\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeName\"\r\n\r\nMaria Souza\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"birthDate\"\r\n\r\n1985-05-20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"phone\"\r\n\r\n+5511888888888\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bankAccount\"\r\n\r\n{\r\n \"bankAccountType\": \"conta_corrente\",\r\n \"bankName\": \"Banco do Brasil\",\r\n \"bankCode\": \"001\",\r\n \"bankAgency\": \"1234\",\r\n \"bankAccount\": \"56789\",\r\n \"bankAccountDv\": \"0\",\r\n \"ispb\": \"00000000\"\r\n}\r\n-----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=\"contratoSocial\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cartaoCnpj\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ncontato@empresa.com\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.contratoSocial\"; 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.cartaoCnpj\"; 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.contratoSocial\"; 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.cartaoCnpj\"; 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/pj")
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["x-idempotency-key"] = '<x-idempotency-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cnpj\"\r\n\r\n12345678000199\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeCpf\"\r\n\r\n12345678901\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"representativeName\"\r\n\r\nMaria Souza\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"birthDate\"\r\n\r\n1985-05-20\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"phone\"\r\n\r\n+5511888888888\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bankAccount\"\r\n\r\n{\r\n \"bankAccountType\": \"conta_corrente\",\r\n \"bankName\": \"Banco do Brasil\",\r\n \"bankCode\": \"001\",\r\n \"bankAgency\": \"1234\",\r\n \"bankAccount\": \"56789\",\r\n \"bankAccountDv\": \"0\",\r\n \"ispb\": \"00000000\"\r\n}\r\n-----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=\"contratoSocial\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"cartaoCnpj\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ncontato@empresa.com\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.contratoSocial\"; 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.cartaoCnpj\"; 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.contratoSocial\"; 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.cartaoCnpj\"; 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"
}POST /v2/submerchants/onboarding/pj
Inicia o onboarding de uma subconta PJ. A requisição é multipart/form-data
e retorna 202 Accepted com o registration_id e o status inicial.
202 com
registration_id. Exige headers client-id + client-secret e
x-idempotency-key (UUID v4).Arquivos (multipart)
Envie uma das opções de documento de identidade do representante, a selfie, e os documentos da empresa:| Campo | Obrigatório | Descrição |
|---|---|---|
documentoFrente | Condicional | Frente do RG/CIN do representante |
documentoVerso | Condicional | Verso do RG/CIN do representante |
cnhCompleta | Condicional | CNH completa do representante (alternativa a frente+verso) |
selfie | Sim | Selfie do representante (rosto) |
contratoSocial | Sim | Contrato social |
cartaoCnpj | Sim | Cartão CNPJ |
- Envie
documentoFrenteedocumentoVerso, oucnhCompleta. - O campo da selfie é
selfie(não use maisselfieComDocumento).
documentoFrente e documentoVerso do representante, ou envie
cnhCompleta. Envie também selfie, contratoSocial e cartaoCnpj. O
campo da selfie é selfie. Não use selfieComDocumento. Depois do 202,
consulte o status com o registration_id. Veja o guia Subcontas.Headers
Secret da credencial do merchant
ID público da credencial do merchant
UUID v4 gerado pelo cliente. Usado como externalId da subconta.
Body
- Option 1
- Option 2
CNPJ da empresa (14 dígitos)
"12345678000199"
CPF do representante (11 dígitos)
"12345678901"
Nome completo do representante
255"Maria Souza"
Data de nascimento do representante (YYYY-MM-DD)
"1985-05-20"
Telefone no formato E.164
"+5511888888888"
Dados bancários. Em multipart, envie como JSON string.
Show child attributes
Show child attributes
Frente do RG/CIN do representante. Obrigatório com documentoVerso, se não enviar cnhCompleta.
Verso do RG/CIN do representante. Obrigatório com documentoFrente, se não enviar cnhCompleta.
Selfie do representante (rosto). Não use selfieComDocumento.
Contrato social (PDF ou imagem)
Cartão CNPJ (PDF ou imagem)
Email de contato (opcional)
255"contato@empresa.com"
CNH completa do representante. Alternativa a documentoFrente + documentoVerso.

