Swagger UI openapi.json openapi.yaml
Guide

Professionals

The Professional model, ownership checks, and fiscal entity linking. How professionals relate to the broader business domain.

TL;DR

A Professional represents a person working within a business. Each professional can have multiple fiscal entities, be linked to contracts, and emit invoices. The is-owned-by-account flag determines if the professional is the account owner.

Ownership check

The is-owned-by-account boolean flag on the Professional model indicates whether this professional is the primary account holder. This is used for access control and to determine which professional's data is shown in the personal account view.

When querying professionals, the ownership check filters by the current user's account. Account-owned professionals have elevated permissions for certain operations.

Fiscal entity link

Each professional can have multiple fiscal entities (one per CNPJ or CPF). The fiscal entity holds the tax registration, digital certificates, and invoice emission configuration.

To list fiscal entities for a professional, use the /professionals/{id}/fiscal-entity endpoint. This returns the linked fiscal entity with its status and configuration.

Fiscal entities are the bridge between professionals and the tax system. A professional without a fiscal entity cannot emit invoices or be linked to contracts that require invoice emission.

Endpoints

MethodPathPurpose
GET/professionalsList professionals for the current business.
GET/professionals/{id}Get a single professional.
POST/professionalsCreate a new professional.
PATCH/professionals/{id}Update a professional.
DELETE/professionals/{id}Delete a professional.
GET/professionals/{id}/fiscal-entityGet the fiscal entity linked to a professional.
GET/professionals/{id}/business-requests/historyList all BusinessRequests for a professional. Deprecated — use the standard BusinessRequests list with filters.
GET/professionals/{id}/professional-contracts/activeGet the currently active contract for a professional.

All endpoints require Authorization: Bearer <jwt> and ilm-business: <id>.