Skip to content

Consultar Perfil do Cliente

Retorna os dados completos do perfil do cliente autenticado, incluindo informações pessoais, endereços, documentos, dados financeiros, preferências de notificação e histórico de pedidos. Este endpoint é fundamental para exibir e gerenciar informações da conta do cliente.

Endpoint

GET /api/v3/customer

Obtém dados completos do perfil do cliente autenticado

Parâmetros

Headers Obrigatórios

HeaderValorDescrição
Content-Typeapplication/jsonTipo de conteúdo
AuthorizationBearer {token}Token de autenticação do cliente

Parâmetros de Query String

ParâmetroTipoObrigatórioDescrição
fieldsarrayNãoCampos específicos para retornar

Campos Disponíveis para Seleção

CampoDescrição
addressesLista de endereços
documentsDocumentos cadastrados
flagsPreferências de notificação
totalOrderQuantityQuantidade de pedidos
cancelledOrderQuantityQuantidade de pedidos cancelados
totalOrderValueSaldo da carteira
lastOrderDados do último pedido
pointSystemAmountSaldo de pontos

Exemplo de Requisição

1curl --request GET \
2 --url 'https://sua-loja.com.br/api/v3/customer' \
3 --header 'Content-Type: application/json' \
4 --header 'Authorization: Bearer seu_token_aqui'

Exemplo com Campos Específicos

1curl --request GET \
2 --url 'https://sua-loja.com.br/api/v3/customer=addresses' \
3 --header 'Content-Type: application/json' \
4 --header 'Authorization: Bearer seu_token_aqui'
5 --data '{
6 "fields": [
7 "addresses",
8 "documents",
9 "flags",
10 "totalOrderQuantity",
11 "cancelledOrderQuantity",
12 "pointSystemAmount"
13 ]
14 }'

Respostas

Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "id": 123,
3 "salesChannelId": 1,
4 "tradePolicyId": 1,
5 "email": "joao.silva@email.com",
6 "dealerGroupId": null,
7 "nameCorporateName": "João Silva",
8 "tradeName": "Silva",
9 "isCorporate": false,
10 "gender": "male",
11 "nationality": "BR",
12 "birthdate": "1990-01-01",
13 "phone": "11999999999",
14 "walletAmount": 150.00,
15 "pointSystemAmount": 500,
16 "orderQuantity": 5,
17 "cancelledOrderQuantity": 0,
18 "orderValue": 2500.00,
19 "lastOrder": {
20 "id": 567,
21 "cartId": "CART-2024-567",
22 "tradePolicyId": 1,
23 "userId": null,
24 "userEmail": null,
25 "userName": null,
26 "code": "ORD-2024-567",
27 "salesChannelDomain": "loja.com.br",
28 "currency": "BRL",
29 "createdAt":00",
30 "issuedAt":00",
31 "masked": false,
32 "payments": [],
33 "customer": null,
34 "addresses": null,
35 "values": {
36 "orderId": 567,
37 "subtotalValue": 299.90,
38 "additionValue": 0,
39 "shippingValue": 0,
40 "discountValue": 0,
41 "totalValue": 299.90
42 },
43 "observations": null
44 },
45 "origin": "web",
46 "createdAt":00",
47 "active": true,
48 "deleted": false,
49 "masked": false,
50 "addresses": [
51 {
52 "id": 1,
53 "main": true,
54 "zipCode": "01310-100",
55 "identification": "Casa",
56 "street": "Avenida Paulista",
57 "number": "1578",
58 "city": "São Paulo",
59 "complement": "Apto 101",
60 "district": "Bela Vista",
61 "state": "São Paulo",
62 "recipient": "João Silva",
63 "stateCode": "SP",
64 "countryCode": "BR",
65 "createdAt":00",
66 "updatedAt":00"
67 },
68 {
69 "id": 2,
70 "main": false,
71 "zipCode": "04567-890",
72 "identification": "Trabalho",
73 "street": "Rua das Flores",
74 "number": "123",
75 "city": "São Paulo",
76 "complement": "Sala 45",
77 "district": "Vila Madalena",
78 "state": "São Paulo",
79 "recipient": "João Silva",
80 "stateCode": "SP",
81 "countryCode": "BR",
82 "createdAt":00",
83 "updatedAt":00"
84 }
85 ],
86 "documents": [
87 {
88 "type": "CPF",
89 "document": "123.456.789-00"
90 }
91 ],
92 "flags": {
93 "sendPromotionalEmail": true,
94 "sendPromotionalSms": false,
95 "sendOrderEmail": true,
96 "sendOrderSms": true
97 }
98}

