Profile Server API
Endpoints

Customers

CRUD de customers (clientes/empresas), raiz do multi-tenancy.

Clientes/empresas — raiz do multi-tenancy. Base path: /api/customers · autenticação de usuário.

MétodoRotaScopeResourceAção (role)Sucesso
POST/api/customerscreateresource:customerscreate201
GET/api/customersreadresource:customersread200
GET/api/customers/:idreadresource:customers_idread200
PUT/api/customers/:idupdateresource:customers_idupdate200
DELETE/api/customers/:iddeleteresource:customers_iddelete204

Controle de acesso por persona. Módulo customers é exclusivo da persona global — nem tenant-admin, technician nem viewer entram por padrão (só via role de exceção customers:acao). Token sem role suficiente → 403 NOT_ALLOWED.


Criar customer

POST /api/customers

Corpo

CampoTipoObrigatórioRegras
federalTaxIdstringsim11 a 14 caracteres, único
namestringsimmín. 1 caractere
aliasstringnãopode ser null
emailstringnãoe-mail válido ou null
phonestringnãopode ser null
logoPathstringnãopode ser null
activebooleannãopadrão true
curl -X POST http://localhost:3000/api/customers \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "federalTaxId": "12345678000199",
    "name": "Customer Exemplo",
    "alias": "exemplo",
    "email": "contato@exemplo.com",
    "phone": "11999999999",
    "active": true
  }'

201 Created

{
  "id": "c1b2c3d4-e5f6-4789-a123-456789abcdef",
  "federalTaxId": "12345678000199",
  "name": "Customer Exemplo",
  "alias": "exemplo",
  "email": "contato@exemplo.com",
  "phone": "11999999999",
  "active": true
}

Erros

StatuscodeQuando
409CUSTOMER_ALREADY_EXISTSJá existe um customer com esse federalTaxId

Listar customers

GET /api/customers — lista paginada (page, limit). Envelope padrão de paginação.


Obter customer por id

GET /api/customers/:id

Erros

StatuscodeQuando
404CUSTOMER_NOT_FOUNDCustomer não existe

Editar customer

PUT /api/customers/:id — atualização parcial.

CampoTipoRegras
namestringmín. 1 caractere
aliasstringou null
emailstringe-mail válido ou null
phonestringou null
logoPathstringou null
activeboolean

Retorna 200.

Erros

StatuscodeQuando
404CUSTOMER_NOT_FOUNDCustomer não existe

Remover customer

DELETE /api/customers/:id — retorna 204 No Content.

Erros

StatuscodeQuando
404CUSTOMER_NOT_FOUNDCustomer não existe