API
Atualizar signatário
Atualiza dados de um signatário (nome, email, CPF, telefone, etc.) antes de assinar.
PATCH
/
v1
/
envelopes
/
:uuid
/
signers
/
:signerUuid
Atualizar signatário
curl --request PATCH \
--url https://api.valid.com/v1/envelopes/:uuid/signers/:signerUuid \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"email": "<string>",
"cpf": "<string>",
"phoneCountryCode": "<string>",
"phoneNumber": "<string>",
"queueOrder": 123,
"livenessSessionId": "<string>"
}
'import requests
url = "https://api.valid.com/v1/envelopes/:uuid/signers/:signerUuid"
payload = {
"name": "<string>",
"email": "<string>",
"cpf": "<string>",
"phoneCountryCode": "<string>",
"phoneNumber": "<string>",
"queueOrder": 123,
"livenessSessionId": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
email: '<string>',
cpf: '<string>',
phoneCountryCode: '<string>',
phoneNumber: '<string>',
queueOrder: 123,
livenessSessionId: '<string>'
})
};
fetch('https://api.valid.com/v1/envelopes/:uuid/signers/:signerUuid', 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.valid.com/v1/envelopes/:uuid/signers/:signerUuid",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'email' => '<string>',
'cpf' => '<string>',
'phoneCountryCode' => '<string>',
'phoneNumber' => '<string>',
'queueOrder' => 123,
'livenessSessionId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-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.valid.com/v1/envelopes/:uuid/signers/:signerUuid"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"cpf\": \"<string>\",\n \"phoneCountryCode\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"queueOrder\": 123,\n \"livenessSessionId\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<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.valid.com/v1/envelopes/:uuid/signers/:signerUuid")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"cpf\": \"<string>\",\n \"phoneCountryCode\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"queueOrder\": 123,\n \"livenessSessionId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valid.com/v1/envelopes/:uuid/signers/:signerUuid")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"cpf\": \"<string>\",\n \"phoneCountryCode\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"queueOrder\": 123,\n \"livenessSessionId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyHTTP/1.1 200 OK
Content-Type: application/json
{
"signerUuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"name": "João Silva Atualizado",
"email": "joao.novo@empresa.com",
"cpf": "12345678901",
"phoneCountryCode": "55",
"phoneNumber": "11912345678",
"queueOrder": 1,
"updatedAt": "2025-07-27T11:00:00.000Z"
}
HTTP/1.1 409 Conflict
Content-Type: application/json
{
"statusCode": 409,
"message": "Cannot update signer after signature"
}
Permite atualizar parcialmente os dados de um signatário, desde que ainda não tenha assinado. Todos os campos da requisição são opcionais — apenas os enviados serão atualizados.
Parâmetros
string
required
UUID do envelope.
string
required
UUID do signatário a atualizar.
string
Novo nome completo.
string
Novo e-mail.
string
Novo CPF (11 dígitos, sem formatação).
string
Novo código de país do telefone (ex:
"55").string
Novo número de telefone (ex:
"11987654321").integer
Nova ordem na fila (apenas para
signingMode: sequential).string
Novo ID de uma sessão de liveness já realizada (para PAdES avançado).
Respostas
string
UUID do signatário.
string
Nome atualizado.
string
E-mail atualizado.
string
CPF atualizado.
string
Código de país atualizado.
string
Número de telefone atualizado.
integer
Ordem na fila (se aplicável).
string
Caminho da imagem de liveness (se fornecido).
string
Timestamp da atualização (ISO 8601).
Erros
Veja Autenticação e erros.- 400: CPF inválido, email malformado, ou signatário já assinou.
- 401: API key inválido.
- 404: Envelope ou signatário não encontrado.
- 409: Signatário já assinou — não pode atualizar dados.
HTTP/1.1 200 OK
Content-Type: application/json
{
"signerUuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"name": "João Silva Atualizado",
"email": "joao.novo@empresa.com",
"cpf": "12345678901",
"phoneCountryCode": "55",
"phoneNumber": "11912345678",
"queueOrder": 1,
"updatedAt": "2025-07-27T11:00:00.000Z"
}
HTTP/1.1 409 Conflict
Content-Type: application/json
{
"statusCode": 409,
"message": "Cannot update signer after signature"
}
Exemplo
curl -X PATCH "https://signer.vcc-service.com/v1/envelopes/550e8400-e29b-41d4-a716-446655440000/signers/6ba7b810-9dad-11d1-80b4-00c04fd430c8" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "João Silva Atualizado",
"email": "joao.novo@empresa.com"
}'
Relacionado
POST /v1/envelopes— criar envelope com signatários iniciaisGET /v1/envelopes/:uuid— listar signatários do envelope
⌘I
Atualizar signatário
curl --request PATCH \
--url https://api.valid.com/v1/envelopes/:uuid/signers/:signerUuid \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"email": "<string>",
"cpf": "<string>",
"phoneCountryCode": "<string>",
"phoneNumber": "<string>",
"queueOrder": 123,
"livenessSessionId": "<string>"
}
'import requests
url = "https://api.valid.com/v1/envelopes/:uuid/signers/:signerUuid"
payload = {
"name": "<string>",
"email": "<string>",
"cpf": "<string>",
"phoneCountryCode": "<string>",
"phoneNumber": "<string>",
"queueOrder": 123,
"livenessSessionId": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
email: '<string>',
cpf: '<string>',
phoneCountryCode: '<string>',
phoneNumber: '<string>',
queueOrder: 123,
livenessSessionId: '<string>'
})
};
fetch('https://api.valid.com/v1/envelopes/:uuid/signers/:signerUuid', 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.valid.com/v1/envelopes/:uuid/signers/:signerUuid",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'email' => '<string>',
'cpf' => '<string>',
'phoneCountryCode' => '<string>',
'phoneNumber' => '<string>',
'queueOrder' => 123,
'livenessSessionId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-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.valid.com/v1/envelopes/:uuid/signers/:signerUuid"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"cpf\": \"<string>\",\n \"phoneCountryCode\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"queueOrder\": 123,\n \"livenessSessionId\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<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.valid.com/v1/envelopes/:uuid/signers/:signerUuid")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"cpf\": \"<string>\",\n \"phoneCountryCode\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"queueOrder\": 123,\n \"livenessSessionId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valid.com/v1/envelopes/:uuid/signers/:signerUuid")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"cpf\": \"<string>\",\n \"phoneCountryCode\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"queueOrder\": 123,\n \"livenessSessionId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyHTTP/1.1 200 OK
Content-Type: application/json
{
"signerUuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"name": "João Silva Atualizado",
"email": "joao.novo@empresa.com",
"cpf": "12345678901",
"phoneCountryCode": "55",
"phoneNumber": "11912345678",
"queueOrder": 1,
"updatedAt": "2025-07-27T11:00:00.000Z"
}
HTTP/1.1 409 Conflict
Content-Type: application/json
{
"statusCode": 409,
"message": "Cannot update signer after signature"
}