Skip to content

🏠 Endereços do Cliente (Admin)

📋 Visão Geral

O módulo de Endereços do Cliente permite que usuários administrativos gerenciem os endereços dos clientes cadastrados na loja.

Por meio dele, é possível consultar, criar, atualizar e remover endereços, além de definir o endereço principal de um cliente, centralizando a gestão dessas informações no painel administrativo.

🔄 Entidades Envolvidas

O módulo opera sobre uma única entidade principal:

Endereço do Cliente (CustomerAddress)

Representa um local físico vinculado a um cliente. Os campos que compõem um endereço são:

  • id — identificador único gerado automaticamente pela plataforma
  • main — indica se este é o endereço principal do cliente, usado como padrão em entregas e cobranças
  • identification — apelido livre definido pelo cliente (ex: "Casa", "Trabalho"), não precisa ser único
  • zipCode — CEP ou código postal
  • street, number, complement, district, city — campos do logradouro; complement aceita string vazia quando não houver complemento
  • state — nome completo do estado
  • stateCode — código do estado no formato alpha-2 prefixado pelo país (ex: BR-SP), deve pertencer ao país informado
  • countryCode — código do país no formato alpha-3 (ex: BRA, USA, PRT)
  • recipient — nome do destinatário que receberá no endereço (limite de 255 caracteres)
  • createdAt e updatedAt — datas de criação e última atualização, gerenciadas pela plataforma
  • Todos os campos de texto, exceto recipient, têm limite máximo de 100 caracteres.

    O primeiro endereço cadastrado para um cliente é definido automaticamente como principal. Ao definir um novo endereço como principal, o anterior perde o status automaticamente — apenas um endereço pode ser principal por vez.

    📌 Notas e Considerações

  • A exclusão de um endereço é permanente e irreversível — os dados não podem ser recuperados após a remoção.
  • countryCode deve estar no formato alpha-3 (3 letras). Caso o país não seja encontrado, a API retorna o erro UAPPI_STORE_CUSTOMER_ADDRESS_COUNTRY_NOT_FOUND.
  • stateCode deve ser um código válido pertencente ao país informado. Caso o estado não seja encontrado, a API retorna UAPPI_STORE_CUSTOMER_ADDRESS_STATE_NOT_FOUND.

🏠 Detalhe do Endereço do Cliente

GET /customers/{customerId}/address/{addressId}

Endpoint responsável por retornar o detalhe de um endereço do cliente

📄 Descrição

Endpoint responsável por retornar os detalhes completos de um endereço específico vinculado a um cliente 🏠.

A resposta contempla todas as informações cadastradas para o endereço, permitindo consulta detalhada para fins administrativos, validação ou suporte.

📋 Parâmetros de Query

Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação do usuário

Parâmetros de URL

ParâmetroTipoObrigatórioDescrição
customerIdintegerSimID do cliente
addressIdintegerSimID do endereço

Exemplo de Requisição

1curl --request GET \
2 --url '{{MAIN_URL}}/customers/123/address/456' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": {
4 "id": 456,
5 "main": true,
6 "zipCode": "01310100",
7 "identification": "Casa",
8 "street": "Av. Paulista",
9 "number": "1000",
10 "city": "São Paulo",
11 "complement": "Apto 101",
12 "district": "Bela Vista",
13 "state": "São Paulo",
14 "recipient": "João Silva",
15 "stateCode": "SP",
16 "countryCode": "BRA",
17 "createdAt": "2026-01-10 10:30:00",
18 "updatedAt": "2026-01-15 14:20:00"
19 }
20}

⚠️ Possíveis erros:

Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.

Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.

Código InternoCódigo HTTPDescrição
UAPPI_STORE_CUSTOMER_NOT_FOUND404Cliente não foi encontrado
UAPPI_STORE_INVALID_ADDRESS404Endereço não foi encontrado

🏠 Criação de Endereço do Cliente

POST /customers/{customerId}/address

Endpoint responsável por criar um novo endereço para o cliente

📄 Descrição

Endpoint que permite aos usuários administrativos criar um novo endereço para um cliente 🏠.

Quando se trata do primeiro endereço cadastrado, ele é automaticamente definido como endereço principal, garantindo um padrão inicial para operações como entrega e cobrança.

📋 Parâmetros de Query

Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação do usuário
Content-Typeapplication/jsonTipo do conteúdo

Parâmetros de URL

ParâmetroTipoObrigatórioDescrição
customerIdintegerSimID do cliente

Parâmetros do Corpo

