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
/api/v3/customer
Obtém dados completos do perfil do cliente autenticado
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {token} | Token de autenticação do cliente |
Parâmetros de Query String
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
fields | array | Não | Campos específicos para retornar |
Campos Disponíveis para Seleção
| Campo | Descrição |
|---|---|
addresses | Lista de endereços |
documents | Documentos cadastrados |
flags | Preferências de notificação |
totalOrderQuantity | Quantidade de pedidos |
cancelledOrderQuantity | Quantidade de pedidos cancelados |
totalOrderValue | Saldo da carteira |
lastOrder | Dados do último pedido |
pointSystemAmount | Saldo 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.9042 },43 "observations": null44 },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": true97 }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": 042 },43 "observations": null44 },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": null76}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ódigo | Descrição |
|---|---|
| 200 | Dados do perfil retornados com sucesso |
| 401 | Token de autenticação inválido |
| 403 | Cliente inativo ou sem permissão |
| 404 | Cliente não encontrado |
| 422 | Parâmetros de seleção inválidos |
| 500 | Erro interno do servidor |
Atualizar Senha do Cliente
/customer/password
Atualiza a senha do cliente autenticado
Autenticação
Requerida: Sim (CustomerAuth)
Parâmetros do Body
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| currentPassword | string | Sim | Senha atual do cliente |
| password | string | Sim | Nova senha |
| confirmPassword | string | Sim | Confirmação da nova senha |
Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": true4}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
/api/v3/customer
Atualiza dados do perfil do cliente autenticado
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {token} | Token de autenticação do cliente |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Sim | Email válido (máximo 255 caracteres) |
nameCorporateName | string | Sim | Nome ou razão social (máximo 255 caracteres) |
isCorporate | boolean | Sim | Se é pessoa jurídica |
gender | string | Sim | Gênero (male, female, undefined) |
phone | string | Sim | Telefone no formato internacional (+5511987654321) |
tradeName | string | Não | Sobrenome ou nome fantasia (máximo 255 caracteres) |
Campos Protegidos (Não Podem Ser Alterados)
id- ID do clientesalesChannelId- Canal de vendanationality- Nacionalidadebirthdate- Data de nascimentoorigin- Origem do cadastroactive- Status de ativaçãocreatedAt- Data de criação- Padrão: Formato internacional com código do país
- Regex:
^\+\d{7,15}$ - Exemplos válidos:
Formato do Telefone
+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": null28}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ódigo | Descrição |
|---|---|
| 200 | Perfil atualizado com sucesso |
| 401 | Token de autenticação inválido |
| 403 | Cliente inativo ou sem permissão |
| 422 | Dados de validação inválidos |
| 500 | Erro interno do servidor |