VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Guia rápido

Clientes

Como funcionam clientes e usuários na Venddor, os tipos de usuário, pessoa física e jurídica, o status da conta e o mapa de todas as rotas.

Um usuário é qualquer pessoa com login na loja: o cliente que compra, o administrador que opera o painel da loja e o usuário de seller (lojista) que opera o painel de um vendedor do marketplace. Todos moram na mesma tabela e na mesma API. O que muda é o user_type. Esta seção cobre o dia a dia de um cliente: cadastrar, consultar, corrigir, endereçar, ativar, desativar, definir formas de pagamento e ligar a um grupo.

Todas as rotas desta seção ficam em /api/v1/admin/users...: a API de administração, com UUIDs, datas RFC 3339, PF/PJ explícito, histórico de troca de tipo e operações em lote.

Pontos-chave
  • O user_type define o papel: customer (comprador), vendor (administrador de um seller) e admin (administrador da loja).
  • Todo cliente é pessoa física (PF) ou pessoa jurídica (PJ). Numa PJ, o nome da empresa mora em legal_name (razão social) e first_name repete esse nome, com last_name vazio.
  • O status da conta é uma letra: A ativa, P pendente de aprovação, D desativada. Excluir um usuário é uma exclusão lógica: ele some das listas e o e-mail pode ser usado de novo.
  • O cliente pertence à loja, não a um seller. Ele passa a "ser cliente" de um seller quando compra dele ou quando entra na carteira do seller.

Como funciona

Os três tipos de usuário

user_typeQuem éComo ganha acesso
customerComprador da vitrine. Pode ser PF ou PJ.Pelo cadastro na loja ou criado por API. Não tem privilégios de painel.
vendorAdministrador de um seller (lojista).Vínculo com o seller (dono ou equipe) e privilégios de seller.
adminAdministrador da loja.Pertence a grupos do tipo administrador, cujos privilégios definem o que ele pode fazer.

Existe ainda o tipo root_admin (dono da plataforma), aceito em PUT mas que você não deve usar em integrações.

O ciclo de vida da conta

Pendente (P)→Ativa (A)→Desativada (D)
LetraPalavra aceita na entradaSignificado
AactiveConta ativa, pode entrar e comprar. É o padrão ao criar.
PpendingAguardando aprovação (cadastros que a loja revisa antes de liberar). Não entra até ser aprovada.
Ddisabled, inactive, deletedDesativada. Também é a letra de um usuário excluído.

Mudar o status de um usuário derruba as sessões abertas dele na hora: o token em uso deixa de valer. Aprovar e recusar têm rotas próprias (Alterar cliente). As respostas sempre devolvem a letra. Palavras longas só são aceitas na entrada.

Pessoa física e pessoa jurídica

PF (person_type: "F")PJ (person_type: "J")
DocumentoCPF, 11 dígitos, no campo cpf.CNPJ, 14 caracteres, no campo cnpj.
Nomefirst_name e last_name são o nome da pessoa.legal_name é a razão social; trade_name é o nome fantasia (opcional). first_name repete a razão social inteira e last_name fica vazio.
Quem opera a contaA própria pessoa.O responsável, guardado nos campos de perfil responsible_name e responsible_cpf.
Inscrição estadualNão se aplica.state_reg (opcional).

Essa é a forma canônica de PJ. Ela existe para que leitores antigos de first_name (nota fiscal, e-mails e integrações antigas) continuem vendo o nome inteiro da empresa. Você não precisa montar o espelho: ao criar ou editar uma PJ, a plataforma copia a razão social para first_name e zera last_name. Se você mandar só first_name e last_name junto de um CNPJ, os dois são juntados numa razão social em vez de a chamada ser recusada.