ParâmetroTipoObrigatórioDescrição
zipCodestringSimCEP/Código postal (máximo 100 caracteres)
identificationstringSimIdentificação do endereço (máximo 100 caracteres)
countryCodestringSimCódigo do país no formato alpha-3 (ex: BRA)
stateCodestringSimCódigo do estado (ex: BR-SP)
statestringSimNome do estado (máximo 100 caracteres)
citystringSimNome da cidade (máximo 100 caracteres)
streetstringSimNome da rua (máximo 100 caracteres)
numberstringSimNúmero (máximo 100 caracteres)
complementstringSimComplemento (máximo 100 caracteres) - Enviar string vazia se não houver
districtstringSimBairro (máximo 100 caracteres)
recipientstringSimNome do destinatário (máximo 255 caracteres)

Exemplo de Requisição

1curl --request POST \
2 --url '{{MAIN_URL}}/customers/123/address' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \
4 --header 'Content-Type: application/json' \
5 --data '{
6 "zipCode": "01310100",
7 "identification": "Casa",
8 "countryCode": "BRA",
9 "stateCode": "SP",
10 "state": "São Paulo",
11 "city": "São Paulo",
12 "street": "Av. Paulista",
13 "number": "1000",
14 "complement": "Apto 101",
15 "district": "Bela Vista",
16 "recipient": "João Silva"
17 }'

✅ Resposta de Sucesso

HTTP Status: 201 Created

1{
2 "status": true,
3 "data": {
4 "id": 456,
5 "main": false,
6 "zipCode": "01310100",
7 "identification": "Casa",
8 "street": "Av. Paulista",
9 "number": "1000",
10 "city": "São Paulo",
11 "complement": "Apto 101",
12 "district": "Bela Vista",
13 "state": "São Paulo",
14 "recipient": "João Silva",
15 "stateCode": "SP",
16 "countryCode": "BRA",
17 "createdAt": "2026-01-01 10:30:00",
18 "updatedAt": "2026-01-01 10:30:00"
19 }
20}

⚠️ Possíveis erros:

Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.

Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.

Código InternoCódigo HTTPDescrição
UAPPI_STORE_CUSTOMER_NOT_FOUND404Cliente não foi encontrado
UAPPI_STORE_CUSTOMER_ADDRESS_COUNTRY_NOT_FOUND404O país solicitado não foi encontrado
UAPPI_STORE_CUSTOMER_ADDRESS_STATE_NOT_FOUND404O estado solicitado não foi encontrado

🏠 Atualização de Endereço do Cliente

PUT /customers/{customerId}/address/{addressId}

Endpoint responsável por atualizar um endereço do cliente

📄 Descrição

Endpoint que permite aos usuários administrativos atualizar um endereço existente de um cliente 🏠.

A operação possibilita a alteração das informações previamente cadastradas, garantindo que os dados de envio e cobrança permaneçam atualizados no sistema.

📋 Parâmetros de Query

Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação do usuário
Content-Typeapplication/jsonTipo do conteúdo

Parâmetros de URL

ParâmetroTipoObrigatórioDescrição
customerIdintegerSimID do cliente
addressIdintegerSimID do endereço

Parâmetros do Corpo

ParâmetroTipoObrigatórioDescrição
zipCodestringSimCEP/Código postal (máximo 100 caracteres)
identificationstringSimIdentificação do endereço (máximo 100 caracteres)
countryCodestringSimCódigo do país no formato alpha-3 (ex: BRA)
stateCodestringSimCódigo do estado (ex: BR-SP)
statestringSimNome do estado (máximo 100 caracteres)
citystringSimNome da cidade (máximo 100 caracteres)
streetstringSimNome da rua (máximo 100 caracteres)
numberstringSimNúmero (máximo 100 caracteres)
complementstringSimComplemento (máximo 100 caracteres) - Enviar string vazia se não houver
districtstringSimBairro (máximo 100 caracteres)
recipientstringSimNome do destinatário (máximo 255 caracteres)

Exemplo de Requisição

1curl --request PUT \
2 --url '{{MAIN_URL}}/customers/123/address/456' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \
4 --header 'Content-Type: application/json' \
5 --data '{
6 "zipCode": "01310100",
7 "identification": "Trabalho",
8 "countryCode": "BRA",
9 "stateCode": "SP",
10 "state": "São Paulo",
11 "city": "São Paulo",
12 "street": "Av. Paulista",
13 "number": "2000",
14 "complement": "Sala 501",
15 "district": "Bela Vista",
16 "recipient": "João Silva"
17 }'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": {
4 "id": 456,
5 "main": false,
6 "zipCode": "01310100",
7 "identification": "Trabalho",
8 "street": "Av. Paulista",
9 "number": "2000",
10 "city": "São Paulo",
11 "complement": "Sala 501",
12 "district": "Bela Vista",
13 "state": "São Paulo",
14 "recipient": "João Silva",
15 "stateCode": "SP",
16 "countryCode": "BRA",
17 "createdAt": "2026-01-10 10:30:00",
18 "updatedAt": "2026-01-15 14:20:00"
19 }
20}

