Pular para o conteúdo principal

CentralCRM API

Baixar JSON

Postman

CentralCRM API

Collection completa da API CentralCRM. **Base URL:** `{{baseUrl}}` (default `http://localhost:3000/api`) **Autenticação:** execute `Auth — Login` — o `accessToken` é guardado automaticamente (Bearer nas rotas protegidas). **Tenant:** muitas rotas exigem `tenantId` no JWT ou cabeçalho `x-tenant-id: {{tenantId}}`. **Swagger:** `GET {{baseUrl}}/docs` | OpenAPI JSON: `GET {{baseUrl}}/docs-json` **Atualizado:** 2026-06-06 — inclui diretório (sync roles/contacts), operacional, presença, portal e cadastro completo.

Variáveis

ChaveValor
baseUrlhttp://localhost:3000/api
accessToken
tenantIdf1e2d3c4-b5a6-4789-8012-345678901234
companyId64c6dd93-5fe7-4765-8fe1-87ecc2c194e4
parentCompanyId64c6dd93-5fe7-4765-8fe1-87ecc2c194e4
subTenantIdf1e2d3c4-b5a6-4789-8012-345678901234
userId413c0c2c-501d-4bd9-bd8c-bf3f488c7bf7
addressId
documentId
estabelecimentoId
portalTenantId
cnpj00000000000191
cep89010025

Meta & Saúde

GET{{baseUrl}}Root — info da API

GET /api — links para docs e swagger.

GET{{baseUrl}}/healthHealth check

GET /api/health — estado da BD e dependências.

Auth

POST{{baseUrl}}/v1/auth/loginLogin

POST /api/v1/auth/login — BD G_DB_POSTGRESS. Guarda accessToken automaticamente.

Headers

NomeValor
Content-Typeapplication/json

Body

{
"email": "usuario@exemplo.com",
"password": "sua-senha",
"tenantId": "{{tenantId}}"
}
POST{{baseUrl}}/v1/auth/registerRegister

POST /api/v1/auth/register — cria `public."user"` + tabelas relacionais (G_DB_POSTGRESS). Resposta: UserFullResponseDto.

Headers

NomeValor
Content-Typeapplication/json

Body

{
"nome": "Novo Utilizador",
"email": "novo@exemplo.com",
"password": "SenhaForte123"
}
POST{{baseUrl}}/v1/auth/logoutLogout

POST /api/v1/auth/logout — decrementa metadata.sessoesAtivas.

Headers

NomeValor
Content-Typeapplication/json
GET{{baseUrl}}/v1/auth/users/{{userId}}Get user (full)

GET /api/v1/auth/users/:userId — perfil completo (próprio utilizador ou admin).

PATCH{{baseUrl}}/v1/auth/users/{{userId}}Patch user

PATCH /api/v1/auth/users/:userId — atualização parcial.

Headers

NomeValor
Content-Typeapplication/json

Body

{
"displayName": "Nome Atualizado",
"status": "ativo"
}
PATCH{{baseUrl}}/v1/auth/users/{{userId}}/permissionsPatch user permissions

Headers

NomeValor
Content-Typeapplication/json

Body

{
"grant": ["perm-user-edit"],
"revoke": []
}

CRM Admin — Utilizadores

GET{{baseUrl}}/v1/crm-admin/usersListar utilizadores (admin)

GET /api/v1/crm-admin/users — lista public."user" (apenas admin). BD G_DB_POSTGRESS.

Empresas (global)

POST{{baseUrl}}/v1/companiesCriar empresa

Headers

NomeValor
Content-Typeapplication/json
x-tenant-id{{tenantId}}

Body

{
"razaoSocial": "ACME Serviços LTDA",
"tenantId": "{{tenantId}}"
}
GET{{baseUrl}}/v1/companies?pageNumber=1&pageSize=10Listar empresas (paginado)

CentralCRM — Cadastro completo

POST{{baseUrl}}/centralcrm/cadastrocompanyPOST cadastrocompany

POST /api/centralcrm/cadastrocompany — sem prefixo v1. Requer perm-user-edit.

Headers

NomeValor
Content-Typeapplication/json

Body

{
"isFilial": false,
"razaoSocial": "ACME Serviços LTDA",
"nomeFantasia": "ACME",
"cnpj": "12.345.678/0001-90",
"subdominio": "minha-empresa",
"contacts": [
{
"nome": "João Silva",
"email": "joao@acme.com.br",
"criarUsuarioNoSistema": true
}
]
}

Diretório de empresas

POST{{baseUrl}}/v1/company/directoryCriar empresa no tenant

Headers

NomeValor
Content-Typeapplication/json
x-tenant-id{{tenantId}}

Body

{
"razaoSocial": "Nova Empresa SA"
}
GET{{baseUrl}}/v1/company/directory?pageNumber=1&pageSize=10Listar empresas (tenant)

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/company/directory/{{companyId}}Detalhe do diretório (sync roles)

