Criar um endereço
Este endpoint permite adicionar um novo endereço a um cliente existente no sistema. Permite o cadastro de endereços com informações completas, incluindo coordenadas geográficas e metadados personaliza
Visão Geral
Este endpoint permite adicionar um novo endereço a um cliente existente no sistema. Permite o cadastro de endereços com informações completas, incluindo coordenadas geográficas e metadados personalizados, facilitando a gestão de informações de entrega e faturamento em sua plataforma.
Precauções
ATENÇÃO! Por favor, leia estas informações importantes antes de usar este endpoint.
- ID do Cliente: Certifique-se de utilizar um ID de cliente válido e existente no sistema.
- Dados de Localização:
latitudeelongitudesão strings opcionais (máx. 16 caracteres cada). - Formato do CEP: O
postcodeé validado no formato brasileiro (CEP: 8 dígitos, com ou sem hífen) e é armazenado apenas com os dígitos. - Campo primary: Se definido como
true, marca este endereço como principal do cliente.
Descrição
O endpoint Criar Endereço permite adicionar um novo endereço a um cliente existente no sistema, com validação de dados e opção de definir metadados personalizados.
Estrutura JSON - Parâmetros Obrigatórios
{
"customerId": "cus_123456789",
"street": "Avenida Paulista",
"country": "BR",
"postcode": "01310-100"
}Estrutura JSON - Exemplo Completo
{
"customerId": "cus_123456789",
"street": "Avenida Paulista",
"number": "1000",
"complement": "Apto 123",
"district": "Bela Vista",
"city": "São Paulo",
"state": "SP",
"country": "BR",
"postcode": "01310-100",
"latitude": "-23.5505",
"longitude": "-46.6333",
"primary": true,
"metadata": {
"type": "commercial",
"notes": "Endereço comercial principal"
}
}Parâmetros da Requisição
| Parâmetro | Tipo | Obrigatório | Descrição | Exemplo | Restrições |
|---|---|---|---|---|---|
customerId | string | Sim | Identificador único do cliente ao qual o endereço será associado (cus_*) | cus_01hqzvabc | Deve corresponder a um cliente existente |
country | string | Sim | País (padrão ISO 3166-1) | "BR" | 2 a 3 caracteres |
postcode | string | Sim | Código postal / CEP | "01310-100" | Formato brasileiro (CEP); armazenado só com dígitos |
street | string | Não | Nome da rua ou logradouro | "Avenida Paulista" | Máximo 255 caracteres |
number | string | Não | Número do endereço | "1000" | Máximo 100 caracteres |
complement | string | Não | Complemento do endereço (apartamento, sala, etc.) | "Apto 123" | Máximo 255 caracteres |
district | string | Não | Bairro ou distrito | "Bela Vista" | Máximo 100 caracteres |
city | string | Não | Cidade | "São Paulo" | Máximo 100 caracteres |
state | string | Não | Estado ou província | "SP" | Máximo 100 caracteres |
latitude | string | Não | Latitude da localização | "-23.5505" | Máximo 16 caracteres |
longitude | string | Não | Longitude da localização | "-46.6333" | Máximo 16 caracteres |
primary | boolean | Não | Indica se é o endereço principal do cliente | true | Padrão: false |
metadata | object | Não | Metadados adicionais para o endereço | {"type": "commercial"} | — |
Resposta - 201 Created
Se a requisição for bem-sucedida, o servidor retornará um código de status HTTP 201 Created e um objeto JSON com as informações do endereço criado.
Exemplo de Resposta
Resposta root-level (conforme emitido pelo responser após mount "read" para create).
{
"id": "addr_01hqzvabc",
"ownerType": "customer",
"ownerId": "cus_01hqzvabc",
"street": "Av. Paulista",
"number": "1000",
"complement": "Sala 1",
"district": "Bela Vista",
"city": "São Paulo",
"state": "SP",
"country": "BR",
"postcode": "01310100",
"latitude": null,
"longitude": null,
"primary": true,
"line": "Av. Paulista, 1000 - Bela Vista, São Paulo - SP, 01310100",
"line1": "Av. Paulista",
"line2": "1000",
"line3": "Bela Vista",
"metadata": {
"source": "checkout"
},
"updatedAt": "2026-04-12T17:56:33.000Z",
"createdAt": "2026-04-12T17:56:33.000Z",
"merchant": {
"name": "Seller Name",
"merchantId": "bus_1234567890",
"isSubAccount": false
},
"_links": {
"self": {
"href": "https://api.selectwin.io/v1/addresses/addr_01hqzvabc",
"method": "GET",
"description": "Read a address."
},
"create": {
"href": "https://api.selectwin.io/v1/addresses",
"method": "POST",
"description": "Create a new address."
},
"update": {
"href": "https://api.selectwin.io/v1/addresses/addr_01hqzvabc",
"method": "PUT",
"description": "Update the address."
},
"delete": {
"href": "https://api.selectwin.io/v1/addresses/addr_01hqzvabc",
"method": "DELETE",
"description": "Delete the address."
},
"list": {
"href": "https://api.selectwin.io/v1/addresses",
"method": "GET",
"description": "List all addresses."
}
}
}Atributos da Resposta
A resposta é o objeto completo no nível raiz + merchant e _links (padrão para creates/reads).
| Atributo | Tipo | Descrição |
|---|---|---|
id | string | Identificador único do endereço (addr_*) |
ownerType | string | Tipo do proprietário (vendor, customer, company ou user) |
ownerId | string | ID do proprietário (cus_* ou equivalente) |
street | string | null | Nome da rua ou logradouro |
number | string | null | Número do endereço |
complement | string | null | Complemento |
district | string | null | Bairro/distrito |
city | string | null | Cidade |
state | string | null | Estado |
country | string | null | País (ISO 3166-1) |
postcode | string | CEP/código postal (somente dígitos) |
latitude | string | null | Latitude |
longitude | string | null | Longitude |
primary | boolean | Se é o endereço principal |
line | string | null | Linha formatada completa |
line1 / line2 / line3 | string | null | Componentes da linha |
metadata | object | null | Metadados |
createdAt | string (date-time) | Criação (ISO) |
updatedAt | string (date-time) | Atualização (ISO) |
merchant | object | Merchant (name, merchantId, isSubAccount) |
_links | object | Links HATEOAS (self, create, update, delete, list) |
Nota sobre input vs output: A requisição aceita customerId (vínculo do dono); a resposta deriva ownerType: "customer" e ownerId (o cus_*). Os campos line/line1/line2/line3 são compostos pelo servidor a partir dos componentes do endereço.
Respostas de Erro
400 Bad Request
Esta resposta ocorre quando há erros de validação na requisição, como campos obrigatórios ausentes ou valores inválidos.
{
"error": {
"status": "Bad Request",
"statusCode": 400,
"category": "validation",
"message": "Validation errors occurred.",
"params": [
{
"country": "This field is required."
},
{
"postcode": "must be a Brazilian postal code"
}
]
}
}404 Not Found
Ocorre quando o customerId informado não existe ou não pertence à sua conta (invalidCustomerId).
{
"error": {
"status": "Not Found",
"statusCode": 404,
"category": "resource",
"message": "The provided customer id is invalid."
}
}Casos de Uso
- Checkout em E-commerce: Adição de endereços de entrega e faturamento durante o processo de compra
- Cadastro de Cliente: Captura de endereços durante o registro inicial do cliente
- Perfil de Usuário: Permitir que usuários adicionem múltiplos endereços em seu perfil
- Gestão Logística: Cadastro de locais de entrega para planejamento de rotas
Melhores Práticas
- Validação de Dados: Valide sempre os dados de endereço antes de enviá-los para a API
- Utilização de Serviço de CEP: Use o endpoint
/utils/postcode-validationpara preencher automaticamente campos de endereço - Metadados Personalizados: Utilize o campo
metadatapara armazenar informações específicas do seu negócio - Tratamento de Erros: Implemente tratamento adequado para todos os códigos de erro possíveis
- Endereço Principal: Quando apropriado, marque um endereço como principal (
primary: true) para facilitar operações futuras
How is this guide?