👤 Cliente do Grupo de Pedido
📋 Visão Geral
O módulo de Cliente do Grupo de Pedido permite atualizar os dados cadastrais do cliente registrados no momento da compra, sem alterar o cadastro global do cliente na plataforma.
Útil para corrigir erros de digitação, complementar campos ausentes ou ajustar informações preenchidas incorretamente durante o checkout — como nome, e-mail, telefone, documento ou data de nascimento.
🔄 Entidades Envolvidas
Os dados do cliente do pedido (OrderCustomer) representam um snapshot dos dados cadastrais no momento da compra. Esse registro é independente do cadastro global do cliente — alterações aqui afetam apenas o pedido em questão.
Cada atualização gera automaticamente uma entrada no histórico do grupo de pedido (OrderGroupHistory), registrando os valores anteriores e os novos para fins de rastreabilidade e auditoria.
Os dados armazenados cobrem identificação (nome, gênero, data de nascimento), contato (e-mail e telefone), documentos (CPF/CNPJ e RG/Inscrição Estadual) e tipo de pessoa (física ou jurídica via customerIsCorporate).
📌 Notas e Considerações
- As alterações são restritas ao pedido — o cadastro global do cliente na plataforma não é modificado.
- A atualização é parcial — apenas os campos informados na requisição são sobrescritos; os demais permanecem inalterados.
- O campo
customerTradeNameé obrigatório para pessoa jurídica (customerIsCorporate: true) e proibido para pessoa física. - Os dados atuais do cliente podem ser consultados no endpoint de detalhe do grupo (
GET /orders/groups/{orderGroupId}) incluindocustomerna seleção de campos.
👤 Atualização do Cliente do Grupo de Pedido
/orders/groups/{orderGroupId}/customer
Atualiza os dados do cliente vinculado a um grupo de pedido
📋 Descrição
Endpoint responsável por atualizar os dados cadastrais do cliente vinculados a um grupo de pedido, permitindo corrigir ou complementar as informações registradas no momento da compra.
As alterações são restritas ao pedido — o cadastro global do cliente na plataforma não é afetado. A atualização é parcial: apenas os campos informados na requisição são sobrescritos; os demais permanecem com seus valores anteriores.
A cada atualização, o sistema registra automaticamente um histórico no grupo de pedido com os valores anteriores e os novos, garantindo rastreabilidade completa das alterações.
Para consultar os dados atuais do cliente, utilize o endpoint de detalhe do grupo com fields: ["customer"]:
1curl --request GET \2 --url '{{MAIN_URL}}/orders/groups/3710' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \4 --header 'Content-Type: application/json' \5 --data '{"fields": ["customer"]}'Exemplo de retorno do cliente:
1{2 "customer": {3 "orderGroupId": 3710,4 "customerId": 3533,5 "customerNameCorporateName": "Teste Uappi",6 "customerTradeName": "",7 "customerEmail": "teste@uappi.com.br",8 "customerDocument": "33082748090",9 "customerDocument2": "",10 "customerPhone": "+5599999999999",11 "customerIsCorporate": false,12 "customerGender": "undefined",13 "customerBirthdate": "2000-01-01"14 }15}🔐 Permissão
UserAuth— autenticação do usuário administrativoORDER_WRITE— escopo de permissão para operações de escrita em pedidos
📝 Parâmetros
🏷️ Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do usuário |
Content-Type | application/json | Tipo do conteúdo |
🔗 Parâmetros de URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
orderGroupId | integer | ✅ Sim | ID do grupo de pedido |
📦 Parâmetros do Corpo
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
customerPhone | string | ✅ Sim | Telefone do cliente |
customerNameCorporateName | string | ❌ Não | Nome completo (pessoa física) ou razão social (pessoa jurídica) |
customerTradeName | string | ❌ Não | Nome fantasia — obrigatório para PJ quando customerIsCorporate: true; proibido para PF |
customerEmail | string | ❌ Não | E-mail do cliente |
customerDocument | string | ❌ Não | CPF (pessoa física) ou CNPJ (pessoa jurídica) |
customerDocument2 | string | ❌ Não | RG (pessoa física) ou Inscrição Estadual (pessoa jurídica) |
customerIsCorporate | boolean | ❌ Não | true para pessoa jurídica, false para pessoa física |
customerGender | string | ❌ Não | Gênero — male, female ou undefined |
customerBirthdate | string | ❌ Não | Data de nascimento — formato YYYY-MM-DD |
1{2 "customerNameCorporateName": "João Silva",3 "customerEmail": "joao.silva@email.com",4 "customerPhone": "+5511999999999",5 "customerDocument": "123.456.789-00",6 "customerDocument2": "12.345.678-9",7 "customerIsCorporate": false,8 "customerGender": "male",9 "customerBirthdate": "1990-05-20"10}💡 Exemplo de Requisição
1curl --request PUT \2 --url '{{MAIN_URL}}/orders/groups/3710/customer' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \4 --header 'Content-Type: application/json' \5 --data '{6 "customerNameCorporateName": "João Silva",7 "customerEmail": "joao.silva@email.com",8 "customerPhone": "+5511999999999",9 "customerIsCorporate": false,10 "customerGender": "male"11 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": {4 "orderGroupId": 3710,5 "customerId": 3533,6 "customerNameCorporateName": "João Silva",7 "customerTradeName": null,8 "customerEmail": "joao.silva@email.com",9 "customerDocument": "123.456.789-00",10 "customerDocument2": "12.345.678-9",11 "customerPhone": "+5511999999999",12 "customerIsCorporate": false,13 "customerGender": "male",14 "customerBirthdate": "1990-05-20"15 }16}Campos da Resposta
| Campo | Tipo | Nullable | Descrição |
|---|---|---|---|
orderGroupId | integer | Não | ID do grupo de pedido |
customerId | integer | Sim | ID do cliente na plataforma; null quando não há cadastro vinculado |
customerNameCorporateName | string | Não | Nome completo (pessoa física) ou razão social (pessoa jurídica) |
customerTradeName | string | Sim | Nome fantasia; presente apenas para pessoa jurídica (customerIsCorporate: true) |
customerEmail | string | Não | E-mail do cliente |
customerDocument | string | Não | CPF (pessoa física) ou CNPJ (pessoa jurídica) |
customerDocument2 | string | Não | RG (pessoa física) ou Inscrição Estadual (pessoa jurídica) |
customerPhone | string | Não | Telefone do cliente |
customerIsCorporate | boolean | Não | true para pessoa jurídica; false para pessoa física |
customerGender | string | Não | Gênero do cliente — male, female ou undefined |
customerBirthdate | string | Não | Data de nascimento no formato YYYY-MM-DD |
⚠️ Possíveis Erros
> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.
| Código do Erro | HTTP | Descrição |
|---|---|---|
UAPPI_STORE_ORDER_GROUP_NOT_FOUND | 404 | Grupo de pedido não encontrado com o ID informado |
UAPPI_STORE_CUSTOMER_REQUIRED_TRADE_NAME | 422 | Nome fantasia obrigatório para pessoa jurídica |
UAPPI_STORE_CUSTOMER_MISSING_TRADE_NAME | 422 | Nome fantasia não permitido para pessoa física |
UAPPI_STORE_CUSTOMER_INVALID_GENDER | 422 | Gênero inválido — use male, female ou undefined |
UAPPI_STORE_CUSTOMER_INVALID_BIRTHDATE | 422 | Data de nascimento em formato inválido — use YYYY-MM-DD |