Criar um cliente
Este endpoint permite cadastrar um novo cliente no sistema, fornecendo funcionalidades para armazenar informações pessoais, documentos, dados de contato e endereços. É especialmente útil para iniciar
Visão Geral
Este endpoint permite cadastrar um novo cliente no sistema, fornecendo funcionalidades para armazenar informações pessoais, documentos, dados de contato e endereços. É especialmente útil para iniciar relacionamentos com novos usuários, possibilitar operações financeiras e garantir conformidade com requisitos legais.
Precauções
ATENÇÃO! Por favor, leia estas informações importantes antes de usar este endpoint.
- Dados Sensíveis: As informações de clientes são consideradas dados sensíveis e devem ser tratadas conforme as regulamentações de proteção de dados (LGPD/GDPR).
- Validação de Documentos: Certifique-se de que os documentos fornecidos (CPF/CNPJ) sejam válidos para evitar problemas futuros.
- E-mails Únicos: O sistema não permite dois clientes com o mesmo endereço de e-mail.
Descrição
O endpoint Criar Cliente permite cadastrar um novo cliente no sistema, armazenando informações essenciais como nome, documento, contato e endereço. Os dados são validados para garantir integridade e conformidade com requisitos legais, permitindo que você mantenha uma base de clientes consistente e atualizada.
Requisição
POST /v1/customersEste endpoint é idempotente: reenvie o mesmo header de idempotência para não criar clientes duplicados em caso de retentativa.
Parâmetros da Requisição
Corpo da Requisição (Body)
{
"firstName": "João",
"lastName": "Silva",
"email": "[email protected]",
"document": {
"type": "cpf",
"number": "12345678900"
},
"telephone": {
"countryCode": "55",
"areaCode": "11",
"number": "987654321",
"line": "11987654321"
},
"gender": "male",
"birthdate": "1990-01-01",
"metadata": {
"source": "website",
"campaign": "black_friday"
},
"externalReference": "CUSTOMER_ID_12345",
"additionalEmails": [
"[email protected]",
"[email protected]"
]
}Endereços não fazem parte do corpo do cliente. Para associar um endereço, crie o cliente primeiro e depois use Criar Endereço (
POST /v1/addresses) informando ocustomerId.
Atributos do Corpo da Requisição
| Atributo | Tipo | Obrigatório | Descrição | Exemplo |
|---|---|---|---|---|
firstName | string | Sim | Nome do cliente (2–255 caracteres) | "João" |
lastName | string | Sim | Sobrenome do cliente (1–255 caracteres) | "Silva" |
email | string | Sim | Endereço de e-mail principal do cliente | "[email protected]" |
document | object | Não | Documento do cliente (type + number, ambos opcionais) | — |
document.type | string | Não | Tipo de documento (cpf, cnpj, passport) | "cpf" |
document.number | string | Não | Número do documento (5–20 caracteres, sem formatação) | "12345678900" |
telephone | object | Não | Telefone do cliente; todas as partes são opcionais | — |
telephone.countryCode | string | Não | Código do país (2–5 dígitos) | "55" |
telephone.areaCode | string | Não | Código de área (2–5 dígitos) | "11" |
telephone.number | string | Não | Número do telefone (6–20 dígitos) | "987654321" |
telephone.line | string | Não | Linha completa do telefone (7–20 dígitos) | "11987654321" |
gender | string | Não | Gênero do cliente (male, female, other) | "male" |
birthdate | string | Não | Data de nascimento no formato YYYY-MM-DD | "1990-01-01" |
metadata | object | Não | Metadados adicionais personalizados | {"source": "website"} |
externalReference | string | Não | Referência externa para integração (máx. 255) | "CUSTOMER_ID_12345" |
additionalEmails | array | Não | E-mails adicionais do cliente (máx. 20) | ["[email protected]"] |
Resposta - 201 Created
Se a requisição for bem-sucedida, o servidor retornará um código de status HTTP 201 Created e os detalhes do cliente recém-criado, incluindo o ID gerado pelo sistema.
Exemplo de Resposta
{
"id": "cus_01hqzvabc",
"firstName": "João",
"lastName": "Silva",
"email": "[email protected]",
"document": {
"type": "cpf",
"number": "12345678900"
},
"telephone": {
"countryCode": "55",
"areaCode": "11",
"number": "987654321",
"line": "11987654321"
},
"birthdate": "1990-01-01",
"gender": "male",
"available": true,
"delinquent": false,
"externalReference": "CUSTOMER_ID_12345",
"additionalEmails": [
"[email protected]"
],
"metadata": {
"source": "website"
},
"createdAt": "2026-04-12T17:56:33.000Z",
"updatedAt": "2026-04-12T17:56:33.000Z",
"merchant": {
"name": "Seller Name",
"merchantId": "bus_1234567890",
"isSubAccount": false
},
"_links": {
"self": {
"href": "https://api.selectwin.io/v1/customers/cus_01hqzvabc",
"method": "GET",
"description": "Read a customer."
},
"create": {
"href": "https://api.selectwin.io/v1/customers",
"method": "POST",
"description": "Create a new customer."
},
"update": {
"href": "https://api.selectwin.io/v1/customers/cus_01hqzvabc",
"method": "PUT",
"description": "Update the customer."
},
"delete": {
"href": "https://api.selectwin.io/v1/customers/cus_01hqzvabc",
"method": "DELETE",
"description": "Delete the customer."
},
"list": {
"href": "https://api.selectwin.io/v1/customers",
"method": "GET",
"description": "List all customers."
}
}
}Atributos da Resposta
Create retorna o objeto base do cliente (sem os embeds transactions/subscriptions/addresses/cards) + merchant + _links.
| Atributo | Tipo | Descrição |
|---|---|---|
id | string | Identificador do cliente (cus_*) |
firstName / lastName | string | Nome e sobrenome |
email | string | null | E-mail principal |
document | object | null | { type, number } (cada um pode ser null) |
telephone | object | null | { countryCode, areaCode, number, line } (cada parte pode ser null) |
birthdate | string | null | Data de nascimento (YYYY-MM-DD) |
gender | string | null | Gênero |
available / delinquent | boolean | Status do cliente |
externalReference | string | null | Referência externa |
additionalEmails | array | null | E-mails adicionais |
metadata | object | null | Metadados |
createdAt / updatedAt | string | Timestamps ISO 8601 (UTC) |
merchant | object | { name, merchantId, isSubAccount } |
_links | object | HATEOAS (self, create, update, delete, list) |
Respostas de Erro
400 Bad Request
Ocorre quando a requisição contém dados inválidos ou está mal formatada.
{
"error": {
"status": "Bad Request",
"statusCode": 400,
"category": "validation",
"message": "Validation errors occurred.",
"params": [
{
"firstName": "The firstName field must be between 2 and 255 characters."
}
]
}
}409 Conflict
Ocorre quando já existe um cliente com o mesmo e-mail (customerEmailTaken) ou documento (customerDocumentTaken).
{
"error": {
"status": "Conflict",
"statusCode": 409,
"category": "conflict",
"message": "A customer with this email already exists."
}
}Casos de Uso
- Novo Usuário: Criar um perfil de cliente quando um novo usuário se registra em sua plataforma
- Checkout de Convidado: Armazenar informações do cliente durante um processo de checkout sem conta
- Migração de Dados: Importar clientes de sistemas legados para a plataforma Selectwin
- Prospecção: Registrar potenciais clientes capturados em ações de marketing
Melhores Práticas
- Validar Antes de Enviar: Implemente validações do lado do cliente para todos os campos antes de enviar a requisição
- Armazenar o ID: Guarde o ID do cliente retornado para referência em operações futuras
- Enviar Apenas o Necessário: Inclua apenas os campos realmente necessários para sua operação
- Tratar Dados Sensíveis: Adote medidas de segurança adicionais ao lidar com documentos e dados pessoais
Integração com Outros Endpoints
- Use Consultar Cliente para verificar os dados do cliente após a criação
- Use Atualizar Cliente para complementar informações parcialmente enviadas
- Use Criar Endereço para adicionar múltiplos endereços ao cliente
How is this guide?