Resposta com Dados Mascarados

1{
2 "id": 123,
3 "salesChannelId": 1,
4 "tradePolicyId": 1,
5 "email": "j<em></em>*@email.com",
6 "dealerGroupId": null,
7 "nameCorporateName": "João <em></em>*",
8 "tradeName": "<em></em>*",
9 "isCorporate": false,
10 "gender": "male",
11 "nationality": "BR",
12 "birthdate": "1990-01-01",
13 "phone": "119<strong></strong>9999",
14 "walletAmount": 150.00,
15 "pointSystemAmount": 500,
16 "orderQuantity": 5,
17 "cancelledOrderQuantity": 0,
18 "orderValue": 2500.00,
19 "lastOrder": {
20 "id": 567,
21 "cartId": "<em></em>*",
22 "tradePolicyId": 1,
23 "userId": null,
24 "userEmail": null,
25 "userName": null,
26 "code": "ORD-<strong><em>-</strong></em>",
27 "salesChannelDomain": "loja.com.br",
28 "currency": "BRL",
29 "createdAt":00",
30 "issuedAt":00",
31 "masked": true,
32 "payments": [],
33 "customer": null,
34 "addresses": null,
35 "values": {
36 "orderId": 567,
37 "subtotalValue": 0,
38 "additionValue": 0,
39 "shippingValue": 0,
40 "discountValue": 0,
41 "totalValue": 0
42 },
43 "observations": null
44 },
45 "origin": "web",
46 "createdAt":00",
47 "active": true,
48 "deleted": false,
49 "masked": true,
50 "addresses": [
51 {
52 "id": 1,
53 "main": true,
54 "zipCode": "<em></em>*10-100",
55 "identification": "<em></em>*",
56 "street": "Avenida <em></em>*",
57 "number": "<em></em>*",
58 "city": "São Paulo",
59 "complement": "Apto <em></em>*",
60 "district": "Bela <em></em>*",
61 "state": "São Paulo",
62 "recipient": "João <em></em>*",
63 "stateCode": "SP",
64 "countryCode": "BR",
65 "createdAt":00",
66 "updatedAt":00"
67 }
68 ],
69 "documents": [
70 {
71 "type": "CPF",
72 "document": "<strong><em>.</strong></em>.<em></em>*-00"
73 }
74 ],
75 "flags": null
76}

Possíveis Erros

Token de Autenticação Inválido

HTTP Status: 401 Unauthorized

1{
2 "code": 401,
3 "errorCode": "UNAUTHENTICATED",
4 "message": "Token de autenticação inválido ou expirado."
5}

Cliente Inativo

HTTP Status: 403 Forbidden

1{
2 "code": 403,
3 "errorCode": "CUSTOMER_INACTIVE",
4 "message": "Conta do cliente está inativa."
5}

Cliente Não Encontrado

HTTP Status: 404 Not Found

1{
2 "code": 404,
3 "errorCode": "CUSTOMER_NOT_FOUND",
4 "message": "Cliente não encontrado."
5}

Campos Inválidos

HTTP Status: 422 Unprocessable Entity

1{
2 "code": 422,
3 "errorCode": "VALIDATION_ERROR",
4 "message": "The given data was invalid.",
5 "errors": {
6 "fields": [
7 "Campo 'campo_inexistente' não é válido para seleção."
8 ]
9 }
10}

Erro do Servidor

HTTP Status: 500 Internal Server Error

1{
2 "code": 500,
3 "errorCode": "INTERNAL_SERVER_ERROR",
4 "message": "An internal server error occurred."
5}

Códigos de Status

CódigoDescrição
200Dados do perfil retornados com sucesso
401Token de autenticação inválido
403Cliente inativo ou sem permissão
404Cliente não encontrado
422Parâmetros de seleção inválidos
500Erro interno do servidor

Atualizar Senha do Cliente

PUT /customer/password

Atualiza a senha do cliente autenticado

Autenticação

Requerida: Sim (CustomerAuth)

Parâmetros do Body

CampoTipoObrigatórioDescrição
currentPasswordstringSimSenha atual do cliente
passwordstringSimNova senha
confirmPasswordstringSimConfirmação da nova senha

Resposta de Sucesso

HTTP Status: 200 OK

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

Atualizar Perfil do Cliente

