curl --request PATCH \
--url https://api.vitawallet.io/api/businesses/business_users/complete_verification \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--header 'x-date: <api-key>' \
--header 'x-login: <api-key>' \
--header 'x-trans-key: <api-key>' \
--data '""'import requests
url = "https://api.vitawallet.io/api/businesses/business_users/complete_verification"
headers = {
"x-login": "<api-key>",
"x-trans-key": "<api-key>",
"x-date": "<api-key>",
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-login': '<api-key>',
'x-trans-key': '<api-key>',
'x-date': '<api-key>',
Authorization: '<api-key>',
'Content-Type': 'application/json'
}
};
fetch('https://api.vitawallet.io/api/businesses/business_users/complete_verification', 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.vitawallet.io/api/businesses/business_users/complete_verification",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => "\"\"",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json",
"x-date: <api-key>",
"x-login: <api-key>",
"x-trans-key: <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.vitawallet.io/api/businesses/business_users/complete_verification"
payload := strings.NewReader("\"\"")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-login", "<api-key>")
req.Header.Add("x-trans-key", "<api-key>")
req.Header.Add("x-date", "<api-key>")
req.Header.Add("Authorization", "<api-key>")
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.patch("https://api.vitawallet.io/api/businesses/business_users/complete_verification")
.header("x-login", "<api-key>")
.header("x-trans-key", "<api-key>")
.header("x-date", "<api-key>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("\"\"")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vitawallet.io/api/businesses/business_users/complete_verification")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-login"] = '<api-key>'
request["x-trans-key"] = '<api-key>'
request["x-date"] = '<api-key>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "\"\""
response = http.request(request)
puts response.read_body{
"email": "gonzalo+v1@vitawallet.io",
"first_name": "Juan",
"category": "business",
"document_type": "dni",
"document_number": 999990000,
"address": "Calle Falsa 123",
"zipcode": 1000,
"accept_pep": true,
"profile_verification": "started",
"accept_real_info": false,
"accept_funds": false,
"business_external_id": "ext-v1",
"is_business_api": true,
"x_login": "46684a1c21ecb2ef08e8af4e1267cd674653947a",
"url_notify_kyc": "https://webhook.site/b0cad134-9494-46bb-b0c9-c37bc31e54ef",
"disable_email_notifications": true,
"x_trans_key": "KTtQM9AC8rCtpw7FRd3E61o5GoI=",
"secret": "8e3874d1868c597d331478bed5abb4faa0c95b243cea7c0bb8c05c7b5cd1970260411219561ca7dd4475f291618ff673b4a45df027365ad7608c859424df97ea559e4f54359633fbab1afe5d1548279e7a7fb3976dbb6a631ef21169730815eb4c7d568c4c5ef7bbf6092bb9cdece1138c59d1c10e095bd3216044594ce109d97b622f7a31414f3f52c5e5241e6d71ec7de59b8d3aa017c12d0ef5e8cc1456b4fc0aa22c0a4a8650a7624f58804a4280d61559e2e316dd05f938c7c8aa0bedc7b33a33f294ee76fa23b619d6d1d5a7db724117caca03250e5fd18c76456d502c5bdb33bb65a18fdd0c842e2f5bf5602c19f63ebf503d9d3b6796cf8adb0cf8017e2ac51bc4806eac3bf378223f81c69cca1c6a8df86a4f40c17e25a6c01f81754c222bb0b969cb34a75a0d62",
"country": "Argentina",
"state": "Mendoza",
"city": "Las Heras",
"facial_image": {
"filename": "facial_image.jpeg",
"content_type": "image/jpeg"
},
"document_back": {
"filename": "back_document_image.jpeg",
"content_type": "image/jpeg"
},
"document_front": {
"filename": "document_image.jpeg",
"content_type": "image/jpeg"
},
"business": {
"operation_countries": "AR,CL",
"website_url": "https://empresa-ejemplo.com",
"uuid": "95956f81-56a4-43bd-8330-2665062dc5cc",
"trade_name": "Empresa Ejemplo SRL",
"is_financial_company": true,
"has_license": false,
"same_to_legal_location": false,
"physical_country": "Argentina",
"physical_state": "Mendoza",
"physical_city": "Las Heras",
"physical_zipcode": 1000,
"physical_address": "Calle Comercial 456",
"lr_first_name": "Carlos",
"lr_last_name": "Lopez",
"lr_phone_number": 541198765432,
"lr_document_number": 23456789,
"lr_document_issuing_country": "Argentina",
"lr_document_expedition_date": "1975-08-20T00:00:00.000Z",
"lr_secondary_document_number": 98765432,
"lr_civil_status": "single",
"lr_occupation": "Developer",
"lr_gender": "male",
"expected_monthly_payments_usd": "usd_40000_to_500000",
"lr_document_type": "dni",
"lr_birthdate": "1975-08-20T00:00:00.000Z",
"business_interests": {
"use_interests": [
"Compra y venta cripto",
"Soluciones API"
],
"other_usability": "Otro interés"
},
"company_statute": {
"filename": "company_statute.pdf",
"content_type": "application/pdf"
},
"tax_identity_document": {
"filename": "tax_identity_document.jpeg",
"content_type": "image/jpeg"
},
"statement_of_funds_document": {
"filename": "statement_of_funds_document.pdf",
"content_type": "application/pdf"
},
"extra_document": {
"filename": "extra_document.jpeg",
"content_type": "image/jpeg"
},
"legal_representative_proof_document": {
"filename": "legal_representative_proof_document.pdf",
"content_type": "application/pdf"
}
},
"business_owners": [
{
"ubo_first_name": "Ana",
"ubo_last_name": "Gomez",
"ubo_residence_country": "Argentina",
"ubo_residence_state": "Mendoza",
"ubo_residence_city": "Las Heras",
"ubo_address": "Av. Siempre Viva 789",
"ubo_is_direct": true,
"ubo_ownership_percentage": 60,
"ubo_document_type": "dni",
"ubo_document_number": 34567890,
"ubo_country": "Argentina",
"ubo_start_date": "2020-01-01T00:00:00.000Z",
"ubo_document_expedition_date": "2015-01-01T00:00:00.000Z",
"ubo_has_control": false,
"ubo_is_signer": false,
"ubo_title_position": "CEO",
"ubo_birthdate": "1980-02-10T00:00:00.000Z",
"ubo_phone": 54111223344,
"ubo_email": "ana.gomez@example.com",
"ubo_zipcode": 1000,
"ubo_document_image": {
"filename": "ubo_document_image.jpeg",
"content_type": "image/jpeg"
},
"ubo_back_document_image": {
"filename": "ubo_back_document_image.jpeg",
"content_type": "image/jpeg"
}
}
],
"politically_exposed_person": {
"first_name": "Pedro",
"last_name": "Alvarez",
"document_number": 45678901,
"job_title": "Funcionario Público"
}
}Complete Verification
This endpoint allows completing the verification of a previously created user in Vita Wallet (both natural and business users).
If during the initial creation (create) not all required data was provided, the user will remain in the status profile_verification: “initial”.
With this endpoint, the client can submit all the complete and correct information to start the verification process.
If the validation is successful, the user will automatically move to the status profile_verification: “started”.
When using this endpoint, the request body must include all the user’s data, not just the missing fields from creation. For natural users, the entire natural user object must be sent again, including politically_exposed_person if applicable. For business users, the full information must be sent again, including the user object, business object, business_owners (UBOs), and politically_exposed_person if applicable.
Verification (Natural User)
Example request body
{
"email": "email@example.com",
"first_name": "John",
"last_name": "Doe",
"category": "natural",
"birthdate": "1985-06-15",
"document_type": "dni",
"document_number": "123456789",
"country_iso_code": "AR",
"birth_country_iso_code": "AR",
"address": "123 Fake Street",
"state_iso_code": "AR-M",
"city_name": "Las Heras",
"zipcode": "1000",
"accept_pep": true,
"accept_real_info": true,
"accept_funds": true,
"civil_status": "single",
"phone": "+54261454748",
"gender": "male",
"ocupation": "Engineer",
"document_expedition_date": "2015-05-01",
"document_issuing_country_iso_code": "AR",
"secondary_document_number": "987654321",
"business_external_id": "ext-v3",
"url_notify_kyc": "https://webhook.site/example-webhook",
"disable_email_notifications": false,
"natural_interests": {
"use_interests": [
"Customer fund transfers",
"Payroll payments"
],
"other_usability": "Specify another interest"
},
"document_image": "Front document file in Base64 (image/jpeg)",
"back_document_image": "Back document file in Base64 (image/jpeg)",
"facial_image": "Facial image in Base64 (image/jpeg)",
"politically_exposed_person": {
"first_name": "Peter",
"last_name": "Alvarez",
"document_number": "45678901",
"job_title": "Public Official"
}
}
Files must be sent encoded in Base64 using the correct MIME type format (e.g., image/jpeg, application/pdf).
Verification (Business User)
Example request body
{
"email": "email@example.com",
"first_name": "John",
"category": "business",
"document_type": "dni",
"document_number": "123456789",
"country_iso_code": "AR",
"address": "123 Fake Street",
"state_iso_code": "AR-M",
"city_name": "Las Heras",
"zipcode": "1000",
"accept_pep": true,
"accept_real_info": true,
"accept_funds": true,
"business_external_id": "ext-v3",
"url_notify_kyc": "https://webhook.site/example-webhook",
"disable_email_notifications": false,
"document_image": "Front document image in Base64 (JPG/PNG)",
"back_document_image": "Back document image in Base64 (JPG/PNG)",
"facial_image": "Selfie or facial capture in Base64 (JPG/PNG)",
"business": {
"operation_countries": "AR,CL",
"website_url": "https://example-company.com",
"trade_name": "Example Company LLC",
"is_financial_company": false,
"has_license": false,
"same_to_legal_location": true,
"physical_country_iso_code": "AR",
"physical_state_iso_code": "AR-M",
"physical_city_name": "Las Heras",
"physical_zipcode": "1000",
"physical_address": "456 Commercial Street",
"lr_first_name": "Charles",
"lr_last_name": "Lopez",
"lr_phone_number": "+541198765432",
"lr_document_number": "23456789",
"lr_document_issuing_country_iso_code": "AR",
"lr_document_expedition_date": "2010-03-15",
"lr_secondary_document_number": "98765432",
"lr_civil_status": "single",
"lr_occupation": "Director",
"lr_gender": "male",
"lr_birthdate": "1975-08-20",
"lr_document_type": "dni",
"expected_monthly_payments_usd": "usd_40000_to_500000",
"company_statute": "Company statute in Base64 (PDF)",
"extra_document": "Additional document in Base64 (JPG/PNG)",
"tax_identity_document": "Tax identity document in Base64 (JPG/PNG)",
"statement_of_funds_document": "Statement of funds document in Base64 (PDF)",
"legal_representative_proof_document": "Legal representative proof document in Base64 (PDF)",
"business_interests": {
"use_interests": [
"Crypto trading",
"API solutions"
],
"other_usability": "Other interest"
}
},
"business_owners": [
{
"ubo_first_name": "Anna",
"ubo_last_name": "Gomez",
"ubo_residence_country_iso_code": "AR",
"ubo_residence_state_iso_code": "AR-M",
"ubo_residence_city_name": "Las Heras",
"ubo_address": "789 Evergreen Ave",
"ubo_is_direct": true,
"ubo_ownership_percentage": 60,
"ubo_document_type": "dni",
"ubo_document_number": "34567890",
"ubo_country_iso_code": "AR",
"ubo_start_date": "2020-01-01",
"ubo_document_expedition_date": "2015-01-01",
"ubo_has_control": true,
"ubo_is_signer": true,
"ubo_title_position": "CEO",
"ubo_birthdate": "1980-02-10",
"ubo_phone": "+54111223344",
"ubo_email": "email@example.com",
"ubo_zipcode": "1000",
"ubo_document_image": "Front document image of ultimate beneficial owner in Base64 (JPG/PNG)",
"ubo_back_document_image": "Back document image of ultimate beneficial owner in Base64 (JPG/PNG)"
}
],
"politically_exposed_person": {
"first_name": "Peter",
"last_name": "Alvarez",
"document_number": "45678901",
"job_title": "Public Official"
}
}
Files must be sent encoded in Base64 using the correct MIME type format (e.g., image/jpeg, application/pdf).
curl --request PATCH \
--url https://api.vitawallet.io/api/businesses/business_users/complete_verification \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--header 'x-date: <api-key>' \
--header 'x-login: <api-key>' \
--header 'x-trans-key: <api-key>' \
--data '""'import requests
url = "https://api.vitawallet.io/api/businesses/business_users/complete_verification"
headers = {
"x-login": "<api-key>",
"x-trans-key": "<api-key>",
"x-date": "<api-key>",
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-login': '<api-key>',
'x-trans-key': '<api-key>',
'x-date': '<api-key>',
Authorization: '<api-key>',
'Content-Type': 'application/json'
}
};
fetch('https://api.vitawallet.io/api/businesses/business_users/complete_verification', 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.vitawallet.io/api/businesses/business_users/complete_verification",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => "\"\"",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json",
"x-date: <api-key>",
"x-login: <api-key>",
"x-trans-key: <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.vitawallet.io/api/businesses/business_users/complete_verification"
payload := strings.NewReader("\"\"")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-login", "<api-key>")
req.Header.Add("x-trans-key", "<api-key>")
req.Header.Add("x-date", "<api-key>")
req.Header.Add("Authorization", "<api-key>")
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.patch("https://api.vitawallet.io/api/businesses/business_users/complete_verification")
.header("x-login", "<api-key>")
.header("x-trans-key", "<api-key>")
.header("x-date", "<api-key>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("\"\"")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vitawallet.io/api/businesses/business_users/complete_verification")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-login"] = '<api-key>'
request["x-trans-key"] = '<api-key>'
request["x-date"] = '<api-key>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "\"\""
response = http.request(request)
puts response.read_body{
"email": "gonzalo+v1@vitawallet.io",
"first_name": "Juan",
"category": "business",
"document_type": "dni",
"document_number": 999990000,
"address": "Calle Falsa 123",
"zipcode": 1000,
"accept_pep": true,
"profile_verification": "started",
"accept_real_info": false,
"accept_funds": false,
"business_external_id": "ext-v1",
"is_business_api": true,
"x_login": "46684a1c21ecb2ef08e8af4e1267cd674653947a",
"url_notify_kyc": "https://webhook.site/b0cad134-9494-46bb-b0c9-c37bc31e54ef",
"disable_email_notifications": true,
"x_trans_key": "KTtQM9AC8rCtpw7FRd3E61o5GoI=",
"secret": "8e3874d1868c597d331478bed5abb4faa0c95b243cea7c0bb8c05c7b5cd1970260411219561ca7dd4475f291618ff673b4a45df027365ad7608c859424df97ea559e4f54359633fbab1afe5d1548279e7a7fb3976dbb6a631ef21169730815eb4c7d568c4c5ef7bbf6092bb9cdece1138c59d1c10e095bd3216044594ce109d97b622f7a31414f3f52c5e5241e6d71ec7de59b8d3aa017c12d0ef5e8cc1456b4fc0aa22c0a4a8650a7624f58804a4280d61559e2e316dd05f938c7c8aa0bedc7b33a33f294ee76fa23b619d6d1d5a7db724117caca03250e5fd18c76456d502c5bdb33bb65a18fdd0c842e2f5bf5602c19f63ebf503d9d3b6796cf8adb0cf8017e2ac51bc4806eac3bf378223f81c69cca1c6a8df86a4f40c17e25a6c01f81754c222bb0b969cb34a75a0d62",
"country": "Argentina",
"state": "Mendoza",
"city": "Las Heras",
"facial_image": {
"filename": "facial_image.jpeg",
"content_type": "image/jpeg"
},
"document_back": {
"filename": "back_document_image.jpeg",
"content_type": "image/jpeg"
},
"document_front": {
"filename": "document_image.jpeg",
"content_type": "image/jpeg"
},
"business": {
"operation_countries": "AR,CL",
"website_url": "https://empresa-ejemplo.com",
"uuid": "95956f81-56a4-43bd-8330-2665062dc5cc",
"trade_name": "Empresa Ejemplo SRL",
"is_financial_company": true,
"has_license": false,
"same_to_legal_location": false,
"physical_country": "Argentina",
"physical_state": "Mendoza",
"physical_city": "Las Heras",
"physical_zipcode": 1000,
"physical_address": "Calle Comercial 456",
"lr_first_name": "Carlos",
"lr_last_name": "Lopez",
"lr_phone_number": 541198765432,
"lr_document_number": 23456789,
"lr_document_issuing_country": "Argentina",
"lr_document_expedition_date": "1975-08-20T00:00:00.000Z",
"lr_secondary_document_number": 98765432,
"lr_civil_status": "single",
"lr_occupation": "Developer",
"lr_gender": "male",
"expected_monthly_payments_usd": "usd_40000_to_500000",
"lr_document_type": "dni",
"lr_birthdate": "1975-08-20T00:00:00.000Z",
"business_interests": {
"use_interests": [
"Compra y venta cripto",
"Soluciones API"
],
"other_usability": "Otro interés"
},
"company_statute": {
"filename": "company_statute.pdf",
"content_type": "application/pdf"
},
"tax_identity_document": {
"filename": "tax_identity_document.jpeg",
"content_type": "image/jpeg"
},
"statement_of_funds_document": {
"filename": "statement_of_funds_document.pdf",
"content_type": "application/pdf"
},
"extra_document": {
"filename": "extra_document.jpeg",
"content_type": "image/jpeg"
},
"legal_representative_proof_document": {
"filename": "legal_representative_proof_document.pdf",
"content_type": "application/pdf"
}
},
"business_owners": [
{
"ubo_first_name": "Ana",
"ubo_last_name": "Gomez",
"ubo_residence_country": "Argentina",
"ubo_residence_state": "Mendoza",
"ubo_residence_city": "Las Heras",
"ubo_address": "Av. Siempre Viva 789",
"ubo_is_direct": true,
"ubo_ownership_percentage": 60,
"ubo_document_type": "dni",
"ubo_document_number": 34567890,
"ubo_country": "Argentina",
"ubo_start_date": "2020-01-01T00:00:00.000Z",
"ubo_document_expedition_date": "2015-01-01T00:00:00.000Z",
"ubo_has_control": false,
"ubo_is_signer": false,
"ubo_title_position": "CEO",
"ubo_birthdate": "1980-02-10T00:00:00.000Z",
"ubo_phone": 54111223344,
"ubo_email": "ana.gomez@example.com",
"ubo_zipcode": 1000,
"ubo_document_image": {
"filename": "ubo_document_image.jpeg",
"content_type": "image/jpeg"
},
"ubo_back_document_image": {
"filename": "ubo_back_document_image.jpeg",
"content_type": "image/jpeg"
}
}
],
"politically_exposed_person": {
"first_name": "Pedro",
"last_name": "Alvarez",
"document_number": 45678901,
"job_title": "Funcionario Público"
}
}Authorizations
Business xLogin
Business xTransKey
ISO8601 datetime
V2-HMAC-SHA256 signature. Example: V2-HMAC-SHA256, Signature: <hash>
Body
The body is of type object.
Response
Successful response.