> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Projuris ADV as a data source

> Bring data from Projuris ADV to your Lakehouse.

Projuris ADV is a Brazilian legal practice management platform used by law firms and corporate legal departments to run their caseload: lawsuits and their court timelines, clients and opposing parties, consultations, deadlines and appointments, billable time, fee agreements, court publications captured automatically from the courts, and the office's financial ledger. The connector extracts all of it, so you can analyse caseload, productivity, billing and cash in your Lakehouse.

<Warning>The Projuris ADV API is a **paid add-on**, not part of every plan. If the **Integração** tab described below is missing, the API module is not contracted on your account — talk to your Projuris commercial contact before setting this source up.</Warning>

## Configuring Projuris ADV as a Source

In the [Sources](https://app.nekt.ai/sources) tab, click on the "Add source" button located on the top right of your screen. Then, select the Projuris ADV option from the list of connectors.

Click **Next** and you'll be prompted to add your access.

### 1. Add account access

Projuris authenticates with **four values**: an API client pair that identifies the integration, plus the login of a real Projuris user the extraction runs as.

To get the API client pair, sign in as an **account administrator** and go to **Perfil > Dados da Conta**, then open the **Integração** tab. The **Integração por API** section shows the **Client ID** and the **Client Secret** — use the reveal button to read the secret in full, and the copy button next to each field.

<Warning>Clicking **Gerar nova chave** in Projuris invalidates the current Client Secret **immediately**. Any integration still using the old secret stops authenticating until it is updated, this source included.</Warning>

<Note>The extraction sees exactly what the configured **user** can see in Projuris — their organisational units, permission profiles and case access. A restricted user produces smaller tables and the run still succeeds, so the gap is easy to miss. Use a user with access to the whole operation.</Note>

The following configurations are available:

* **Client ID**: the API Client ID from **Perfil > Dados da Conta > Integração**. It looks like `api_cliente_codigo_12345`. Required.

* **Client Secret**: the API Client Secret from the same screen. Required.

* **User Login**: the login of the Projuris user the extraction runs as. Type only the login, **without** the office domain — the connector appends it for you. Required.

* **User Password**: the password of that user. If the user changes their password in Projuris, update it here too. Required.

* **Office Domain**: your office domain, shown under **Dados da Conta**. It is the first part of the address you sign in at: for `sajadv.projurisadv.com.br` the domain is `sajadv`. Required.

* **Start Date**: the earliest date read by the two incremental tables, Cases and Case Timeline Entries. Leave it empty to extract the full history.

* **Lookback Days**: how many days are re-read before the last sync point on the incremental tables. Court captures frequently register timeline entries carrying an older date, and this window is what picks them up. Defaults to 7.

* **Page Size**: how many records are requested per page. Defaults to 100. Lower it if Projuris times out on very large pages.

* **Requests Per Second**: the maximum number of API calls per second this source makes. Projuris enforces a ceiling of **8 per second for the whole account**, shared with every other integration using it. Defaults to 6.

Once you're done, click **Next**.

### 2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.

> Tip: The stream can be found more easily by typing its name.

<Warning>**Case Parties** is read **one API call per case**. On an office with tens of thousands of cases it dominates the run time. Select it only if you need the party breakdown, and consider putting it in a separate source with a less frequent trigger.</Warning>

Select the streams and click **Next**.

### 3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.

* **Layer**: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
* **Folder**: a folder can be created inside the selected layer to group all tables being created from this new data source.
* **Table name**: we suggest a name, but feel free to customize it. You have the option to add a **prefix** to all tables at once and make this process faster!
* **Sync Type**: **Cases** and **Case Timeline Entries** support incremental sync; every other table is full table. Read more about Sync Types [here](https://docs.nekt.com/get-started/core-concepts/types-of-sync).

Once you are done configuring, click **Next**.

### 4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters.

To define your [Trigger](https://docs.nekt.com/get-started/core-concepts/triggers), consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).

Optionally, you can define some additional settings:

* Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource [here](https://docs.nekt.com/get-started/core-concepts/resource-control).
* Determine when to execute an **Additional [Full Sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#additional-full-sync)**. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.

Once you are ready, click **Next** to finalize the setup.

### 5. Check your new source

You can view your new source on the [Sources](https://app.nekt.ai/sources) page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.

<Warning>For you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you need at least one successful source run.</Warning>

## How the extraction behaves

**Only two tables sync incrementally, and that is a deliberate choice.** Projuris lets you ask "what changed since" on **Cases** and **Case Timeline Entries** only. Every other endpoint filters on a *business* date — when the task was created, when the time was booked, when the publication was issued — so an edit made to an older record would never come back through such a filter. Those tables are re-read in full on each run instead of losing edits silently. People and Companies is the mirror case: its filter does accept "changed since", but the records carry no modification timestamp to resume from, so it is full table as well.

**Court entries arrive late, and the lookback covers that.** Automatic court captures routinely register timeline entries dated days earlier than the day they land. The Case Timeline Entries table therefore re-reads a trailing window before its last sync point, controlled by **Lookback Days**. Widen it if your courts are slow to publish.

**The rate limit is shared across your whole account.** Projuris caps the API at 8 requests per second for the account, not per integration. The connector paces itself with **Requests Per Second** and, if Projuris throttles a run anyway, waits and retries instead of failing — the run simply takes longer. Lower the setting if other integrations use the same credentials.

**Dates and nested values are normalised.** Projuris returns every date as a number of milliseconds; the connector converts them to proper timestamps and turns the platform's "no date" placeholders into empty values instead of a bogus 1970 date. Fields that hold an object or a list of objects — responsible users, work groups, custom field values, financial line items — are extracted as JSON strings rather than nested columns.

**Row counts follow the user's permissions.** Every table reflects what the configured user is allowed to see. If a table looks smaller than expected, compare it against what that same user sees when signed into Projuris.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The Integração tab does not appear in Dados da Conta">
    Two conditions must both hold: you are signed in with an **administrator** profile, and the **API module is contracted** on your plan. The API is a paid add-on in Projuris ADV. Check with whoever manages the account, and if it is not contracted, talk to your Projuris commercial contact.
  </Accordion>

  <Accordion title="The run fails saying the credentials were rejected">
    Check each of the five values in order. The **Client ID** and **Client Secret** must be the current pair in **Perfil > Dados da Conta > Integração** — if anyone clicked **Gerar nova chave**, the old secret died instantly and has to be replaced here. The **User Login** must be typed without the office domain. The **User Password** must be the one that user currently signs in with. The **Office Domain** is the first part of your sign-in address, not your company name.
  </Accordion>

  <Accordion title="A table came back empty or smaller than expected">
    Results always respect the permissions of the user configured on the source — their organisational units, permission profiles and case access. Sign into Projuris as that same user and compare what they can see. If they cannot reach part of the operation, either widen their permissions or point the source at a user who can.
  </Accordion>

  <Accordion title="Recent edits are missing from a table">
    Cases and Case Timeline Entries sync incrementally. Everything else is full table and will show the edit on the next run. If an edited **case** is missing, check that its modification date really moved in Projuris; if a **timeline entry** is missing, raise **Lookback Days** so the trailing window covers how late your courts publish.
  </Accordion>

  <Accordion title="The run is much slower than usual">
    Check whether **Case Parties** is selected: it makes one API call per case and is by far the most expensive table. Also check whether other integrations are sharing your account's 8 requests per second — if so, lower **Requests Per Second** so this source paces itself steadily rather than being throttled.
  </Accordion>

  <Accordion title="The run log says Projuris is limiting how fast data is read">
    Your account reached its 8 requests per second ceiling. The connector waits and retries automatically, so no data is lost and no action is needed. If it happens on every run, lower **Requests Per Second** in the source settings, or check which other integrations are consuming the same allowance.
  </Accordion>
</AccordionGroup>

# Streams and Fields

Below you'll find all available data streams from Projuris ADV and their corresponding fields. API reference: [Projuris ADV API documentation](https://docs.projurisadv.com.br/).

<AccordionGroup>
  <Accordion title="Cases">
    Every lawsuit and extrajudicial matter the office handles (`POST /processo/consulta`). This is the central table the rest of the model hangs off.

    Primary key: `codigo_processo`

    Replication key: `data_ultima_modificacao`

    | Field                                | Type     | Description                                                                                                    |
    | :----------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------- |
    | `codigo_processo`                    | Integer  | Unique identifier of the case in Projuris ADV.                                                                 |
    | `codigo_processo_pai`                | Integer  | Identifier of the parent case when this record is an attachment, incident or appeal derived from another case. |
    | `nome_pasta`                         | String   | Name of the folder the office files this case under.                                                           |
    | `identificador`                      | String   | Human-readable code the office uses to reference the case.                                                     |
    | `numero_processo`                    | String   | Official case number, normally in the Brazilian CNJ format.                                                    |
    | `nome_marcador`                      | String   | Comma-separated tags applied to the case.                                                                      |
    | `nome_envolvidos`                    | String   | Comma-separated names of every party involved in the case.                                                     |
    | `nome_clientes`                      | String   | Comma-separated names of the parties the office represents.                                                    |
    | `nome_assunto`                       | String   | Legal subject matter of the case.                                                                              |
    | `nome_situacao`                      | String   | Current status of the case, for example Active or Archived.                                                    |
    | `nome_processo_orgao`                | String   | Court or administrative body where the case is filed.                                                          |
    | `nome_unidade_organizacional`        | String   | Organisational unit of the office responsible for the case.                                                    |
    | `nome_usuarios_responsaveis`         | String   | Comma-separated names of the users responsible for the case.                                                   |
    | `nome_grupos_responsaveis`           | String   | Comma-separated names of the work groups assigned to the case.                                                 |
    | `nome_situacao_processo`             | String   | Detailed procedural status of the case.                                                                        |
    | `data_inclusao`                      | Datetime | Timestamp when the case was registered in Projuris ADV.                                                        |
    | `data_citacao`                       | Datetime | Date the defendant was formally summoned.                                                                      |
    | `data_distribuicao`                  | Datetime | Date the case was distributed to a court.                                                                      |
    | `data_encerramento`                  | Datetime | Date the case was closed by the office.                                                                        |
    | `data_julgamento`                    | Datetime | Date the case was judged.                                                                                      |
    | `data_ultima_modificacao`            | Datetime | Timestamp of the last change to the case, used as the incremental replication key.                             |
    | `data_recebimento`                   | Datetime | Date the office received the case.                                                                             |
    | `data_arquivamento`                  | Datetime | Date the case was archived.                                                                                    |
    | `fl_habilitado`                      | Boolean  | Whether the case is active rather than logically deleted.                                                      |
    | `processo_relacionado_tipo_nome`     | String   | Name of the relationship linking this case to its parent.                                                      |
    | `tipo_processo_relacionado`          | String   | Relationship type linking this case to its parent (JSON object with the code and label).                       |
    | `codigo_captura_processo`            | Integer  | Identifier of the court-capture job feeding this case.                                                         |
    | `tipo_frequecincia_captura_processo` | String   | How often Projuris polls the court for updates on this case.                                                   |
    | `tipo_instancia`                     | String   | Judicial instance the case is currently at.                                                                    |
    | `fl_bloqueado`                       | Boolean  | Whether the case is blocked from editing.                                                                      |
    | `fl_completo`                        | Boolean  | Whether every mandatory field of the case has been filled in.                                                  |
    | `fl_merge_captura`                   | Boolean  | Whether the case was merged from an automatic court capture.                                                   |
    | `codigo_central_captura`             | Integer  | Identifier of the capture hub that sourced the case.                                                           |
    | `fl_em_negociacao_acordos`           | Boolean  | Whether the case is currently under settlement negotiation.                                                    |
    | `valores_campos_dinamicos`           | String   | Values of the office's custom fields for this case.                                                            |
  </Accordion>

  <Accordion title="Case Parties">
    The parties linked to each case — clients, opposing parties and third parties — read per case (`GET /processo/envolvido/.../consulta`). One API call per case returned by the Cases table.

    Primary key: `codigo_processo`, `codigo_vinculo_envolvido`

    | Field                      | Type    | Description                                                    |
    | :------------------------- | :------ | :------------------------------------------------------------- |
    | `codigo_processo`          | Integer | Identifier of the case this party belongs to.                  |
    | `codigo_vinculo_envolvido` | Integer | Unique identifier of the link between the case and the party.  |
    | `tipo_participacao`        | String  | How the party participates in the case, for example plaintiff. |
    | `codigo_pessoa`            | Integer | Identifier of the person or company record of this party.      |
    | `nome_pessoa`              | String  | Name of the party.                                             |
    | `flag_principal`           | Boolean | Whether this party is the main one on its side of the case.    |
    | `flag_cliente`             | Boolean | Whether this party is a client of the office.                  |
    | `tipo_envolvido`           | String  | Category of the party, such as client or opposing party.       |
    | `email`                    | String  | Primary email address registered for the party.                |
    | `telefone`                 | String  | Primary phone number registered for the party.                 |
    | `flag_completo`            | Boolean | Whether the party's record has all mandatory fields filled in. |
    | `carteira`                 | String  | Portfolio the party is grouped under.                          |
    | `codigo_carteira`          | Integer | Identifier of the portfolio the party is grouped under.        |
  </Accordion>

  <Accordion title="Case Timeline Entries">
    Timeline entries recorded against cases and attendances (`POST /andamento/consulta-geral`), including entries captured automatically from the courts. Normally the largest table in the account.

    Primary key: `codigo_andamento`

    Replication key: `data_andamento`

    | Field                      | Type     | Description                                                                                   |
    | :------------------------- | :------- | :-------------------------------------------------------------------------------------------- |
    | `codigo_andamento`         | Integer  | Unique identifier of the timeline entry.                                                      |
    | `codigo_registro_vinculo`  | Integer  | Identifier of the case or attendance the entry belongs to.                                    |
    | `lido`                     | Boolean  | Whether a user has marked the entry as read.                                                  |
    | `descricao_andamento`      | String   | Free-text description of what happened.                                                       |
    | `processo_instancia`       | String   | Judicial instance the entry refers to.                                                        |
    | `data_andamento`           | Datetime | Date the entry refers to, used as the incremental replication key.                            |
    | `hora_andamento`           | Integer  | Time of day of the entry, as stored by Projuris.                                              |
    | `codigo_tipo_andamento`    | Integer  | Identifier of the entry type.                                                                 |
    | `nome_tipo_andamento`      | String   | Name of the entry type, such as hearing or filing.                                            |
    | `responsaveis`             | String   | Users responsible for the entry (JSON array of objects).                                      |
    | `privado`                  | Boolean  | Whether the entry is visible only to its responsible users.                                   |
    | `codigo_captura_movimento` | Integer  | Identifier of the court movement that produced the entry.                                     |
    | `identificador`            | String   | Human-readable code of the record the entry belongs to.                                       |
    | `total_arquivos`           | Integer  | Number of files attached to the entry.                                                        |
    | `fl_status_classificacao`  | Integer  | Classification status of the entry.                                                           |
    | `cadastro_manual`          | Boolean  | Whether a user typed the entry in, as opposed to it arriving from an automatic court capture. |
    | `simplificacao`            | String   | Simplified, plain-language restatement of the entry.                                          |
    | `codigo_externo`           | String   | External identifier set by an integrating system.                                             |
    | `codigo_externo_adicional` | String   | Secondary external identifier set by an integrating system.                                   |
    | `campo_dinamico_dado_ws`   | String   | Values of the office's custom fields (JSON array of objects).                                 |
    | `modulos`                  | String   | Modules the entry is linked to (JSON array of objects).                                       |
  </Accordion>

  <Accordion title="People and Companies">
    The office's address book: clients, opposing parties and every other contact (`POST /pessoa/consulta`).

    Primary key: `codigo_pessoa`

    | Field                      | Type     | Description                                                               |
    | :------------------------- | :------- | :------------------------------------------------------------------------ |
    | `codigo_pessoa`            | Integer  | Unique identifier of the person or company.                               |
    | `nome`                     | String   | Full name or company name.                                                |
    | `cpf_ou_cnpj`              | String   | Brazilian taxpayer registration: CPF for individuals, CNPJ for companies. |
    | `habilitado`               | Boolean  | Whether the record is active rather than logically deleted.               |
    | `email_principal`          | String   | Primary email address on the record.                                      |
    | `telefone_principal`       | String   | Primary phone number on the record.                                       |
    | `cidade_principal`         | String   | City of the primary address.                                              |
    | `estado_principal`         | String   | State of the primary address.                                             |
    | `classificacoes`           | String   | Comma-separated classifications the office applies to the record.         |
    | `tipo_pessoa`              | String   | Whether the record is an individual or a legal entity.                    |
    | `data_nascimento`          | Datetime | Date of birth, or incorporation date for a company.                       |
    | `identificador`            | String   | Human-readable code the office uses to reference the record.              |
    | `bairro`                   | String   | District of the primary address.                                          |
    | `cep`                      | String   | Postal code of the primary address.                                       |
    | `complemento`              | String   | Address complement, such as apartment or suite.                           |
    | `logradouro`               | String   | Street name of the primary address.                                       |
    | `numero`                   | String   | Street number of the primary address.                                     |
    | `dt_inclusao`              | Datetime | Timestamp when the record was created in Projuris ADV.                    |
    | `grupos_empresariais`      | String   | Comma-separated business groups the record belongs to.                    |
    | `carteiras`                | String   | Comma-separated portfolios the record is grouped under.                   |
    | `valores_campos_dinamicos` | String   | Values of the office's custom fields for this record.                     |
  </Accordion>

  <Accordion title="Attendances">
    Consultations and non-litigious matters (`POST /atendimento/consulta`).

    Primary key: `codigo_atendimento`

    | Field                                         | Type     | Description                                                        |
    | :-------------------------------------------- | :------- | :----------------------------------------------------------------- |
    | `codigo_atendimento`                          | Integer  | Unique identifier of the attendance.                               |
    | `data_atendimento`                            | Datetime | Date the attendance took place.                                    |
    | `nome_situacao`                               | String   | Current status of the attendance.                                  |
    | `nome_assunto`                                | String   | Subject matter of the attendance.                                  |
    | `identificador`                               | String   | Human-readable code the office uses to reference the attendance.   |
    | `observacao`                                  | String   | Free-text notes on the attendance.                                 |
    | `nome_responsaveis`                           | String   | Comma-separated names of the users responsible for the attendance. |
    | `unidade_organizacional`                      | String   | Organisational unit responsible for the attendance.                |
    | `nome_clientes`                               | String   | Comma-separated names of the clients in the attendance.            |
    | `nome_contrarios`                             | String   | Comma-separated names of the opposing parties in the attendance.   |
    | `atendimento_envolvido_consulta_resultado_ws` | String   | Parties involved in the attendance (JSON array of objects).        |
    | `habilitado`                                  | Boolean  | Whether the attendance is active rather than logically deleted.    |
    | `marcadores`                                  | String   | Comma-separated tags on the attendance.                            |
    | `data_ultima_modificacao`                     | Datetime | Timestamp of the last change to the attendance.                    |
    | `bloqueado`                                   | Boolean  | Whether the attendance is blocked from editing.                    |
    | `responsaveis`                                | String   | Users responsible for the attendance (JSON array of objects).      |
    | `grupos_responsaveis`                         | String   | Work groups assigned to the attendance (JSON array of objects).    |
    | `codigo_externo`                              | String   | External identifier set by an integrating system.                  |
    | `codigo_externo_adicional`                    | String   | Secondary external identifier set by an integrating system.        |
    | `valores_campos_dinamicos`                    | String   | Values of the office's custom fields for this attendance.          |
  </Accordion>

  <Accordion title="Tasks and Appointments">
    Tasks, deadlines and calendar appointments (`POST /tarefa/consulta-com-paginacao`).

    Primary key: `codigo_tarefa`

    | Field                                   | Type     | Description                                                    |
    | :-------------------------------------- | :------- | :------------------------------------------------------------- |
    | `codigo_tarefa`                         | Integer  | Unique identifier of the task.                                 |
    | `codigo_tarefa_evento`                  | Integer  | Identifier of the recurring event that generated the task.     |
    | `codigo_tarefa_tipo`                    | Integer  | Identifier of the task type.                                   |
    | `ativo`                                 | Boolean  | Whether the task is active.                                    |
    | `cor_tarefa_tipo`                       | String   | Colour the interface uses for this task type.                  |
    | `descricao`                             | String   | Free-text description of the task.                             |
    | `identificador`                         | String   | Human-readable code of the record the task is attached to.     |
    | `modulo`                                | String   | Module the task belongs to (JSON object with code and label).  |
    | `chave_modulo`                          | String   | Key of the module the task belongs to, such as processo.       |
    | `nome_tarefa_tipo`                      | String   | Name of the task type.                                         |
    | `usuario_responsaveis`                  | String   | Comma-separated names of the users responsible for the task.   |
    | `grupos_responsaveis`                   | String   | Comma-separated names of the work groups assigned to the task. |
    | `marcadores`                            | String   | Comma-separated tags on the task.                              |
    | `data_limite`                           | Datetime | Hard deadline for the task.                                    |
    | `data_conclusao`                        | Datetime | Date the task was completed.                                   |
    | `data_conclusao_prevista`               | Datetime | Date the task is expected to be completed.                     |
    | `hora_conclusao`                        | Integer  | Time of day the task was completed, as stored by Projuris.     |
    | `hora_limite`                           | Integer  | Time of day of the deadline, as stored by Projuris.            |
    | `codigo_situacao`                       | Integer  | Identifier of the task status.                                 |
    | `situacao`                              | String   | Current status of the task.                                    |
    | `flag_situacao_concluida`               | Boolean  | Whether the current status counts as completed.                |
    | `titulo`                                | String   | Title of the task.                                             |
    | `flag_tarefa_compromisso`               | String   | Whether the record is a task or a calendar appointment.        |
    | `data_inicio_compromisso`               | Datetime | Start date of the appointment.                                 |
    | `hora_inicio_compromisso`               | Integer  | Start time of the appointment, as stored by Projuris.          |
    | `data_fim_compromisso`                  | Datetime | End date of the appointment.                                   |
    | `numero_comentarios`                    | Integer  | Number of comments posted on the task.                         |
    | `flag_compromisso_concluido`            | Boolean  | Whether the appointment has been completed.                    |
    | `privado`                               | Boolean  | Whether the task is visible only to its responsible users.     |
    | `numero_processo`                       | String   | Official number of the case the task is attached to.           |
    | `parte_ativa`                           | String   | Plaintiff side of the case the task is attached to.            |
    | `parte_passiva`                         | String   | Defendant side of the case the task is attached to.            |
    | `identificador_modulo`                  | String   | Human-readable code of the module record the task belongs to.  |
    | `cliente_atendimento`                   | String   | Client of the attendance the task is attached to.              |
    | `contrario_atendimento`                 | String   | Opposing party of the attendance the task is attached to.      |
    | `nome_pessoa`                           | String   | Name of the person the task is attached to.                    |
    | `tarefa_tipo_classificacao`             | String   | Classification of the task type.                               |
    | `tarefa_privada`                        | Boolean  | Whether the task itself is marked private.                     |
    | `acesso_privado`                        | Boolean  | Whether access to the task is restricted.                      |
    | `dados_responsaveis`                    | String   | Users responsible for the task (JSON array of objects).        |
    | `clientes`                              | String   | Clients linked to the task (JSON array of names).              |
    | `dia_todo`                              | Boolean  | Whether the appointment lasts the whole day.                   |
    | `data_inclusao`                         | Datetime | Timestamp when the task was created.                           |
    | `codigo_simulacao_calculo_prazo`        | Integer  | Identifier of the deadline calculation that produced the task. |
    | `concluida_por`                         | String   | Name of the user who completed the task.                       |
    | `operacoes_auditoria`                   | String   | Audit operations recorded for the task (JSON array).           |
    | `identificador_apontamentos_vinculados` | String   | Codes of the time entries linked to the task (JSON array).     |
    | `total_horas_apontamentos_vinculados`   | String   | Total hours booked against the task.                           |
  </Accordion>

  <Accordion title="Time Entries">
    Billable time booked against cases and attendances (`POST /apontamento-horas/consulta`).

    Primary key: `codigo_apontamento_horas`

    | Field                                | Type     | Description                                                     |
    | :----------------------------------- | :------- | :-------------------------------------------------------------- |
    | `codigo_apontamento_horas`           | Integer  | Unique identifier of the timesheet entry.                       |
    | `identificador`                      | String   | Human-readable code of the timesheet entry.                     |
    | `faturar_apontamento_horas`          | Boolean  | Whether the entry is flagged as billable.                       |
    | `nome_responsavel_apontamento_horas` | String   | Name of the user who booked the time.                           |
    | `data_inclusao`                      | Datetime | Timestamp when the entry was created.                           |
    | `total_horas_apontamento`            | String   | Total time booked on the entry, formatted as hours and minutes. |
    | `valor_hora_tipo_apontamento`        | Number   | Hourly rate applied to the entry.                               |
    | `valor_total`                        | Number   | Total monetary value of the entry.                              |
    | `descricao_apontamento_horas`        | String   | Free-text description of the work performed.                    |
    | `nome_apontamento_horas_tipo`        | String   | Name of the timesheet entry type.                               |
    | `apontamento_data_hora_ws`           | String   | Individual day-by-day bookings under this entry (JSON array).   |
    | `privado`                            | Boolean  | Whether the entry is visible only to its author.                |
    | `identificador_modulo`               | String   | Human-readable code of the case or attendance billed.           |
    | `numero_processo`                    | String   | Official number of the case the time was booked against.        |
    | `nome_cliente`                       | String   | Client the time was booked against.                             |
    | `nome_contrario`                     | String   | Opposing party of the matter the time was booked against.       |
    | `marcadores`                         | String   | Comma-separated tags on the entry.                              |
  </Accordion>

  <Accordion title="Fee Agreements">
    Fee agreements linking clients to the matters the office bills them for (`POST /contrato/consulta`).

    Primary key: `codigo_contrato`

    | Field                   | Type     | Description                                                    |
    | :---------------------- | :------- | :------------------------------------------------------------- |
    | `codigo_contrato`       | Integer  | Unique identifier of the fee agreement.                        |
    | `identificador`         | String   | Human-readable code of the fee agreement.                      |
    | `habilitado`            | Boolean  | Whether the agreement is active rather than logically deleted. |
    | `contrato_tipo`         | String   | Type of the fee agreement.                                     |
    | `titulo`                | String   | Title of the fee agreement.                                    |
    | `nome_cliente`          | String   | Client the agreement was signed with.                          |
    | `data_vigencia_inicial` | Datetime | Date the agreement takes effect.                               |
    | `data_vigencia_final`   | Datetime | Date the agreement expires.                                    |
    | `descricao`             | String   | Free-text description of the agreement.                        |
    | `usuarios_responsaveis` | String   | Users responsible for the agreement (JSON array of objects).   |
    | `grupos_responsaveis`   | String   | Work groups assigned to the agreement (JSON array of objects). |
    | `marcadores`            | String   | Comma-separated tags on the agreement.                         |
    | `cobrancas`             | String   | Summary of the billing rules configured on the agreement.      |
  </Accordion>

  <Accordion title="Court Publications">
    Official court publications captured against the office's bar registrations (`GET /intimacao/consulta`).

    Primary key: `codigo_intimacao`

    | Field                    | Type     | Description                                                      |
    | :----------------------- | :------- | :--------------------------------------------------------------- |
    | `codigo_intimacao`       | Integer  | Unique identifier of the court publication.                      |
    | `oab_origem`             | String   | Bar registration the publication was captured for.               |
    | `data_disponibilizacao`  | Datetime | Date the publication was made available by the court.            |
    | `data_jornal`            | Datetime | Date printed on the official gazette.                            |
    | `estado`                 | String   | State of the publishing court.                                   |
    | `cidade`                 | String   | City of the publishing court.                                    |
    | `orgao`                  | String   | Court or body that issued the publication.                       |
    | `numero_processo`        | String   | Official case number the publication refers to.                  |
    | `texto`                  | String   | Full text of the publication.                                    |
    | `tipo_situacao`          | String   | Processing status of the publication inside Projuris.            |
    | `codigo_processo`        | Integer  | Identifier of the case the publication was linked to.            |
    | `identificador`          | String   | Human-readable code of the publication.                          |
    | `termo_excecao`          | Boolean  | Whether the publication matched an exception term.               |
    | `duplicada`              | Boolean  | Whether the publication was flagged as a duplicate.              |
    | `descartada`             | Boolean  | Whether the publication was discarded as irrelevant.             |
    | `data_exclusao`          | Datetime | Date the publication was discarded.                              |
    | `nome_pessoa_exclusao`   | String   | Name of the user who discarded the publication.                  |
    | `fl_ativo`               | Boolean  | Whether the publication is still active.                         |
    | `tarefas_sugeridas`      | String   | Tasks Projuris suggested from the publication (JSON array).      |
    | `nome_cliente`           | String   | Clients the publication relates to (JSON array of names).        |
    | `nome_responsavel`       | String   | Name of the user responsible for the publication.                |
    | `grupos_responsaveis`    | String   | Work groups assigned to the publication (JSON array of objects). |
    | `usuarios_responsaveis`  | String   | Users assigned to the publication (JSON array of objects).       |
    | `tipo_intimacao`         | String   | Category of the court publication.                               |
    | `motivo_descarte`        | String   | Reason recorded when the publication was discarded.              |
    | `resumo_ia`              | String   | AI-generated summary of the publication.                         |
    | `providencia_ia`         | String   | AI-suggested next action for the publication.                    |
    | `identificador_processo` | String   | Human-readable code of the case the publication was linked to.   |
    | `pasta_fisica`           | String   | Physical folder the related case is filed under.                 |
    | `pasta_cliente`          | String   | Client folder the related case is filed under.                   |
  </Accordion>

  <Accordion title="Revenue and Expenses">
    Revenue and expense entries from the financial module (`POST /receita-despesa/consulta`).

    Primary key: `codigo_receita_despesa`

    | Field                      | Type     | Description                                                         |
    | :------------------------- | :------- | :------------------------------------------------------------------ |
    | `codigo_receita_despesa`   | Integer  | Unique identifier of the revenue or expense entry.                  |
    | `data`                     | Datetime | Date of the entry.                                                  |
    | `situacao`                 | String   | Current status of the entry.                                        |
    | `tipo_receita_despesa`     | String   | Whether the entry is revenue or an expense.                         |
    | `plano_conta`              | String   | Chart-of-accounts entry the record is booked under.                 |
    | `nome_favorecido`          | String   | Payee or payer of the entry.                                        |
    | `numero_documento`         | String   | Number of the supporting document.                                  |
    | `valor`                    | Number   | Nominal amount of the entry.                                        |
    | `valor_real`               | Number   | Amount actually settled, after discounts and interest.              |
    | `identificador`            | String   | Human-readable code of the entry.                                   |
    | `identificador_modulo`     | String   | Human-readable code of the case or attendance the entry belongs to. |
    | `codigo_registro_vinculo`  | Integer  | Identifier of the record the entry is linked to.                    |
    | `codigo_lancamento`        | Integer  | Identifier of the accounting posting behind the entry.              |
    | `modulo`                   | String   | Module the entry is linked to (JSON object with code and label).    |
    | `data_exercicio`           | Datetime | Accounting period the entry belongs to.                             |
    | `unidade_organizacional`   | String   | Organisational unit the entry belongs to (JSON object).             |
    | `tipo_documento`           | String   | Type of the supporting document (JSON object).                      |
    | `receita_despesa_item_ws`  | String   | Line items making up the entry (JSON array of objects).             |
    | `pagamento_dados_basico`   | String   | Payments settled against the entry (JSON array of objects).         |
    | `codigo_externo`           | String   | External identifier set by an integrating system.                   |
    | `codigo_externo_adicional` | String   | Secondary external identifier set by an integrating system.         |
  </Accordion>

  <Accordion title="Users">
    Users of the Projuris ADV account (`GET /usuario/consulta`).

    Primary key: `codigo_usuario`

    | Field                         | Type    | Description                                               |
    | :---------------------------- | :------ | :-------------------------------------------------------- |
    | `codigo_usuario`              | Integer | Unique identifier of the user.                            |
    | `login`                       | String  | Login name the user signs in with.                        |
    | `nome_usuario`                | String  | Full name of the user.                                    |
    | `nome_cargo`                  | String  | Job title of the user.                                    |
    | `nome_unidade_organizacional` | String  | Organisational unit the user belongs to.                  |
    | `nome_perfis`                 | String  | Comma-separated permission profiles granted to the user.  |
    | `habilitado`                  | Boolean | Whether the user account is active.                       |
    | `administrador`               | Boolean | Whether the user has administrator rights on the account. |
    | `codigo_pessoa`               | Integer | Identifier of the person record backing this user.        |
  </Accordion>

  <Accordion title="Timeline Entry Types">
    Lookup table of the types available for timeline entries (`GET /andamento-tipo/consulta`).

    Primary key: `codigo_andamento_tipo`

    | Field                   | Type    | Description                                      |
    | :---------------------- | :------ | :----------------------------------------------- |
    | `codigo_andamento_tipo` | Integer | Unique identifier of the timeline entry type.    |
    | `nome`                  | String  | Name of the timeline entry type.                 |
    | `modulos`               | String  | Comma-separated modules the type can be used in. |
    | `habilitado`            | Boolean | Whether the type is active.                      |
  </Accordion>

  <Accordion title="Task Types">
    Lookup table of the types available for tasks and appointments (`GET /tarefa-tipo/consulta`).

    Primary key: `codigo_tarefa_tipo`

    | Field                   | Type    | Description                                                     |
    | :---------------------- | :------ | :-------------------------------------------------------------- |
    | `codigo_tarefa_tipo`    | Integer | Unique identifier of the task type.                             |
    | `nome_tipo_tarefa`      | String  | Name of the task type.                                          |
    | `prazo_padrao`          | Integer | Default number of days allowed for tasks of this type.          |
    | `prazo_fatal`           | Integer | Number of days after which the deadline becomes final.          |
    | `nome_responsaveis`     | String  | Comma-separated users assigned to this type by default.         |
    | `nome_grupos`           | String  | Comma-separated work groups assigned to this type by default.   |
    | `marcadores`            | String  | Comma-separated tags applied to this type by default.           |
    | `nome_fila_trabalho`    | String  | Work queue tasks of this type are routed to.                    |
    | `tipo_template_usuario` | String  | How the default users are applied when a task is created.       |
    | `tipo_template_grupo`   | String  | How the default work groups are applied when a task is created. |
    | `habilitado`            | Boolean | Whether the type is active.                                     |
    | `classificacao`         | String  | Classification grouping this task type belongs to.              |
  </Accordion>

  <Accordion title="Time Entry Types">
    Lookup table of the types available for billable time, including their default hourly rate (`GET /apontamento-hora-tipo/consulta`).

    Primary key: `codigo_tipo_apontamento_hora`

    | Field                          | Type    | Description                                    |
    | :----------------------------- | :------ | :--------------------------------------------- |
    | `codigo_tipo_apontamento_hora` | Integer | Unique identifier of the timesheet entry type. |
    | `nome_tipo_apontamento_hora`   | String  | Name of the timesheet entry type.              |
    | `valor_hora`                   | Number  | Default hourly rate charged for this type.     |
    | `tempo_padrao`                 | String  | Default duration booked for this type.         |
    | `descricao`                    | String  | Description of the type.                       |
    | `flag_habilitado`              | Boolean | Whether the type is active.                    |
  </Accordion>

  <Accordion title="Cost Centres">
    Lookup table of the cost centres configured in the financial module (`GET /financeiro/centro-custo/consulta`).

    Primary key: `codigo_centro_custo`

    | Field                 | Type    | Description                           |
    | :-------------------- | :------ | :------------------------------------ |
    | `codigo_centro_custo` | Integer | Unique identifier of the cost centre. |
    | `nome`                | String  | Name of the cost centre.              |
    | `flag_habilitado`     | Boolean | Whether the cost centre is active.    |
  </Accordion>

  <Accordion title="Financial Accounts">
    Lookup table of the bank and cash accounts configured in the financial module (`GET /financeiro/conta/consulta`).

    Primary key: `codigo_conta`

    | Field                   | Type    | Description                                                    |
    | :---------------------- | :------ | :------------------------------------------------------------- |
    | `codigo_conta`          | Integer | Unique identifier of the account.                              |
    | `tipo_conta`            | String  | Account type (JSON object with code and label).                |
    | `nome_conta`            | String  | Name of the account.                                           |
    | `titular`               | String  | Account holder.                                                |
    | `flag_habilitado`       | Boolean | Whether the account is active.                                 |
    | `conta_credenciada`     | Boolean | Whether the account is enabled for Projuris-issued bank slips. |
    | `credenciamento_status` | String  | Status of the bank-slip accreditation for the account.         |
  </Accordion>

  <Accordion title="Chart of Accounts">
    Lookup table of the chart of accounts used by the financial module (`GET /financeiro/plano-conta/consulta`).

    Primary key: `codigo_plano_conta`

    | Field                     | Type    | Description                                       |
    | :------------------------ | :------ | :------------------------------------------------ |
    | `codigo_plano_conta`      | Integer | Unique identifier of the chart-of-accounts entry. |
    | `nome_plano_conta`        | String  | Name of the chart-of-accounts entry.              |
    | `nome_plano_conta_arvore` | String  | Full path of the entry within the account tree.   |
    | `tipo_plano_conta`        | String  | Whether the entry is analytical or synthetic.     |
    | `plano_conta_natureza`    | String  | Whether the entry represents revenue or expense.  |
    | `flag_habilitado`         | Boolean | Whether the entry is active.                      |
    | `nivel_arvore`            | Integer | Depth of the entry within the account tree.       |
    | `codigo_contabil`         | String  | Accounting code assigned to the entry.            |
  </Accordion>
</AccordionGroup>