Permite atualizar dados básicos do perfil do cliente autenticado, incluindo informações pessoais de contato. Este endpoint mantém proteção contra alteração de campos críticos do sistema e valida unicidade de email apenas quando há modificação.

Endpoint

PUT /api/v3/customer

Atualiza dados do perfil do cliente autenticado

Parâmetros

Headers Obrigatórios

HeaderValorDescrição
Content-Typeapplication/jsonTipo de conteúdo
AuthorizationBearer {token}Token de autenticação do cliente

Parâmetros do Corpo

ParâmetroTipoObrigatórioDescrição
emailstringSimEmail válido (máximo 255 caracteres)
nameCorporateNamestringSimNome ou razão social (máximo 255 caracteres)
isCorporatebooleanSimSe é pessoa jurídica
genderstringSimGênero (male, female, undefined)
phonestringSimTelefone no formato internacional (+5511987654321)
tradeNamestringNãoSobrenome ou nome fantasia (máximo 255 caracteres)

Campos Protegidos (Não Podem Ser Alterados)

  • id - ID do cliente
  • salesChannelId - Canal de venda
  • nationality - Nacionalidade
  • birthdate - Data de nascimento
  • origin - Origem do cadastro
  • active - Status de ativação
  • createdAt - Data de criação
  • Formato do Telefone

  • Padrão: Formato internacional com código do país
  • Regex: ^\+\d{7,15}$
  • Exemplos válidos:
- +5511987654321 (Brasil) - +1234567890 (Internacional)

Exemplo de Requisição

1curl --request PUT \
2 --url 'https://sua-loja.com.br/api/v3/customer' \
3 --header 'Content-Type: application/json' \
4 --header 'Authorization: Bearer seu_token_aqui' \
5 --data '{
6 "email": "joao.silva.novo@email.com",
7 "nameCorporateName": "João Silva Santos",
8 "tradeName": "Santos",
9 "isCorporate": false,
10 "gender": "male",
11 "phone": "+5511987654321"
12 }'

Respostas

Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "id": 123,
3 "salesChannelId": 1,
4 "tradePolicyId": 1,
5 "email": "joao.silva.novo@email.com",
6 "dealerGroupId": null,
7 "nameCorporateName": "João Silva Santos",
8 "tradeName": "Santos",
9 "isCorporate": false,
10 "gender": "male",
11 "nationality": "BR",
12 "birthdate": "1990-01-01",
13 "phone": "+5511987654321",
14 "walletAmount": 150.00,
15 "pointSystemAmount": 500,
16 "orderQuantity": 5,
17 "cancelledOrderQuantity": 0,
18 "orderValue": 2500.00,
19 "lastOrder": null,
20 "origin": "web",
21 "createdAt":00",
22 "active": true,
23 "deleted": false,
24 "masked": false,
25 "addresses": [],
26 "documents": [],
27 "flags": null
28}

Possíveis Erros

Campos Obrigatórios Ausentes

HTTP Status: 422 Unprocessable Entity

1{
2 "message": "The given data was invalid.",
3 "errors": {
4 "email": [
5 "O campo email é obrigatório."
6 ],
7 "nameCorporateName": [
8 "O campo name corporate name é obrigatório."
9 ],
10 "gender": [
11 "O campo gender é obrigatório."
12 ]
13 }
14}

Email Já Cadastrado

HTTP Status: 422 Unprocessable Entity

1{
2 "message": "The given data was invalid.",
3 "errors": {
4 "email": [
5 "Este email já está sendo usado por outro cliente."
6 ]
7 }
8}

Token de Autenticação Inválido

HTTP Status: 401 Unauthorized

1{
2 "code": 401,
3 "errorCode": "UNAUTHENTICATED",
4 "message": "Token de autenticação inválido ou expirado."
5}

Cliente Inativo

HTTP Status: 403 Forbidden

1{
2 "code": 403,
3 "errorCode": "CUSTOMER_INACTIVE",
4 "message": "Conta do cliente está inativa."
5}

Erro do Servidor

HTTP Status: 500 Internal Server Error

1{
2 "code": 500,
3 "errorCode": "INTERNAL_SERVER_ERROR",
4 "message": "An internal server error occurred."
5}

Códigos de Status

CódigoDescrição
200Perfil atualizado com sucesso
401Token de autenticação inválido
403Cliente inativo ou sem permissão
422Dados de validação inválidos
500Erro interno do servidor

Uappi is the most productive way to
build, deploy, and monitor software.

;