Sincroniza metadata.contacts.role_number ↔ user.role_number, atualiza user.role e devolve contacts com campo `role` (não role_number).

Headers

NomeValor
x-tenant-id{{tenantId}}
PATCH{{baseUrl}}/v1/company/directory/{{companyId}}PATCH empresa (metadata)

Headers

NomeValor
Content-Typeapplication/json
x-tenant-id{{tenantId}}

Body

{
"nomeFantasia": "Nome Atualizado"
}
PUT{{baseUrl}}/v1/company/directory/{{companyId}}/brandingPUT branding

Headers

NomeValor
Content-Typeapplication/json
x-tenant-id{{tenantId}}

Body

{
"corPrincipal": "#191B1F",
"logotipo": "https://cdn.example.com/logo.png"
}
POST{{baseUrl}}/v1/company/directory/{{companyId}}/addressesPOST endereço

Headers

NomeValor
Content-Typeapplication/json
x-tenant-id{{tenantId}}

Body

{
"cep": "01310-100",
"endereco": "Av. Paulista",
"numero": "1000",
"cidade": "São Paulo",
"estado": "SP",
"principal": true
}
PATCH{{baseUrl}}/v1/company/directory/{{companyId}}/addresses/{{addressId}}PATCH endereço

Headers

NomeValor
Content-Typeapplication/json
x-tenant-id{{tenantId}}

Body

{
"complemento": "Sala 10"
}
DELETE{{baseUrl}}/v1/company/directory/{{companyId}}/addresses/{{addressId}}DELETE endereço

Headers

NomeValor
x-tenant-id{{tenantId}}
POST{{baseUrl}}/v1/company/directory/{{companyId}}/documentsPOST documento

Headers

NomeValor
Content-Typeapplication/json
x-tenant-id{{tenantId}}

Body

{
"tipo": "contrato",
"caminhoArquivo": "https://cdn.example.com/doc.pdf"
}
DELETE{{baseUrl}}/v1/company/directory/{{companyId}}/documents/{{documentId}}DELETE documento

Headers

NomeValor
x-tenant-id{{tenantId}}

Utilizadores por empresa

GET{{baseUrl}}/v1/company/{{companyId}}/userContagem users da empresa

GET /api/v1/company/{companyId}/user — devolve `{ total }`.

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/company/{{companyId}}/user/with-subcompaniesContagem users (mãe + sub-empresas)

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/company/{{companyId}}/tenentid/{{subTenantId}}Listar sub-empresas

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/company/{{companyId}}/tenentid/{{subTenantId}}/userListar users das sub-empresas

Headers

NomeValor
x-tenant-id{{tenantId}}

Operacional (por empresa)

GET{{baseUrl}}/v1/company/directory/{{companyId}}/operational/estabelecimentosListar estabelecimentos

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/company/directory/{{companyId}}/operational/estabelecimentos/{{estabelecimentoId}}Detalhe estabelecimento

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/company/directory/{{companyId}}/operational/dashboard?dataInicio=2026-01-01&dataFim=2026-12-31Dashboard TPV

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/company/directory/{{companyId}}/operational/top-estabelecimentos?limite=10Top estabelecimentos

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/company/directory/{{companyId}}/operational/comissoes/resumoComissões resumo

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/company/directory/{{companyId}}/operational/alugueis/resumoAlugueis resumo

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/company/directory/{{companyId}}/operational/propostasListar propostas

Headers

NomeValor
x-tenant-id{{tenantId}}

Presença

GET{{baseUrl}}/v1/presence/active-usersActive users (tenant)

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/presence/active-users-globalActive users global (admin)
GET{{baseUrl}}/v1/presence/online-count/main-companies?parentCompanyId={{parentCompanyId}}Online count — empresas mãe

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/presence/online-count/sub-companiesOnline count — sub-empresas

Headers

NomeValor
x-tenant-id{{tenantId}}
GET{{baseUrl}}/v1/presence/online-count/aggregated-by-parent?parentCompanyId={{parentCompanyId}}Online count — agregado por mãe

Headers

NomeValor
x-tenant-id{{tenantId}}

White label

GET{{baseUrl}}/v1/white-labels/{{tenantId}}?pageNumber=1&pageSize=10Listar por tenant

Headers

NomeValor
x-tenant-id{{tenantId}}

Portal

GET{{baseUrl}}/v1/portal/subdomain-url?portalTenantId={{portalTenantId}}URL do subdomínio (público)

APIs externas

GET{{baseUrl}}/v1/external-apis/opencnpj/{{cnpj}}OpenCNPJ — consultar CNPJ
GET{{baseUrl}}/v1/external-apis/cep/v1/{{cep}}BrasilAPI — CEP v1
GET{{baseUrl}}/v1/external-apis/cep/v2/{{cep}}BrasilAPI — CEP v2
GET{{baseUrl}}/v1/external-apis/banks/v1BrasilAPI — bancos v1