⚠️ Possíveis erros:

Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.

Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.

Código InternoCódigo HTTPDescrição
UAPPI_STORE_CUSTOMER_NOT_FOUND404Cliente não foi encontrado
UAPPI_STORE_INVALID_ADDRESS404Endereço não foi encontrado
UAPPI_STORE_CUSTOMER_ADDRESS_COUNTRY_NOT_FOUND404O país solicitado não foi encontrado
UAPPI_STORE_CUSTOMER_ADDRESS_STATE_NOT_FOUND404O estado solicitado não foi encontrado

🗑️ Remoção de Endereço do Cliente

DELETE /customers/{customerId}/address/{addressId}

Endpoint responsável por remover um endereço do cliente

📄 Descrição

Endpoint que permite aos usuários administrativos remover um endereço de um cliente 🗑️.

A exclusão é definitiva e permanente, não sendo possível recuperar o endereço após a remoção.

Essa operação deve ser realizada com atenção, pois impacta diretamente dados utilizados em processos como entrega e cobrança.

Ao remover um endereço:

  • Remoção definitiva: O endereço é removido permanentemente do banco de dados
  • Endereço principal: Se o endereço removido for o principal, outro endereço será automaticamente definido como principal

📋 Parâmetros de Query

Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {usertoken}Token de autenticação do usuário

Parâmetros de URL

ParâmetroTipoObrigatórioDescrição
customerIdintegerSimID do cliente
addressIdintegerSimID do endereço

Exemplo de Requisição

1curl --request DELETE \
2 --url '{{MAIN_URL}}/customers/123/address/456' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": true
4}

⚠️ Possíveis erros:

Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.

Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.

Código InternoCódigo HTTPDescrição
UAPPI_STORE_CUSTOMER_NOT_FOUND404Cliente não foi encontrado
UAPPI_STORE_INVALID_ADDRESS404Endereço não foi encontrado

📍 Atualização do Endereço Principal

PUT /customers/{customerId}/address/main/{addressId}

Endpoint responsável por definir o endereço principal do cliente

📄 Descrição

Endpoint que permite aos usuários administrativos definir qual endereço será o endereço principal de um cliente 🏠.

O endereço principal é utilizado como padrão em operações de envio e cobrança, impactando diretamente o fluxo de pedidos.

Ao definir um novo endereço como principal, as seguintes regras são aplicadas:

  • Remoção do anterior: o endereço que era principal terá o flag main removido
  • Novo principal: o endereço informado passa a assumir o flag main: true

Essa lógica garante que apenas um endereço permaneça como principal por vez, mantendo a consistência dos dados.

📋 Parâmetros de Query

Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação do usuário

Parâmetros de URL

ParâmetroTipoObrigatórioDescrição
customerIdintegerSimID do cliente
addressIdintegerSimID do endereço que será definido como principal

Exemplo de Requisição

1curl --request PUT \
2 --url '{{MAIN_URL}}/customers/123/address/main/456' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": true
4}

⚠️ Possíveis erros:

Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.

Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.

Código InternoCódigo HTTPDescrição
UAPPI_STORE_CUSTOMER_NOT_FOUND404Cliente não foi encontrado
UAPPI_STORE_INVALID_ADDRESS404Endereço não foi encontrado

📄 Exemplo de Arquivo para Importação de Endereços

GET /customers/address/import/example

Endpoint responsável por retornar o arquivo de exemplo para importação de endereços

📄 Descrição

Endpoint responsável por retornar um arquivo CSV de exemplo para importação de endereços 📄.

O arquivo contém o cabeçalho com todas as colunas obrigatórias, servindo como referência para o correto preenchimento dos dados.

Esse modelo pode ser utilizado como base para preparar e validar o arquivo de importação, reduzindo erros no processamento.

📋 Parâmetros de Query

Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação do usuário

Exemplo de Requisição

1curl --request GET \
2 --url '{{MAIN_URL}}/customers/address/import/example' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \
4 --output customer-address-example.csv

✅ Resposta de Sucesso

HTTP Status: 200 OK

Content-Type: application/octet-stream

Content-Disposition: attachment; filename="customer-address-example.csv"

O arquivo retornado contém o seguinte cabeçalho:

1Email,Identification,Zip code,Street,Number,District,City,State code,Country code,Complement,Recipient

Descrição das Colunas