Regras do documento:

  • CPF e CNPJ são validados pelos dígitos verificadores. Máscara é aceita (123.456.789-09) e removida antes de gravar. O CNPJ aceita o formato alfanumérico da Receita Federal (letras maiúsculas nas 12 primeiras posições).
  • Um CPF só pode existir em uma conta ativa. Um CNPJ pode repetir em várias contas: elas passam a formar uma conta corporativa, e compradores de uma mesma empresa enxergam os pedidos uns dos outros.
  • person_type aceita F, PF, J e PJ. Quem nunca teve o tipo declarado (person_type_declared: false) é classificado pelo documento: com CNPJ é PJ, sem CNPJ é PF.
  • Trocar o tipo de um cliente existente tem prévia e histórico: veja PF e PJ.

Dados do cliente em três lugares

  1. A conta: e-mail, nome, telefone, documento, idioma, status. É o objeto devolvido por Consultar cliente.
  2. Os endereços: quantos o cliente quiser, um deles padrão (Endereços).
  3. Os campos de perfil: campos que cada loja define (por exemplo, "ramo de atividade"). São lidos e gravados à parte (Campos de perfil).

Como um cliente se liga a um seller

O cadastro do cliente é da loja, e a mesma pessoa pode comprar de vários sellers. A ligação com um seller nasce de um destes fatos:

  • Comprou do seller. O cliente aparece na lista de clientes do seller assim que existe um pedido dele (a venda de um pedido pai gera sub-pedidos por seller, veja Pedidos).
  • Entrou na carteira do seller. O próprio seller cadastra ou importa clientes na carteira dele, mesmo sem pedido, pelo painel do seller.
  • Está num grupo liberado ao seller. Grupos de usuários marcados como gerenciáveis pelo seller deixam o seller colocar clientes neles.

Já o usuário do seller (user_type: "vendor") se liga ao seller por vínculo de equipe (dono ou membro), e a listagem aceita o filtro vendor_id para ver os administradores de um seller.

Autenticação

Faça login (POST /api/v1/auth/login) e use access_token como Bearer. O login tem limite de requisições (429): guarde o token. Cada rota exige um privilégio:

PrivilégioPara quê
view_users ou manage_usersLer (listar, consultar, endereços, sessões, estatísticas, regras de pagamento).
manage_usersEscrever (criar, editar, excluir, status, endereços, lote, grupos).
manage_user_passwordsTrocar a senha de outro usuário e disparar o e-mail de redefinição. Não vem junto com manage_users.
manage_profile_fieldsGravar campos de perfil de um usuário.
manage_usergroupsGrupos de usuários e seus privilégios.

Ids, datas e dinheiro

  • Todo id é um UUID em string.
  • As datas vêm em RFC 3339 (UTC). Junto delas vêm também os campos de apelido user_id, firstname, lastname, tax_id e timestamp (cadastro em Unix, em segundos).
  • Dinheiro é sempre inteiro em centavos (total_spend_centavos).
  • Telefones gravados na conta são normalizados para o formato internacional (11 3333-4444 vira +551133334444). O telefone de um endereço é gravado como veio.

Endpoints

Auth: Admin é o administrador, com Authorization: Bearer <JWT> e o privilégio de cada rota.

