Clientes
Criar Cliente
Cadastra um cliente na sua conta a partir do CPF/CNPJ, com endereço opcional.
O documento é a chave do cliente dentro da conta e não pode ser alterado depois. Por padrão, se já existir um cliente com o mesmo documento, a API devolve 200 com o cadastro existente em vez de duplicar. Envie upsert: true para que a tentativa de recadastrar retorne erro 400 (CUSTOMER_ALREADY_EXISTS).
Quando o endereço é informado, o código IBGE do município (cityCode) é resolvido automaticamente a partir do CEP — necessário para emissão de NFS-e.
Case de uso:
Como plataforma, quero cadastrar meus clientes junto com o endereço de cobrança, para depois gerar assinaturas e cobranças sem redigitar os dados a cada venda.
/v1/customershttps://api.validapay.com.brhttps://sandbox.validapay.com.brAuthorizations
Authorization
string · header · required
Cabeçalho de autenticação Bearer no formato Bearer {{token}} onde {{token}} é o seu token OAuth2.
Escopos requeridos
Body
application/json
{
"name": "Alexandre Souza",
"document": "11144477735",
"phone": "5511987654321",
"email": "alexandre@exemplo.com.br",
"upsert": false,
"address": {
"zipCode": "01310100",
"street": "Avenida Paulista",
"number": "1000",
"complement": "Sala 5",
"neighborhood": "Bela Vista",
"city": "São Paulo",
"state": "SP"
}
}Schema
namestringRequiredNome completo ou razão social
documentstringRequired^\d{11}$|^\d{14}$CPF (11) ou CNPJ (14), apenas dígitos
phonestringRequiredE.164 com DDI 55
emailstringOptionalupsertbooleanOptionaltrue retorna erro 400 se o documento já existir (default false)
addressobjectOptionalconst url = 'https://sandbox.validapay.com.br/v1/customers';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer {{token}}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"name": "Alexandre Souza",
"document": "11144477735",
"phone": "5511987654321",
"email": "alexandre@exemplo.com.br",
"upsert": false,
"address": {
"zipCode": "01310100",
"street": "Avenida Paulista",
"number": "1000",
"complement": "Sala 5",
"neighborhood": "Bela Vista",
"city": "São Paulo",
"state": "SP"
}
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));Response Examples
{
"customer": {
"customerId": "cus_xxx",
"id": "cus_xxx",
"name": "Alexandre Souza",
"document": "11144477735",
"email": "alexandre@exemplo.com.br",
"phone": "5511987654321",
"accountId": "460851686",
"status": "ACTIVE",
"createdAt": "2026-08-28T12:00:00.000Z"
}
}{
"customer": {
"customerId": "cus_xxx",
"document": "11144477735",
"name": "Alexandre Souza"
}
}{
"error": {
"message": "Já existe um cliente cadastrado com este documento",
"code": "CUSTOMER_ALREADY_EXISTS",
"details": null,
"timestamp": "2026-07-14T21:39:36.322Z"
}
}