ColunaTipoObrigatórioDescrição
EmailstringSimE-mail do cliente cadastrado (usado para vincular o endereço)
IdentificationstringSimIdentificação do endereço (ex: Casa, Trabalho)
Zip codestringSimCEP/Código postal
StreetstringSimNome da rua
NumberstringSimNúmero
DistrictstringSimBairro
CitystringSimNome da cidade
State codestringSimCódigo do estado (ex: SP, RJ, MG)
Country codestringSimCódigo do país no formato alpha-3 (ex: BRA)
ComplementstringNãoComplemento do endereço
RecipientstringSimNome do destinatário

Exemplo de Arquivo Preenchido

1Email,Identification,Zip code,Street,Number,District,City,State code,Country code,Complement,Recipient
2cliente@email.com,Casa,01310100,Av. Paulista,1000,Bela Vista,São Paulo,SP,BRA,Apto 101,João Silva
3cliente2@email.com,Trabalho,22041080,Av. Atlântica,500,Copacabana,Rio de Janeiro,RJ,BRA,,Maria Santos

📂 Importação de Endereços de Clientes

POST /customers/address/import

Endpoint responsável por importar endereços de clientes através de arquivo CSV

📄 Descrição

Endpoint que permite aos usuários administrativos importar endereços de clientes em massa por meio de um arquivo CSV 📂.

O arquivo deve seguir exatamente o modelo disponibilizado no endpoint de exemplo, garantindo que os dados estejam no formato correto para processamento.

O limite máximo permitido é de 5.000 linhas por arquivo, assegurando controle e estabilidade na importação.

📋 Parâmetros de Query

Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação do usuário
Content-Typemultipart/form-dataTipo do conteúdo

Parâmetros do Corpo (multipart/form-data)

ParâmetroTipoObrigatórioDescrição
filefileSimArquivo CSV com os endereços (máximo 4MB, mimetype: text/csv)
salesChannelIdintegerSimID do canal de vendas

Estrutura do Arquivo CSV

O arquivo CSV deve conter as seguintes colunas:

ColunaDescrição
EmailE-mail do cliente (identificador para vincular o endereço)
IdentificationIdentificação do endereço (ex: Casa, Trabalho)
Zip codeCEP/Código postal
StreetNome da rua
NumberNúmero
DistrictBairro
CityNome da cidade
State codeCódigo do estado (ex: SP)
Country codeCódigo do país (formato alpha-3, ex: BRA)
ComplementComplemento
RecipientNome do destinatário

Exemplo de Requisição

1curl --request POST \
2 --url '{{MAIN_URL}}/customers/address/import' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \
4 --header 'Content-Type: multipart/form-data' \
5 --form 'file=@customer-addresses.csv' \
6 --form 'salesChannelId=1'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": [
4 {
5 "id": 456,
6 "externalId": "cliente@email.com",
7 "error": null,
8 "identification": "Casa",
9 "zipCode": "01310100",
10 "street": "Av. Paulista",
11 "number": "1000",
12 "district": "Bela Vista",
13 "city": "São Paulo",
14 "stateCode": "SP",
15 "countryCode": "BRA",
16 "complement": "Apto 101",
17 "recipient": "João Silva"
18 },
19 {
20 "id": null,
21 "externalId": "cliente2@email.com",
22 "error": "UAPPI_STORE_CUSTOMER_NOT_FOUND",
23 "identification": "Trabalho",
24 "zipCode": "01310200",
25 "street": "Av. Brasil",
26 "number": "500",
27 "district": "Centro",
28 "city": "São Paulo",
29 "stateCode": "SP",
30 "countryCode": "BRA",
31 "complement": "",
32 "recipient": "Maria Santos"
33 }
34 ]
35}

Estrutura da Resposta

CampoTipoDescrição
idinteger/nullID do endereço criado (null se houver erro)
externalIdstringE-mail do cliente usado como identificador
errorstring/nullCódigo do erro (null se sucesso)
identificationstringIdentificação do endereço
zipCodestringCEP/Código postal
streetstringNome da rua
numberstringNúmero
districtstringBairro
citystringNome da cidade
stateCodestringCódigo do estado
countryCodestringCódigo do país
complementstringComplemento
recipientstringNome do destinatário

⚠️ Possíveis erros:

Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.

Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.

Código InternoCódigo HTTPDescrição
UAPPI_CORE_IMPORT_FILE_HEADER_REQUIRED400O arquivo não possui cabeçalho
UAPPI_CORE_IMPORT_FILE_REQUIRED_FIELDS400O arquivo não possui os campos obrigatórios
UAPPI_CORE_IMPORT_FILE_LINE_LIMIT400O arquivo excede o limite de 5000 linhas

Possíveis Erros por Linha

Código do ErroDescrição
UAPPI_STORE_CUSTOMER_NOT_FOUNDCliente não encontrado com o e-mail informado

Uappi é a melhor opção para o crescimento da sua loja!

;