Contatos (clientes)
Localize um cliente pelo celular, CPF, e-mail ou pelo código do seu sistema; cadastre quem ainda não existe; consulte e exclua.
https://app.reton.com.br/api/v1Atualizado em 30 de setembro de 2026Navegar na API
No Reton, cada cliente da sua loja é um contato, e toda venda, ponto e mensagem fica pendurado nele. Cada contato tem um id que começa com con_.
404) e para consultar ou conferir os dados de um cliente.Os comandos desta página saem prontos para copiar. A chave fica só nesta aba — não é salva nem enviada.
Localizar cliente
/api/v1/contatosProcura o cliente por celular, CPF/CNPJ, e-mail ou pelo código do seu sistema.
Envie apenas um parâmetro na URL: o celular, ou o documento (CPF/CNPJ), ou o email, ou o idExterno. Mandar dois na mesma chamada dá erro 400. Ex.: /contatos?celular=11987654321.
Se ninguém for encontrado, a resposta é 200 com total: 0 e a lista vazia — não é erro: é o sinal para você cadastrar o cliente.
O celular é comparado sem máscara, sem o 55 e com ou sem o 9 da frente — (11) 98765-4321 acha quem foi cadastrado como 11987654321. Por isso a lista pode, raramente, trazer duas pessoas: a primeira é a que bate exatamente com o que você mandou.
Parâmetros da URL
celularstringCelular com DDD, com ou sem máscara.
documentostringCPF ou CNPJ, com ou sem pontuação.
emailstringE-mail (maiúsculas e minúsculas não importam).
idExternostringO código do cliente no seu sistema, enviado no cadastro.
Erros que você deve tratar
400 VALIDATION_ERRORNenhum parâmetro na URL, ou mais de um na mesma chamada.
curl "https://app.reton.com.br/api/v1/contatos?celular=11987654321" \ -H "X-API-Key: $RETON_API_KEY"{ "success": true, "data": { "total": 1, "contatos": [ { "id": "con_LC4dQtpwbrLudiRS", "nome": "Maria", "sobrenome": "Silva", "celular": "11987654321", "email": "maria.silva@email.com", "tipoPessoa": "pf", "tipoDocumento": "cpf", "numeroDocumento": "52998224725", "dataNascimento": "1990-05-15T00:00:00.000Z", "tags": [ "vip" ], "idExterno": "CLI-1042", "origemPlataforma": "api:PDV loja 1", "classificacao": "saudavel", "ativo": true, "optinWhatsapp": true, "optinEmail": false, "optinSms": false, "unidadeId": null, "unidadeCodigo": null, "unidadeNome": null, "customFields": {}, "canalCadastro": "api", "criadoEm": "2026-09-30T14:51:34.294Z", "atualizadoEm": "2026-09-30T14:51:34.556Z" } ] }, "meta": { "requestId": "req_V1StGXR8Z5jdHi6B" }}{ "success": true, "data": { "total": 0, "contatos": [] }, "meta": { "requestId": "req_V1StGXR8Z5jdHi6B" }}Consultar cliente
/api/v1/contatos/:idTraz um cliente pelo id do Reton.
A resposta tem o mesmo formato de cada item da busca. Para o saldo de pontos ou cashback, use Consultar saldo — ele desconta o que já venceu.
Parâmetros do caminho
idstringobrigatórioO id do contato (
con_…).
Erros que você deve tratar
400 VALIDATION_ERRORO id não tem o formatocon_….404 NOT_FOUNDNão existe na sua conta, ou está na Lixeira.
curl "https://app.reton.com.br/api/v1/contatos/con_LC4dQtpwbrLudiRS" \ -H "X-API-Key: $RETON_API_KEY"{ "success": true, "data": { "id": "con_LC4dQtpwbrLudiRS", "nome": "Maria", "sobrenome": "Silva", "celular": "11987654321", "email": "maria.silva@email.com", "tipoPessoa": "pf", "tipoDocumento": "cpf", "numeroDocumento": "52998224725", "dataNascimento": "1990-05-15T00:00:00.000Z", "tags": [ "vip" ], "idExterno": "CLI-1042", "origemPlataforma": "api:PDV loja 1", "classificacao": "saudavel", "ativo": true, "optinWhatsapp": true, "optinEmail": false, "optinSms": false, "unidadeId": null, "unidadeCodigo": null, "unidadeNome": null, "customFields": {}, "canalCadastro": "api", "criadoEm": "2026-09-30T14:51:34.294Z", "atualizadoEm": "2026-09-30T14:51:34.556Z" }, "meta": { "requestId": "req_V1StGXR8Z5jdHi6B" }}{ "success": false, "error": { "code": "NOT_FOUND", "message": "Contato não encontrado." }, "meta": { "requestId": "req_V1StGXR8Z5jdHi6B" }}Cadastrar cliente
/api/v1/contatosCria um cliente. Só nome e celular são obrigatórios.
Mande o que você tiver — o mínimo é nome e celular. Ao lado há dois exemplos: um enxuto e um com todos os campos de pessoa física; a lista completa, com o que cada campo aceita, está logo abaixo. Para cliente pessoa jurídica, use tipoPessoa: "pj", tipoDocumento: "cnpj" e os campos nomeFantasia, nomeContato, cargo e inscricaoEstadual.
E se o cliente já existir? O Reton não cria em dobro: responde 409 e diz quem já tem aquele celular ou CPF em error.details[0].contatoId. Use esse id e siga em frente.
optinWhatsapp / optinEmail / optinSms como true se o cliente realmente aceitou receber mensagens: é o registro do consentimento dele (LGPD).Corpo da requisição (JSON)
nomestringobrigatórioPrimeiro nome do cliente.
Até 255 caracteres.
celularstringobrigatórioCelular com DDD. Pode vir com ou sem máscara e com ou sem o 55:
(11) 98765-4321,11987654321e5511987654321são o mesmo número. O Reton guarda só os dígitos.Até 20 caracteres.
sobrenomestringSobrenome.
Até 255 caracteres.
emailstringE-mail do cliente.
Até 255 caracteres.
numeroDocumentostringCPF ou CNPJ, com ou sem pontuação. Não pode repetir o de outro cliente seu.
Até 20 caracteres.
tipoDocumentostringQue documento é o
numeroDocumento.Valores:
cpf,cnpj,passaporte,rne,outro. Padrão:cpf.tipoPessoastringPessoa física (
pf) ou jurídica (pj).Valores:
pf,pj. Padrão:pf.dataNascimentostringData de nascimento:
1990-05-15. Também aceita data e hora com fuso (1990-05-15T00:00:00-03:00).sexostringSexo.
Valores:
masculino,feminino,outro.idExternostringO código deste cliente no seu sistema. Guarde-o aqui para depois achar o cliente por ele (
GET /contatos?idExterno=).Até 100 caracteres.
tagsstring[]Etiquetas (até 20, de até 50 caracteres cada). Viram minúsculas.
optinWhatsappbooleanO cliente aceitou receber mensagens por WhatsApp.
Padrão:
false.optinEmailbooleanO cliente aceitou receber e-mails.
Padrão:
false.optinSmsbooleanO cliente aceitou receber SMS.
Padrão:
false.unidadeCodigostringCódigo da loja onde o cliente foi cadastrado (o mesmo
codigode Lojas).Até 50 caracteres.
unidadeIdstringOu o id da loja (
uni_…), no lugar do código.notasstringAnotação livre sobre o cliente.
Até 5000 caracteres.
customFieldsobjectCampos personalizados que você criou no Reton (Configurações › Campos personalizados). A chave é o nome interno do campo; o valor é conferido pelo tipo dele.
cepstringCEP.
Até 10 caracteres.
logradourostringRua, avenida…
Até 255 caracteres.
numerostringNúmero do endereço.
Até 20 caracteres.
complementostringComplemento.
Até 255 caracteres.
bairrostringBairro.
Até 100 caracteres.
cidadestringCidade.
Até 100 caracteres.
estadostringUF, com duas letras (
SP).Até 2 caracteres.
nomeFantasiastringPessoa jurídica: nome fantasia.
Até 255 caracteres.
nomeContatostringPessoa jurídica: com quem falar.
Até 255 caracteres.
cargostringPessoa jurídica: cargo de quem fala.
Até 100 caracteres.
inscricaoEstadualstringPessoa jurídica: inscrição estadual.
Até 20 caracteres.
origemCadastrostringPor onde o cliente chegou (texto livre, para seus relatórios).
Até 50 caracteres.
origemPlataformastringDe qual sistema veio o cadastro. Se não enviar, o Reton grava
api:+ o nome da chave usada.Até 50 caracteres.
Erros que você deve tratar
400 VALIDATION_ERRORCampo faltando ou em formato errado —error.detailslista quais. Também quando a loja informada não existe.409 CONFLICTJá há um cliente com esse celular (motivo: "celular") ou CPF/CNPJ (motivo: "documento"). O id dele vem emdetails[0].contatoId.
curl -X POST "https://app.reton.com.br/api/v1/contatos" \ -H "X-API-Key: $RETON_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "nome": "Maria", "sobrenome": "Silva", "celular": "(11) 98765-4321", "email": "maria.silva@email.com", "numeroDocumento": "529.982.247-25", "dataNascimento": "1990-05-15", "idExterno": "CLI-1042", "optinWhatsapp": true }'# Todos os campos de pessoa física. Apague os que não usar.# unidadeCodigo e customFields precisam existir no seu Reton.curl -X POST "https://app.reton.com.br/api/v1/contatos" \ -H "X-API-Key: $RETON_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "nome": "Maria", "sobrenome": "Silva", "celular": "(11) 98765-4321", "email": "maria.silva@email.com", "tipoPessoa": "pf", "tipoDocumento": "cpf", "numeroDocumento": "529.982.247-25", "dataNascimento": "1990-05-15", "sexo": "feminino", "idExterno": "CLI-1042", "tags": [ "vip", "cliente-antigo" ], "optinWhatsapp": true, "optinEmail": true, "optinSms": false, "unidadeCodigo": "LJ01", "notas": "Prefere ser atendida pela manhã.", "customFields": { "tamanho_calcado": "36" }, "cep": "01310-100", "logradouro": "Avenida Paulista", "numero": "1000", "complemento": "Apto 12", "bairro": "Bela Vista", "cidade": "São Paulo", "estado": "SP", "origemCadastro": "Loja física", "origemPlataforma": "PDV Loja 1" }'{ "success": true, "data": { "id": "con_LC4dQtpwbrLudiRS", "nome": "Maria", "sobrenome": "Silva", "celular": "11987654321", "email": "maria.silva@email.com", "tipoPessoa": "pf", "tags": [], "pontosSaldo": 0, "classificacao": "saudavel", "ativo": true, "unidadeId": null, "unidadeCodigo": null, "unidadeNome": null, "customFields": {}, "canalCadastro": "api", "criadoPor": { "tipo": "api", "apiKeyId": "key_LgypViyLXFkaiQWx", "apiKeyNome": "PDV loja 1", "apiKeyHashPrefix": "57b4c78c" }, "criadoEm": "2026-09-30T14:51:34.294Z" }, "meta": { "requestId": "req_V1StGXR8Z5jdHi6B" }}{ "success": false, "error": { "code": "CONFLICT", "message": "Já existe um contato com o celular 11987654321: \"Maria\" (con_LC4dQtpwbrLudiRS).", "details": [ { "motivo": "celular", "contatoId": "con_LC4dQtpwbrLudiRS" } ] }, "meta": { "requestId": "req_V1StGXR8Z5jdHi6B" }}{ "success": false, "error": { "code": "VALIDATION_ERROR", "message": "Erro de validação nos dados enviados.", "details": [ { "field": "email", "message": "email inválido", "code": "invalid_format" } ] }, "meta": { "requestId": "req_V1StGXR8Z5jdHi6B" }}Excluir cliente
/api/v1/contatos/:idManda o cliente para a Lixeira do Reton (dá para restaurar no painel por 90 dias).
A exclusão pela API não apaga de vez: o cliente vai para a Lixeira, some das listas e da busca, e pode ser restaurado no painel por 90 dias. Depois disso, é apagado definitivamente.
Parâmetros do caminho
idstringobrigatórioO id do contato (
con_…).
Erros que você deve tratar
400 VALIDATION_ERRORO id não tem o formatocon_….404 NOT_FOUNDNão existe, ou já está na Lixeira.
curl -X DELETE "https://app.reton.com.br/api/v1/contatos/con_LC4dQtpwbrLudiRS" \ -H "X-API-Key: $RETON_API_KEY"{ "success": true, "data": { "id": "con_LC4dQtpwbrLudiRS", "deletado": true, "deletadoEm": "2026-09-30T15:02:11.482Z" }, "meta": { "requestId": "req_V1StGXR8Z5jdHi6B" }}Isso foi útil?
Ainda precisa de ajuda?
Não achou o que procurava? A gente responde de gente pra gente.