MétodoRotaO que fazAuthPágina
GET/api/v1/admin/usersLista usuários com filtrosAdminListar clientes
POST/api/v1/admin/users/searchBusca avançadaAdminListar clientes
GET/api/v1/admin/users/person-type-presenceHá clientes PF e PJ?AdminListar clientes
GET/api/v1/admin/users/stats/summaryTotais de usuáriosAdminListar clientes
GET/api/v1/admin/users/{id}Consulta um usuárioAdminConsultar cliente
GET/api/v1/admin/users/{id}/statsEstatísticas de compraAdminConsultar cliente
POST/api/v1/admin/usersCria usuárioAdminCriar cliente
PUT/api/v1/admin/users/{id}Altera usuárioAdminAlterar cliente
PATCH/api/v1/admin/users/{id}/statusMuda o statusAdminAlterar cliente
PUT/api/v1/admin/users/{id}/approveAprova cadastro pendenteAdminAlterar cliente
PUT/api/v1/admin/users/{id}/rejectRecusa cadastro pendenteAdminAlterar cliente
DELETE/api/v1/admin/users/{id}Exclui usuárioAdminExcluir cliente
POST/api/v1/admin/users/bulkAtiva ou desativa em loteAdminAções em lote
POST/api/v1/admin/users/{id}/person-type/previewPrévia da troca PF/PJAdminPF e PJ
GET/api/v1/admin/users/{id}/person-type/changesHistórico de trocasAdminPF e PJ
POST/api/v1/admin/users/{id}/person-type/changes/{changeId}/undoDesfaz uma trocaAdminPF e PJ
GET/api/v1/admin/users/{id}/addressesLista endereçosAdminEndereços
POST/api/v1/admin/users/{id}/addressesCria endereçoAdminEndereços
PUT/api/v1/admin/users/{id}/addresses/{addressId}Altera endereçoAdminEndereços
DELETE/api/v1/admin/users/{id}/addresses/{addressId}Exclui endereçoAdminEndereços
GET, PUT/api/v1/admin/users/{id}/field-valuesLê e grava campos de perfilAdminCampos de perfil
POST/api/v1/admin/users/{id}/set-passwordDefine a senha de um usuárioAdminAcesso e senha
POST/api/v1/admin/users/{id}/send-password-resetEnvia o e-mail de redefiniçãoAdminAcesso e senha
GET, DELETE/api/v1/admin/users/{id}/sessionsLista e encerra sessõesAdminAcesso e senha
POST/api/v1/admin/users/{id}/resend-verification-emailReenvia a verificação de e-mailAdminAcesso e senha
POST/api/v1/admin/users/{id}/mark-email-verifiedMarca o e-mail como verificadoAdminAcesso e senha
GET, PUT/api/v1/admin/users/{id}/payment-methodsFormas de pagamento permitidas ao clienteAdminFormas de pagamento do cliente
GET/api/v1/admin/users/{id}/usergroupsGrupos do usuárioAdminVínculo com grupos
GET/api/v1/admin/users/{id}/whatsapp-bindingsNúmeros de WhatsApp ligadosAdminWhatsApp
DELETE/api/v1/admin/users/{id}/whatsapp-bindings/{bindingId}Solta um númeroAdminWhatsApp

Grupos de usuários e seus privilégios estão em Grupos de usuários.

Erros comuns

  1. Mandar a senha em PUT /users/{id}. A atualização não troca senha: a API recusa com 400 password_not_updatable. Use set-password (Acesso e senha).
  2. Criar uma PJ só com first_name. Numa PJ o nome que vale é legal_name. Mande cnpj e legal_name e deixe a plataforma montar first_name.
  3. Esperar que um CPF repetido dê 400. Ele volta como 500 com CPF already registered by another user. Pesquise o CPF antes de criar.
  4. Usar a palavra do status na saída. status=active funciona na entrada, mas a saída é sempre a letra (A, D, P).
  5. Achar que excluir apaga o histórico. A exclusão é lógica; pedidos e endereços continuam ligados ao registro. Para apenas impedir o acesso, desative (D).
  6. Procurar a senha na resposta. A plataforma nunca devolve senha nem hash.

Próximos passos

Listar clientes
Filtre e pagine a base de clientes..
Criar cliente
Cadastre PF ou PJ vindo de um ERP ou do atendimento.
PF e PJ
Troque o tipo de pessoa com prévia e desfazer.
Grupos de usuários
Segmente clientes e controle privilégios.
Anterior
Operações de manutenção
Próxima
Listar clientes
Nesta página
  • Como funciona
  • Os três tipos de usuário
  • O ciclo de vida da conta
  • Pessoa física e pessoa jurídica
  • Dados do cliente em três lugares
  • Como um cliente se liga a um seller
  • Autenticação
  • Ids, datas e dinheiro
  • Endpoints
  • Erros comuns
  • Próximos passos