API
Clientes
Gerenciar clientes Pessoa Física (PF) e Jurídica (PJ) via API.
Clientes
Gerencie o cadastro de clientes da sua loja ou shopping automotivo. Suporta Pessoa Física (PF) e Pessoa Jurídica (PJ) com campos específicos para cada tipo.
GET /api/v1/clients
Lista todos os clientes do time.
Query Parameters
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
page | number | 1 | Página atual |
limit | number | 20 | Itens por página (máx: 100) |
type | string | - | Filtrar por tipo: PF, PJ |
status | string | - | Filtrar por status: active, inactive |
segment | string | - | Filtrar por segmento: vip, premium, regular, occasional |
store_id | string | - | Filtrar por loja |
search | string | - | Buscar por nome, email, CPF ou CNPJ |
sort | string | -created_at | Ordenação (prefixo - para descendente) |
Request
curl -X GET "https://dashboard.ecosysauto.ai/api/v1/clients?type=PF&segment=premium" \
-H "Authorization: Bearer ea_live_sua_chave_aqui"Response
{
"success": true,
"data": [
{
"id": "uuid-do-cliente",
"type": "PF",
"name": "João da Silva",
"display_name": null,
"email": "joao.silva@email.com",
"phone": "+55 11 99999-8888",
"mobile_phone": null,
"whatsapp": "+55 11 99999-8888",
"cpf": "123.456.789-00",
"rg": null,
"birth_date": "1985-06-15",
"gender": "masculino",
"marital_status": null,
"nationality": null,
"segment": "premium",
"source": null,
"status": "active",
"store_id": "uuid-da-loja",
"created_at": "2026-01-15T10:30:00Z"
},
{
"id": "uuid-da-empresa",
"type": "PJ",
"name": "AutoPeças ABC Ltda",
"display_name": "AutoPeças ABC",
"email": "contato@autopecasabc.com.br",
"phone": "+55 11 3333-4444",
"mobile_phone": null,
"whatsapp": null,
"cnpj": "12.345.678/0001-90",
"legal_name": "AutoPeças ABC Comércio e Serviços Ltda",
"trade_name": "AutoPeças ABC",
"state_registration": null,
"segment": "vip",
"status": "active",
"store_id": "uuid-da-loja",
"created_at": "2026-01-10T09:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"pages": 8
}
}POST /api/v1/clients
Cria um novo cliente.
Request Body — Pessoa Física (PF)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
type | string | Sim | Tipo: PF |
name | string | Sim | Nome completo |
display_name | string | Não | Apelido ou nome de exibição |
email | string | Não | |
phone | string | Não | Telefone fixo |
mobile_phone | string | Não | Celular |
whatsapp | string | Não | |
cpf | string | Não | CPF |
rg | string | Não | RG |
birth_date | string | Não | Data de nascimento (YYYY-MM-DD) |
gender | string | Não | Gênero: masculino, feminino, outro |
marital_status | string | Não | Estado civil |
nationality | string | Não | Nacionalidade |
segment | string | Não | Segmento: vip, premium, regular, occasional |
source | string | Não | Origem do cliente |
store_id | string | Não | ID da loja |
address | object | Não | Endereço completo (ver abaixo) |
notes | string | Não | Observações |
tags | array | Não | Tags/etiquetas |
credit_limit | number | Não | Limite de crédito |
Request Body — Pessoa Jurídica (PJ)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
type | string | Sim | Tipo: PJ |
name | string | Sim | Razão social ou nome fantasia |
display_name | string | Não | Nome de exibição |
legal_name | string | Não | Razão social |
trade_name | string | Não | Nome fantasia |
email | string | Não | |
phone | string | Não | Telefone |
mobile_phone | string | Não | Celular |
whatsapp | string | Não | |
cnpj | string | Não | CNPJ |
state_registration | string | Não | Inscrição estadual |
municipal_registration | string | Não | Inscrição municipal |
segment | string | Não | Segmento: vip, premium, regular, occasional |
source | string | Não | Origem do cliente |
store_id | string | Não | ID da loja |
address | object | Não | Endereço completo (ver abaixo) |
notes | string | Não | Observações |
tags | array | Não | Tags/etiquetas |
credit_limit | number | Não | Limite de crédito |
Objeto Address
{
"street": "Av. Paulista",
"number": "1000",
"complement": "Sala 101",
"neighborhood": "Bela Vista",
"city": "São Paulo",
"state": "SP",
"zip_code": "01310-100",
"country": "Brasil"
}Request — Pessoa Física
curl -X POST https://dashboard.ecosysauto.ai/api/v1/clients \
-H "Authorization: Bearer ea_live_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"type": "PF",
"name": "João da Silva",
"email": "joao.silva@email.com",
"phone": "+55 11 99999-8888",
"cpf": "123.456.789-00",
"birth_date": "1985-06-15",
"segment": "premium",
"address": {
"street": "Rua das Flores",
"number": "123",
"neighborhood": "Centro",
"city": "São Paulo",
"state": "SP",
"zip_code": "01234-567"
}
}'Request — Pessoa Jurídica
curl -X POST https://dashboard.ecosysauto.ai/api/v1/clients \
-H "Authorization: Bearer ea_live_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"type": "PJ",
"name": "AutoPeças ABC Ltda",
"legal_name": "AutoPeças ABC Comércio e Serviços Ltda",
"trade_name": "AutoPeças ABC",
"email": "contato@autopecasabc.com.br",
"phone": "+55 11 3333-4444",
"cnpj": "12.345.678/0001-90",
"segment": "vip"
}'Response (201 Created)
{
"success": true,
"data": {
"id": "uuid-do-cliente",
"type": "PF",
"name": "João da Silva",
"display_name": null,
"email": "joao.silva@email.com",
"phone": "+55 11 99999-8888",
"mobile_phone": null,
"whatsapp": null,
"cpf": "123.456.789-00",
"rg": null,
"birth_date": "1985-06-15",
"gender": null,
"marital_status": null,
"nationality": null,
"segment": "premium",
"source": null,
"status": "active",
"address": {
"street": "Rua das Flores",
"number": "123",
"complement": null,
"neighborhood": "Centro",
"city": "São Paulo",
"state": "SP",
"zip_code": "01234-567",
"country": null
},
"notes": null,
"tags": [],
"credit_limit": null,
"store_id": null,
"created_at": "2026-02-04T10:30:00Z",
"updated_at": "2026-02-04T10:30:00Z"
}
}GET /api/v1/clients/:id
Busca um cliente específico.
Request
curl -X GET https://dashboard.ecosysauto.ai/api/v1/clients/uuid-do-cliente \
-H "Authorization: Bearer ea_live_sua_chave_aqui"Response
{
"success": true,
"data": {
"id": "uuid-do-cliente",
"type": "PF",
"name": "João da Silva",
"display_name": null,
"email": "joao.silva@email.com",
"phone": "+55 11 99999-8888",
"mobile_phone": null,
"whatsapp": "+55 11 99999-8888",
"cpf": "123.456.789-00",
"rg": "12.345.678-9",
"birth_date": "1985-06-15",
"gender": "masculino",
"marital_status": "casado",
"nationality": "brasileiro",
"segment": "premium",
"source": "indicacao",
"status": "active",
"address": {
"street": "Rua das Flores",
"number": "123",
"complement": null,
"neighborhood": "Centro",
"city": "São Paulo",
"state": "SP",
"zip_code": "01234-567",
"country": "Brasil"
},
"notes": "Cliente indicado por Carlos",
"tags": ["indicação", "prioridade"],
"credit_limit": null,
"store_id": "uuid-da-loja",
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-02-04T14:20:00Z"
}
}PUT /api/v1/clients/:id
Atualiza um cliente existente. Todos os campos são opcionais — envie apenas o que deseja alterar.
Campos Atualizáveis
Todos os campos listados no POST são atualizáveis, incluindo o objeto address parcialmente.
Request
curl -X PUT https://dashboard.ecosysauto.ai/api/v1/clients/uuid-do-cliente \
-H "Authorization: Bearer ea_live_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"phone": "+55 11 88888-7777",
"segment": "vip",
"notes": "Cliente VIP — atendimento prioritário"
}'Response
{
"success": true,
"data": {
"id": "uuid-do-cliente",
"phone": "+55 11 88888-7777",
"segment": "vip",
"notes": "Cliente VIP — atendimento prioritário",
"updated_at": "2026-02-04T15:00:00Z"
}
}DELETE /api/v1/clients/:id
Desativa um cliente (soft delete — define is_active como false).
Esta operação não exclui o cliente permanentemente. Para reativá-lo, use PUT /api/v1/clients/:id com qualquer campo válido (o cliente continuará existindo no sistema).
Request
curl -X DELETE https://dashboard.ecosysauto.ai/api/v1/clients/uuid-do-cliente \
-H "Authorization: Bearer ea_live_sua_chave_aqui"Response
{
"success": true,
"data": {
"id": "uuid-do-cliente",
"status": "inactive",
"deactivated_at": "2026-02-04T15:30:00Z"
}
}Segmentos de Cliente
| Segmento | Descrição |
|---|---|
vip | Clientes VIP — atendimento diferenciado |
premium | Clientes premium — prioridade alta |
regular | Clientes regulares |
occasional | Clientes ocasionais |
Erros Comuns
| Código | Erro | Solução |
|---|---|---|
400 | Campo 'name' é obrigatório | Inclua o campo name |
400 | Campo 'type' é obrigatório. Use: PF ou PJ | Use PF ou PJ |
400 | Nenhum campo para atualizar | Envie ao menos um campo no body do PUT |
404 | Cliente não encontrado | Verifique o ID do cliente |
422 | CPF já cadastrado | CPF já existe no time |
422 | CNPJ já cadastrado | CNPJ já existe no time |