@lexnode/legal-data-sdk 1.18.0 → 1.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -75,6 +75,7 @@ await lexnode.subscriptions.create({ tribunalAlias, processNumber, externalRef }
75
75
  await lexnode.searchJobs.get(jobId);
76
76
  await lexnode.events.list({ limit: 50 });
77
77
  await lexnode.webhooks.endpoints.list();
78
+ await lexnode.webhooks.unsubscribedEventTypes();
78
79
  await lexnode.usage.get();
79
80
  ```
80
81
 
@@ -160,6 +161,9 @@ A afirmação é sua: sem ela, um `POST` repetido cria um **segundo** recurso
160
161
  endpoints para a mesma URL entregam cada evento em dobro, e o segredo do
161
162
  primeiro fica órfão. Em toda outra rota o `requestId` é só rastreio.
162
163
 
164
+ A exceção é o `UPSTREAM_TIMEOUT` da leitura de um processo, que a política não
165
+ repete — ver [a seção da fonte lenta](#ler-um-processo-quando-a-fonte-está-lenta).
166
+
163
167
  ## Webhooks
164
168
 
165
169
  ```ts
@@ -252,6 +256,56 @@ if (desfecho.kind === "sync") {
252
256
  }
253
257
  ```
254
258
 
259
+ ## Ler um processo quando a fonte está lenta
260
+
261
+ A ficha (`processes.get`) vai à fonte processual quando o acervo não tem o
262
+ processo fresco; o retrato (`processes.snapshot`) vai sempre, e só recorre ao
263
+ acervo quando a fonte falha. A fonte às vezes leva perto de um minuto por
264
+ consulta. `waitSeconds` diz quanto o motor espera por ela: de 10 a 180
265
+ segundos, padrão 20 na API.
266
+
267
+ ```ts
268
+ const { data, meta } = await lexnode.processes.get(numero, {
269
+ tribunalAlias: "api_publica_tjsp",
270
+ waitSeconds: 120,
271
+ });
272
+ ```
273
+
274
+ **O prazo da chamada acompanha a espera.** Sem `timeoutMs` na chamada, o SDK
275
+ usa o maior entre o prazo do cliente e a espera mais 15 s: depois da fonte, a
276
+ ficha ainda espera até 10 s pelo resumo das publicações do processo, e o resto
277
+ é a rede. Com `waitSeconds: 120`, a chamada desiste aos 135 s, e não aos 30 s do
278
+ padrão; sem `waitSeconds`, o SDK conta a espera padrão da API, e a chamada
279
+ desiste aos 35 s. Um `timeoutMs` explícito sempre vence. O mesmo vale para a
280
+ chamada genérica (`request`) nessas duas rotas.
281
+
282
+ **O tempo esgotado não se repete sozinho.** `UPSTREAM_TIMEOUT` (504) nessas
283
+ duas leituras é lentidão da fonte, não ausência do processo, e a política de
284
+ retentativa não o repete: a espera já correu inteira, e repetir na hora a
285
+ dobraria diante da mesma fonte lenta. As outras recusas retentáveis seguem a
286
+ política. Para insistir, a decisão é sua — uma nova chamada com espera maior,
287
+ ou a vigília do processo (`watchProcess`), que consulta em segundo plano.
288
+
289
+ **`meta.partialIndex`: o processo veio de parte do índice.** Quando a fonte
290
+ responde com só parte do índice e o processo estava na parte que respondeu, ele
291
+ é servido, e `meta.partialIndex` diz quantas partes falharam (`shardsFailed`),
292
+ de quantas (`shardsTotal`, nulo quando a fonte não as contou) e se o prazo
293
+ interno dela estourou (`timedOut`). O processo servido é o que a fonte tem, mas
294
+ outra instância do mesmo número — outro grau — pode estar na parte que não
295
+ respondeu. A resposta parcial que não serve o processo — sem ele, ou com uma
296
+ instância diferente da que o acervo já guarda — é 502 `UPSTREAM_UNAVAILABLE`
297
+ retentável, nunca 404.
298
+
299
+ ```ts
300
+ if (meta.partialIndex) {
301
+ // Outro grau deste número, se existir, pode não ter vindo.
302
+ }
303
+ ```
304
+
305
+ **Agentes têm a espera deles.** No canal para agentes (MCP), as tools
306
+ `ler_processo` e `consultar_processo` escolhem a espera em `maxWaitSeconds`, na
307
+ mesma faixa e com padrão de 120 s; esse canal não passa pelo SDK.
308
+
255
309
  ## Frescor: o `total: 0` qualificado
256
310
 
257
311
  Um resultado vazio não distingue sozinho "não existe" de "a fonte ainda não
package/dist/client.d.ts CHANGED
@@ -10,7 +10,11 @@ export interface LexNodeClientOptions {
10
10
  apiKey: string;
11
11
  /** Sub-tenant padrão (`X-Office-Id`). Cada chamada pode trocá-lo ou omiti-lo. */
12
12
  officeId?: string;
13
- /** Prazo de cada chamada, em ms. Padrão: 30 s. */
13
+ /**
14
+ * Prazo de cada chamada, em ms. Padrão: 30 s. A ficha e o retrato de um
15
+ * processo levam o maior entre este prazo e a espera pela fonte mais 15 s —
16
+ * `waitSeconds`, ou o padrão de 20 s da API quando ele falta.
17
+ */
14
18
  timeoutMs?: number;
15
19
  /** Transporte alternativo — o `fetch` global é o padrão. */
16
20
  fetch?: typeof globalThis.fetch;
@@ -90,6 +94,7 @@ export declare function createLexNodeClient(options: LexNodeClientOptions): {
90
94
  };
91
95
  deliveries: (query?: Query<"/v1/webhooks/deliveries", "get">, opts?: CallOptions) => Promise<LexNodeResult<"/v1/webhooks/deliveries", "get">>;
92
96
  health: (opts?: CallOptions) => Promise<LexNodeResult<"/v1/webhooks/health", "get">>;
97
+ unsubscribedEventTypes: (opts?: CallOptions) => Promise<LexNodeResult<"/v1/webhooks/unsubscribed-event-types", "get">>;
93
98
  };
94
99
  };
95
100
  export type LexNodeClient = ReturnType<typeof createLexNodeClient>;
package/dist/client.js CHANGED
@@ -17,6 +17,24 @@ const IDEMPOTENT_METHODS = new Set(["get", "delete"]);
17
17
  const REQUEST_ID_IDEMPOTENT_WRITES = new Set([
18
18
  "post /v1/publications/text-searches",
19
19
  ]);
20
+ /**
21
+ * As leituras de UM processo em que quem chama escolhe, em `waitSeconds`,
22
+ * quanto o motor espera pela fonte processual.
23
+ */
24
+ const SOURCE_WAIT_ROUTES = new Set([
25
+ "get /v1/processes/{processNumber}",
26
+ "get /v1/processes/{processNumber}/snapshot",
27
+ ]);
28
+ /**
29
+ * A espera que o motor aplica a essas leituras quando a chamada não traz
30
+ * `waitSeconds`: o padrão do parâmetro no contrato.
31
+ */
32
+ const SOURCE_WAIT_API_DEFAULT_SECONDS = 20;
33
+ /**
34
+ * O que a chamada espera além da espera do motor: na ficha, até 10 s de
35
+ * enriquecimento depois da fonte, e a rede.
36
+ */
37
+ const SOURCE_WAIT_MARGIN_MS = 15_000;
20
38
  /** O que um valor de cabeçalho não pode conter: `fetch` recusa montá-lo. */
21
39
  const FORBIDDEN_HEADER_CHARS = /[\r\n\0]/u;
22
40
  /** Hosts em que falar claro é desenvolvimento, não credencial exposta. */
@@ -87,6 +105,23 @@ function appendQuery(url, query) {
87
105
  }
88
106
  }
89
107
  }
108
+ /**
109
+ * O prazo da chamada que não trouxe `timeoutMs` próprio.
110
+ *
111
+ * Numa leitura que espera pela fonte, o motor pode levar a espera inteira
112
+ * antes de responder — a de `waitSeconds` ou, sem ele, a padrão da API: o
113
+ * prazo cobre essa espera mais a margem e nunca fica abaixo do prazo do
114
+ * cliente. Nas outras rotas, vale o prazo do cliente.
115
+ */
116
+ function defaultCallTimeoutMs(method, path, query, clientTimeoutMs) {
117
+ if (!SOURCE_WAIT_ROUTES.has(`${method} ${path}`))
118
+ return clientTimeoutMs;
119
+ const requested = Number(query?.waitSeconds);
120
+ const waitSeconds = Number.isFinite(requested) && requested > 0
121
+ ? requested
122
+ : SOURCE_WAIT_API_DEFAULT_SECONDS;
123
+ return Math.max(clientTimeoutMs, waitSeconds * 1_000 + SOURCE_WAIT_MARGIN_MS);
124
+ }
90
125
  /**
91
126
  * Junta o prazo do cliente ao `signal` de quem chamou.
92
127
  *
@@ -146,10 +181,19 @@ function sleep(ms, signal) {
146
181
  * repetir é seguro. Uma escrita fora da lista só é repetida quando quem chama
147
182
  * declara `idempotent: true` — quem conhece o próprio uso pode afirmar o que o
148
183
  * contrato não afirma, mas a afirmação é dele, e explícita.
184
+ *
185
+ * O tempo esgotado da fonte (`UPSTREAM_TIMEOUT`) numa leitura que espera por
186
+ * ela não se repete: o motor já esperou tudo o que a chamada pediu, e repetir
187
+ * na hora dobra a espera diante da mesma fonte lenta. As demais recusas
188
+ * retentáveis dessas leituras seguem a política.
149
189
  */
150
190
  function mayRetry(error, method, path, options) {
151
191
  if (!(error instanceof LexNodeError) || !error.retryable)
152
192
  return false;
193
+ if (error.code === "UPSTREAM_TIMEOUT" &&
194
+ SOURCE_WAIT_ROUTES.has(`${method} ${path}`)) {
195
+ return false;
196
+ }
153
197
  if (IDEMPOTENT_METHODS.has(method))
154
198
  return true;
155
199
  if (options.idempotent === true)
@@ -212,7 +256,8 @@ export function createLexNodeClient(options) {
212
256
  catch (error) {
213
257
  throw LexNodeError.invalidRequest("O corpo da chamada não é serializável em JSON.", error);
214
258
  }
215
- const timeoutMs = args.timeoutMs ?? defaultTimeoutMs;
259
+ const timeoutMs = args.timeoutMs ??
260
+ defaultCallTimeoutMs(String(method), String(path), bag.params?.query, defaultTimeoutMs);
216
261
  const link = linkAbort(timeoutMs, args.signal);
217
262
  let response;
218
263
  let raw;
@@ -425,6 +470,7 @@ export function createLexNodeClient(options) {
425
470
  ...opts,
426
471
  }),
427
472
  health: (opts = {}) => request("/v1/webhooks/health", "get", { ...opts }),
473
+ unsubscribedEventTypes: (opts = {}) => request("/v1/webhooks/unsubscribed-event-types", "get", { ...opts }),
428
474
  },
429
475
  };
430
476
  }
package/dist/errors.d.ts CHANGED
@@ -9,7 +9,7 @@ import type { RateLimitSnapshot } from "./types.js";
9
9
  * os dois por literal redigitado descobre o engano em produção. A lista é
10
10
  * fechada para o que se conhece e aberta para o que vier (ver `LexNodeError`).
11
11
  */
12
- export declare const LEXNODE_ERROR_CODES: readonly ["INVALID_MONITOR", "TRIBUNAL_NOT_SUPPORTED", "VALIDATION_ERROR", "UNAUTHORIZED", "QUOTA_EXCEEDED", "INSUFFICIENT_SCOPE", "LGPD_FORBIDDEN", "PLAN_FEATURE_NOT_INCLUDED", "SANDBOX_UPSTREAM_DISABLED", "MOVEMENTS_NOT_AVAILABLE", "PRECEDENT_NOT_FOUND", "PROCESS_NOT_FOUND", "RESOURCE_NOT_FOUND", "RESOURCE_CONFLICT", "QUERY_TOO_BROAD", "RATE_LIMITED", "UPSTREAM_RATE_LIMITED", "INTERNAL_ERROR", "UPSTREAM_UNAVAILABLE", "DATABASE_TIMEOUT", "DATABASE_UNAVAILABLE", "SYNC_ABANDONED", "UPSTREAM_TIMEOUT", "ACCOUNT_SUSPENDED", "ENTITLEMENT_EXPIRED", "PROJECT_DISABLED", "SUBSCRIPTION_INACTIVE", "MONITOR_ALREADY_EXISTS", "MONITOR_NOT_FOUND", "SEARCH_JOB_NOT_FOUND", "PUBLICATION_NOT_FOUND", "EVENT_NOT_FOUND", "TEXT_ALERT_NOT_FOUND", "TEXT_SEARCH_NOT_FOUND", "CLIENT_TIMEOUT", "CLIENT_NETWORK_ERROR", "CLIENT_INVALID_REQUEST", "CLIENT_MISSING_PATH_PARAM", "INVALID_RESPONSE", "SEARCH_JOB_BUDGET_EXCEEDED", "PAGINATION_LIMIT_REACHED"];
12
+ export declare const LEXNODE_ERROR_CODES: readonly ["INVALID_MONITOR", "TRIBUNAL_NOT_SUPPORTED", "PERSONAL_DOCUMENT_QUERY_NOT_ALLOWED", "VALIDATION_ERROR", "UNAUTHORIZED", "QUOTA_EXCEEDED", "INSUFFICIENT_SCOPE", "LGPD_FORBIDDEN", "PLAN_FEATURE_NOT_INCLUDED", "SUB_TENANT_LIMIT_EXCEEDED", "SANDBOX_UPSTREAM_DISABLED", "MOVEMENTS_NOT_AVAILABLE", "PRECEDENT_NOT_FOUND", "PROCESS_NOT_FOUND", "RESOURCE_NOT_FOUND", "RESOURCE_CONFLICT", "QUERY_TOO_BROAD", "RATE_LIMITED", "UPSTREAM_RATE_LIMITED", "INTERNAL_ERROR", "UPSTREAM_UNAVAILABLE", "DATABASE_TIMEOUT", "DATABASE_UNAVAILABLE", "SYNC_ABANDONED", "UPSTREAM_TIMEOUT", "ACCOUNT_SUSPENDED", "ENTITLEMENT_EXPIRED", "PROJECT_DISABLED", "SUBSCRIPTION_INACTIVE", "MONITOR_ALREADY_EXISTS", "MONITOR_NOT_FOUND", "SEARCH_JOB_NOT_FOUND", "PUBLICATION_NOT_FOUND", "EVENT_NOT_FOUND", "TEXT_ALERT_NOT_FOUND", "TEXT_SEARCH_NOT_FOUND", "CLIENT_TIMEOUT", "CLIENT_NETWORK_ERROR", "CLIENT_INVALID_REQUEST", "CLIENT_MISSING_PATH_PARAM", "INVALID_RESPONSE", "SEARCH_JOB_BUDGET_EXCEEDED", "PAGINATION_LIMIT_REACHED"];
13
13
  /**
14
14
  * Um código conhecido — ou qualquer outro.
15
15
  *
package/dist/errors.js CHANGED
@@ -11,12 +11,14 @@
11
11
  export const LEXNODE_ERROR_CODES = [
12
12
  "INVALID_MONITOR",
13
13
  "TRIBUNAL_NOT_SUPPORTED",
14
+ "PERSONAL_DOCUMENT_QUERY_NOT_ALLOWED",
14
15
  "VALIDATION_ERROR",
15
16
  "UNAUTHORIZED",
16
17
  "QUOTA_EXCEEDED",
17
18
  "INSUFFICIENT_SCOPE",
18
19
  "LGPD_FORBIDDEN",
19
20
  "PLAN_FEATURE_NOT_INCLUDED",
21
+ "SUB_TENANT_LIMIT_EXCEEDED",
20
22
  "SANDBOX_UPSTREAM_DISABLED",
21
23
  "MOVEMENTS_NOT_AVAILABLE",
22
24
  "PRECEDENT_NOT_FOUND",
package/dist/types.d.ts CHANGED
@@ -150,7 +150,10 @@ export interface CallOptions {
150
150
  officeId?: string | null;
151
151
  /** Aborta a chamada. É COMBINADO com o prazo, nunca o substitui. */
152
152
  signal?: AbortSignal;
153
- /** Prazo desta chamada, em ms. Vence o do construtor. */
153
+ /**
154
+ * Prazo desta chamada, em ms. Vence o do construtor e o que o cliente
155
+ * calcula para a ficha e o retrato de um processo a partir da espera.
156
+ */
154
157
  timeoutMs?: number;
155
158
  /**
156
159
  * `X-Request-Id`. Cunhado quando ausente.
@@ -127,6 +127,13 @@ export interface PublicationCreatedPayload {
127
127
  /** Só na vigília por nome de parte. */
128
128
  partyName?: string;
129
129
  partyRole?: string | null;
130
+ /** Só na vigília por CNPJ: o literal vigiado — o documento pontuado
131
+ * inteiro, ou a raiz `NN.NNN.NNN` quando `includeBranches`. */
132
+ partyDocument?: string;
133
+ includeBranches?: boolean;
134
+ /** `document`: o CNPJ consta no teor — a empresa foi citada no ato, seja
135
+ * ou não parte. */
136
+ matchedBy?: "document";
130
137
  }
131
138
  export interface MonitorSyncSucceededPayload {
132
139
  monitorId: string;
@@ -177,6 +184,8 @@ export interface MonitorSyncSucceededPayload {
177
184
  refusedDays?: string[];
178
185
  term?: string;
179
186
  partyName?: string;
187
+ partyDocument?: string;
188
+ includeBranches?: boolean;
180
189
  publicationsMatched?: number;
181
190
  }
182
191
  export interface MonitorSyncFailedPayload {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lexnode/legal-data-sdk",
3
- "version": "1.18.0",
4
- "description": "Cliente TypeScript do LexNode, o motor de dados jurídicos do Brasil: transporte tipado, erros classificados, verificação de webhook e os tipos gerados do contrato OpenAPI.",
3
+ "version": "1.24.0",
4
+ "description": "Cliente TypeScript do LexNode, o motor de dados jur\u00eddicos do Brasil: transporte tipado, erros classificados, verifica\u00e7\u00e3o de webhook e os tipos gerados do contrato OpenAPI.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://www.lexnode.com.br/docs",
7
7
  "keywords": [
package/schema.d.ts CHANGED
@@ -73,7 +73,7 @@ export interface paths {
73
73
  };
74
74
  /**
75
75
  * Estado público do motor
76
- * @description Estado operacional de cada capacidade, sem autenticação: é a página que se consulta antes de abrir chamado. Devolve estado, nunca volume — se uma capacidade está de pé, não quantas requisições ela serviu. `NO_SIGNAL` significa que não houve consulta à fonte na última hora, então não há o que medir. A resposta é cacheada por 30 segundos.
76
+ * @description Estado operacional de cada capacidade, sem autenticação: é a página que se consulta antes de abrir chamado. Devolve estado, nunca volume — se uma capacidade está de pé, não quantas requisições ela serviu. `NO_SIGNAL` significa que não houve consulta à fonte na última hora, então não há o que medir. Cada capacidade carrega também quando a fonte foi lida (`lastReadAt`) e, onde existe uma data de conteúdo para o acervo inteiro, até quando ela está lida (`readThrough`) — é com ela que se escreve "nada encontrado" sem confundir ausência com atraso. A resposta é cacheada por 30 segundos.
77
77
  */
78
78
  get: operations["getPublicStatus"];
79
79
  put?: never;
@@ -93,7 +93,7 @@ export interface paths {
93
93
  };
94
94
  /**
95
95
  * Listar os tribunais suportados
96
- * @description Retorna os tribunais suportados e, para cada um, as fontes que o servem em `sources`: o eixo de processo, o diário e, onde existe, o acervo de jurisprudência. A entrada do ramo `ADMINISTRATIVE` tem só o acervo — consulta de processo, busca e colheita no diário, vigília e calendário forense a recusam com `TRIBUNAL_NOT_SUPPORTED`. É daqui que sai a grafia aceita nas demais rotas, pela sigla (`code`) ou pelo apelido da fonte (`alias`); a chave que liga uma publicação ao catálogo é `code`.
96
+ * @description Retorna os tribunais suportados e, para cada um, as fontes que o servem em `sources`: o eixo de processo, o diário e, onde existe, o acervo de jurisprudência. A entrada do ramo `ADMINISTRATIVE` tem só o acervo — consulta de processo, busca e colheita no diário, vigília e calendário forense a recusam com `TRIBUNAL_NOT_SUPPORTED`. É daqui que sai a grafia aceita nas demais rotas, pela sigla (`code`) ou pelo apelido da fonte (`alias`); a chave que liga uma publicação ao catálogo é `code`. Cada entrada traz também `processIndex`: até quando o índice da fonte foi lido no eixo do processo daquele tribunal — a data com que se escreve "não encontrei" sem confundir ausência com atraso.
97
97
  *
98
98
  * **Escopo exigido na chave de API:** `TRIBUNALS_READ`
99
99
  */
@@ -115,7 +115,7 @@ export interface paths {
115
115
  };
116
116
  /**
117
117
  * Calendário forense do tribunal
118
- * @description Retorna os feriados forenses estaduais de um tribunal dentro de uma janela de datas. O tribunal vai em `court`, pela sigla (`court=TJSP`) ou pelo apelido da fonte; `tribunalAlias` continua aceito como sinônimo. A janela vai em `from`/`to`, no formato AAAA-MM-DD. Feriados nacionais e o recesso de fim de ano (art. 220 do CPC) ficam a cargo do motor de prazos do próprio consumidor; este endpoint devolve a camada estadual que o tribunal acrescenta por cima, derivada da UF do tribunal.
118
+ * @description Retorna os dias em que o prazo não corre num tribunal dentro de uma janela de datas: os feriados nacionais, o Dia da Justiça (8/12) em todo tribunal, os feriados forenses que a lei federal dá à Justiça Federal e aos tribunais superiores, e que as justiças do Trabalho e Eleitoral adotam (segunda de Carnaval, Semana Santa de quarta a domingo, 11/8 e 1º/11), todos com `scope` NATIONAL, o recesso de fim de ano (art. 220 do CPC), os feriados estaduais da UF do tribunal e, com `municipalityIbgeCode`, os municipais da comarca. O tribunal vai em `court`, pela sigla (`court=TJSP`) ou pelo apelido da fonte; `tribunalAlias` continua aceito como sinônimo. A janela vai em `from`/`to`, no formato AAAA-MM-DD. Quando o tribunal transferiu um feriado por ato próprio e o motor conhece o ato, o feriado sai no dia que o ato fixa, com `transfer` dizendo de qual dia veio. `coverage` diz, camada a camada, o que esta resposta consultou.
119
119
  *
120
120
  * **Escopo exigido na chave de API:** `TRIBUNALS_READ`
121
121
  */
@@ -159,7 +159,7 @@ export interface paths {
159
159
  };
160
160
  /**
161
161
  * Obter um processo pelo número
162
- * @description Retorna o registro exato do processo para o tribunal e o número informados, com resolução cache-first quando disponível.
162
+ * @description Retorna o registro exato do processo para o tribunal e o número informados, com resolução cache-first quando disponível. `waitSeconds` escolhe quanto esperar pela fonte processual. Quando a fonte responde com parte do índice e o processo está na parte que respondeu, ele é servido e `meta.partialIndex` diz quantas partes falharam (`shardsFailed`), de quantas (`shardsTotal`) e se o prazo interno da fonte estourou (`timedOut`): outra instância do mesmo número, se existir, pode não ter vindo. A exceção é o processo que veio de uma instância diferente da que o acervo já guarda do número: a guardada pode estar na parte que não respondeu, e a resposta parcial não é servida. Resposta parcial que não serve o processo — sem ele, ou com a outra instância — é 502 `UPSTREAM_UNAVAILABLE` retentável, nunca 404.
163
163
  *
164
164
  * **Escopo exigido na chave de API:** `PROCESSES_READ`
165
165
  */
@@ -203,7 +203,7 @@ export interface paths {
203
203
  };
204
204
  /**
205
205
  * Obter um snapshot vivo do processo
206
- * @description Busca o hit exato do processo no upstream do CNJ e retorna o registro normalizado do processo, o payload bruto da fonte e as movimentações CNJ normalizadas.
206
+ * @description Busca o hit exato do processo no upstream do CNJ e retorna o registro normalizado do processo, o payload bruto da fonte e as movimentações CNJ normalizadas. `waitSeconds` escolhe quanto esperar pela fonte processual. Quando a fonte responde com parte do índice e o processo está na parte que respondeu, ele é servido e `meta.partialIndex` diz quantas partes falharam (`shardsFailed`), de quantas (`shardsTotal`) e se o prazo interno da fonte estourou (`timedOut`): outra instância do mesmo número, se existir, pode não ter vindo. A exceção é o processo que veio de uma instância diferente da que o acervo já guarda do número: a guardada pode estar na parte que não respondeu, e a resposta parcial não é servida. Resposta parcial que não serve o processo — sem ele, ou com a outra instância — é 502 `UPSTREAM_UNAVAILABLE` retentável, nunca 404.
207
207
  *
208
208
  * **Escopo exigido na chave de API:** `PROCESSES_READ`
209
209
  */
@@ -269,7 +269,7 @@ export interface paths {
269
269
  };
270
270
  /**
271
271
  * Listar monitores
272
- * @description Paginação keyset: passe em `cursor` o `meta.nextCursor` da resposta anterior. `officeScoped=true` restringe aos monitores atribuídos ao `X-Office-Id` da chamada. Os campos de alvo (`tribunalAlias`, `processNumber`, `oabNumber`, `oabState`, `term`, `partyName`) filtram pelo que o monitor vigia, nas mesmas grafias que a criação aceita — quem mantém um sensor por alvo pergunta pelo alvo em vez de paginar a conta inteira.
272
+ * @description Paginação keyset: passe em `cursor` o `meta.nextCursor` da resposta anterior. `officeScoped=true` restringe aos monitores atribuídos ao `X-Office-Id` da chamada. Os campos de alvo (`tribunalAlias`, `processNumber`, `oabNumber`, `oabState`, `term`, `partyName`, `partyDocument`) filtram pelo que o monitor vigia, nas mesmas grafias que a criação aceita — quem mantém um sensor por alvo pergunta pelo alvo em vez de paginar a conta inteira.
273
273
  *
274
274
  * **Escopo exigido na chave de API:** `MONITORS_READ`
275
275
  */
@@ -277,7 +277,7 @@ export interface paths {
277
277
  put?: never;
278
278
  /**
279
279
  * Criar um monitor
280
- * @description Cria um monitor PROCESS, OAB ou TERM. O motor varre as fontes na própria agenda: monitor OAB emite `PUBLICATION_CREATED` a cada publicação nova do advogado; monitor TERM vigia a edição diária do diário por um termo livre (mínimo 5 caracteres — piso da fonte —, casamento por palavra inteira, varredura nacional) e emite `PUBLICATION_CREATED` — com o campo `term` no payload — para cada menção compartilhável nova; monitor PROCESS emite `MONITOR_SYNC_SUCCEEDED` (com o campo `changed`) a cada varredura e `MONITOR_SYNC_FAILED` quando a varredura falha. Para ser notificado de movimentação nova de um processo, use POST /v1/subscriptions. **Vigília de aparição:** um monitor PROCESS cujo alvo a fonte ainda não indexou é aceito e fica esperando — `targetSeenAt: null` na resposta marca a espera, a varredura em espera emite `MONITOR_SYNC_SUCCEEDED` com `awaitingAppearance: true`, e a primeira aparição chega com `firstAppearance: true`. Informe `distributedAt` (AAAA-MM-DD, nunca no futuro; imutável depois de criado — corrigir a data é recriar o monitor) para a espera ter critério de parada: enquanto a data-limite do índice da fonte não alcança a data, o alvo nem é consultado; quando a ultrapassa com folga de 3 dias e nada apareceu, o monitor entra em ERROR — cadastro provavelmente errado — sem deixar de tentar. **Alvo já vigiado:** o monitor é único por alvo dentro da conta e do projeto, e o segundo pedido responde 409 `MONITOR_ALREADY_EXISTS` com `error.details.monitorId` — o id do que já está lá, para quem compõe sensor e assinatura seguir sem procurar na lista.
280
+ * @description Cria um monitor PROCESS, OAB, TERM, PARTY ou DOCUMENT. O motor varre as fontes na própria agenda: monitor OAB emite `PUBLICATION_CREATED` a cada publicação nova do advogado; monitor TERM vigia a edição diária do diário por um termo livre (mínimo 5 caracteres — piso da fonte —, casamento por palavra inteira, varredura nacional) e emite `PUBLICATION_CREATED` — com o campo `term` no payload — para cada menção compartilhável nova; monitor PARTY vigia pelo nome de parte no cadastro da publicação e emite `PUBLICATION_CREATED` com `partyName` e `partyRole`; monitor DOCUMENT vigia pelo CNPJ no TEOR (`partyDocument`, nos 14 dígitos ou pontuado — normalizado para a grafia pontuada, a única que o teor escreve) e emite `PUBLICATION_CREATED` com `partyDocument`, `includeBranches` e `matchedBy: "document"` — a empresa foi citada no ato, seja ou não parte, o que alcança a decisão que manda citá-la antes de ela figurar nos destinatários; `includeBranches: true` vigia a raiz de 8 dígitos e alcança matriz e filiais (muda a contagem; nunca é o padrão). TERM, PARTY e DOCUMENT dividem a mesma vaga do plano. Monitor PROCESS emite `MONITOR_SYNC_SUCCEEDED` (com o campo `changed`) a cada varredura — cadência de 15 minutos, até 96 por dia por monitor, quase todos sem novidade — e `MONITOR_SYNC_FAILED` quando a varredura falha. Para ser notificado de movimentação nova de um processo, use POST /v1/subscriptions. **Vigília de aparição:** um monitor PROCESS cujo alvo a fonte ainda não indexou é aceito e fica esperando — `targetSeenAt: null` na resposta marca a espera, a varredura em espera emite `MONITOR_SYNC_SUCCEEDED` com `awaitingAppearance: true`, e a primeira aparição chega com `firstAppearance: true`. Informe `distributedAt` (AAAA-MM-DD, nunca no futuro; imutável depois de criado — corrigir a data é recriar o monitor) para a espera ter critério de parada: enquanto a data-limite do índice da fonte não alcança a data, o alvo nem é consultado; quando a ultrapassa com folga de 3 dias e nada apareceu, o monitor entra em ERROR — cadastro provavelmente errado — sem deixar de tentar. **Alvo já vigiado:** o monitor é único por alvo dentro da conta e do projeto, e o segundo pedido responde 409 `MONITOR_ALREADY_EXISTS` com `error.details.monitorId` — o id do que já está lá, para quem compõe sensor e assinatura seguir sem procurar na lista.
281
281
  *
282
282
  * **Escopo exigido na chave de API:** `MONITORS_WRITE`
283
283
  */
@@ -497,7 +497,7 @@ export interface paths {
497
497
  };
498
498
  /**
499
499
  * Listar publicações
500
- * @description Retorna as publicações que casam com os filtros informados. Uma consulta com escopo de processo é lake-first e incremental: a primeira busca faz a captura completa no DJEN e grava no data lake; as seguintes buscam apenas o delta desde a publicação mais recente conhecida e servem as linhas consolidadas do lake. `text`, `partyName` e `lawyerName` filtram na própria fonte; os matches de `text` são adicionalmente revalidados localmente com fronteira de palavra, então itens cujo conteúdo só casa por substring são descartados (`total` permanece a contagem reportada pela fonte). **Antes de concluir que uma publicação não existe, leia `sourceIndex.lastEditionDate`:** é a última edição do diário que o motor detectou no ar. O diário publica uma edição por dia útil, e `total: 0` sem a edição do dia detectada significa *ainda não saiu*, não *não existe*. A prova vale numa direção só: edição detectada NÃO garante o índice do dia completo — ele continua recebendo itens ao longo do dia, então um zero com a edição de hoje no ar ainda pode virar publicação horas depois. O campo acompanha toda resposta, sem custo adicional.
500
+ * @description Retorna as publicações que casam com os filtros informados. Uma consulta com escopo de processo é lake-first e incremental: a primeira busca faz a captura completa na fonte e grava no data lake; as seguintes buscam apenas o delta desde a publicação mais recente conhecida e servem as linhas consolidadas do lake. `text`, `partyName`, `lawyerName` e `partyDocument` filtram na própria fonte; os matches de `text` são adicionalmente revalidados localmente com fronteira de palavra, então itens cujo conteúdo só casa por substring são descartados (`total` permanece a contagem reportada pela fonte). **Os três eixos de empresa se completam:** `partyName` casa por continência de palavras e acha as irmãs de uma família de razões sociais; `lawyerName` confirma quais pertencem ao mesmo grupo, porque o corpo de procuradores é compartilhado; `partyDocument` — o CNPJ nos 14 dígitos ou pontuado, normalizado para `NN.NNN.NNN/NNNN-NN` — casa o documento no TEOR e acha a empresa citada no ato (mandada citar, garantidora, penhorada) antes de ela figurar como parte. A reconfirmação local por documento é substring literal, e cada item assim casado vem com `matchedBy: "document"`; compare com `parties` para saber se a empresa já é parte. `includeBranches=true` busca pela raiz de 8 dígitos e alcança matriz e filiais — opção declarada, porque muda a contagem; nunca é o padrão. `partyDocument` não se combina com `text`. Um CPF em qualquer desses campos é recusado com `PERSONAL_DOCUMENT_QUERY_NOT_ALLOWED`. **Antes de concluir que uma publicação não existe, leia `sourceIndex.lastEditionDate`:** é a última edição do diário que o motor detectou no ar. O diário publica uma edição por dia útil, e `total: 0` sem a edição do dia detectada significa *ainda não saiu*, não *não existe*. A prova vale numa direção só: edição detectada NÃO garante o índice do dia completo — ele continua recebendo itens ao longo do dia, então um zero com a edição de hoje no ar ainda pode virar publicação horas depois. O campo acompanha toda resposta, sem custo adicional.
501
501
  *
502
502
  * **Escopo exigido na chave de API:** `PUBLICATIONS_READ`
503
503
  */
@@ -757,7 +757,7 @@ export interface paths {
757
757
  };
758
758
  /**
759
759
  * Consultar o uso do projeto da API key atual
760
- * @description Retorna o uso do período, os créditos restantes, métricas de uso agrupadas e os eventos de uso recentes da conta e do projeto autenticados. `byOffice` reparte o consumo pelos valores de `X-Office-Id` que as requisições informaram — é o recorte para repassar custo a sub-contas. A entrada com `officeId: null` reúne o que nenhuma requisição atribuiu mais o trabalho recorrente (varredura de monitor, entrega de webhook), então a soma das partes fecha com o total.
760
+ * @description Retorna o uso do período, os créditos restantes, métricas de uso agrupadas e os eventos de uso recentes da conta e do projeto autenticados. `byOffice` reparte o consumo pelos valores de `X-Office-Id` que as requisições informaram — é o recorte para repassar custo a sub-contas. A entrada com `officeId: null` reúne o que nenhuma requisição atribuiu mais o trabalho recorrente (varredura de monitor, entrega de webhook), então a soma das partes fecha com o total. `subTenantLimit` é quantos sub-tenants o plano admite por período (nulo é sem teto) e `subTenantsUsed` quantos já receberam requisição no período da conta inteira — um office novo além do teto é recusado com 403 `SUB_TENANT_LIMIT_EXCEEDED`; os já atendidos passam sempre.
761
761
  *
762
762
  * **Escopo exigido na chave de API:** `USAGE_READ`
763
763
  */
@@ -814,6 +814,28 @@ export interface paths {
814
814
  patch?: never;
815
815
  trace?: never;
816
816
  };
817
+ "/v1/webhooks/unsubscribed-event-types": {
818
+ parameters: {
819
+ query?: never;
820
+ header?: never;
821
+ path?: never;
822
+ cookie?: never;
823
+ };
824
+ /**
825
+ * Tipos de evento que a conta produz e nenhum receptor assina
826
+ * @description Os tipos de evento que a conta produziu nos últimos 30 dias e que nenhum endpoint ativo assina — com a contagem, o último instante e a classe: `DATA` é o produto (movimentação, publicação, achado, busca ou colheita concluída) e `OPERATIONAL` é sinal sobre a operação (`MONITOR_SYNC_FAILED` e os avisos comerciais). Um evento nasce como registro mesmo sem assinante e fica disponível por 180 dias: para fechar a lacuna, assine o tipo no endpoint (`PATCH /v1/webhooks/endpoints/{endpointId}`) e reenvie a janela (`POST /v1/webhooks/endpoints/{endpointId}/replay`) — nada é assinado nem reenviado sozinho. `MONITOR_SYNC_SUCCEEDED` nunca aparece aqui: é o sinal de vida da vigília, sai a cada varredura e não assiná-lo é a escolha esperada. O endpoint suspenso pelo motor conta como assinante; o pausado pelo dono, não. Os tipos operacionais dispensados no portal vêm em `dismissed`. A lacuna é medida por conta: qualquer endpoint ativo da conta conta como assinante, independentemente do projeto a que ele se limite. Custa 0 créditos.
827
+ *
828
+ * **Escopo exigido na chave de API:** `EVENTS_READ`
829
+ */
830
+ get: operations["listUnsubscribedEventTypes"];
831
+ put?: never;
832
+ post?: never;
833
+ delete?: never;
834
+ options?: never;
835
+ head?: never;
836
+ patch?: never;
837
+ trace?: never;
838
+ };
817
839
  "/v1/events": {
818
840
  parameters: {
819
841
  query?: never;
@@ -925,7 +947,7 @@ export interface paths {
925
947
  put?: never;
926
948
  /**
927
949
  * Disparar uma entrega de teste
928
- * @description Envia na hora, de forma síncrona, uma entrega sintética assinada (type `WEBHOOK_TEST`) ao endpoint e responde com o resultado: alcançou o receptor? Qual status HTTP voltou? Nada é gravado na fila — é a forma de validar conectividade e verificação de assinatura antes do primeiro evento real. Endpoint de outra conta responde 404.
950
+ * @description Envia na hora, de forma síncrona, uma entrega sintética assinada (type `WEBHOOK_TEST`) ao endpoint e responde com o resultado: alcançou o receptor? Qual status HTTP voltou? Nada é gravado na fila e nada conta como entrega: o desfecho fica carimbado no próprio receptor (`lastTestAt`, `lastTestStatus`, `lastTestError`, visíveis em `GET /v1/webhooks/endpoints` e `GET /v1/webhooks/health`), sem tocar na série de recusas nem na suspensão. É a forma de validar conectividade e verificação de assinatura antes do primeiro evento real. Endpoint de outra conta responde 404.
929
951
  *
930
952
  * **Escopo exigido na chave de API:** `WEBHOOKS_WRITE`
931
953
  */
@@ -1181,6 +1203,10 @@ export interface operations {
1181
1203
  /** @enum {string} */
1182
1204
  status: "OPERATIONAL" | "DEGRADED" | "OUTAGE" | "NO_SIGNAL";
1183
1205
  detail: string;
1206
+ /** @description Quando esta capacidade leu a fonte com sucesso pela última vez, ISO. Nulo quando não houve leitura na janela medida — o que é silêncio, não queda. */
1207
+ lastReadAt: string | null;
1208
+ /** @description Até quando o conteúdo da fonte está lido, no recorte que a capacidade serve (AAAA-MM-DD). É a data com que se escreve 'nada encontrado' sem mentir: o que é posterior a ela ainda não chegou. Nulo na capacidade que não tem data de conteúdo para o acervo inteiro — ali a data vem com o recorte, na própria resposta da consulta. */
1209
+ readThrough: string | null;
1184
1210
  }[];
1185
1211
  };
1186
1212
  };
@@ -1221,6 +1247,12 @@ export interface operations {
1221
1247
  segment: number;
1222
1248
  code: number;
1223
1249
  } | null;
1250
+ processIndex: {
1251
+ /** Format: date-time */
1252
+ updatedThrough: string | null;
1253
+ /** Format: date-time */
1254
+ checkedAt: string;
1255
+ } | null;
1224
1256
  }[];
1225
1257
  meta: {
1226
1258
  /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
@@ -1456,6 +1488,13 @@ export interface operations {
1456
1488
  label: string;
1457
1489
  uf: string | null;
1458
1490
  municipalityIbgeCode?: number;
1491
+ /** @description Presente quando o tribunal transferiu o feriado por ato próprio: date é o dia em que o tribunal o observa, fromDate o dia que a lei fixa (que não sai na lista), e act e url o ato e onde ele foi lido. */
1492
+ transfer?: {
1493
+ fromDate: string;
1494
+ act: string;
1495
+ /** Format: uri */
1496
+ url: string;
1497
+ };
1459
1498
  }[];
1460
1499
  coverage: {
1461
1500
  /** @enum {string} */
@@ -2002,6 +2041,8 @@ export interface operations {
2002
2041
  query: {
2003
2042
  tribunalAlias: string;
2004
2043
  since?: unknown;
2044
+ /** @description Quanto esperar pela fonte processual quando o processo precisa ser buscado nela, em segundos: de 10 a 180, padrão 20. É o teto da consulta à fonte: ela às vezes leva até ~60 s por consulta, cada ida a ela espera no máximo 60 s, e a segunda ida só sai depois de uma recusa por volume ou de um erro da fonte, nunca depois de tempo esgotado. Depois dela, a ficha ainda espera até 10 s pelo resumo das publicações do processo. Tempo esgotado é 504 `UPSTREAM_TIMEOUT` (lentidão, não ausência). Dê ao seu cliente HTTP um tempo limite que cubra a espera, esses segundos da ficha e a rede: no padrão, mais de 30 s. */
2045
+ waitSeconds?: number;
2005
2046
  };
2006
2047
  header?: {
2007
2048
  /** @description Identificador da requisição escolhido pelo cliente, ecoado em meta.requestId e no corpo de erro. Tem DOIS papéis: (1) rastreio, em toda rota — é por ele que o suporte encontra a chamada; (2) idempotência por conta em POST /v1/publications/text-searches e POST /v1/search-jobs, onde reenviar o mesmo valor reapresenta o resultado já produzido, sem nova cobrança. Fora dessas duas rotas o valor não deduplica nada: para repetir uma chamada de propósito, mande um valor novo. Aceita [A-Za-z0-9_.:-], até 200 caracteres; valor fora disso é ignorado e o motor cunha o próprio. */
@@ -2081,6 +2122,15 @@ export interface operations {
2081
2122
  requestId: string;
2082
2123
  credits?: number;
2083
2124
  cacheHit?: boolean;
2125
+ /** @description Presente só quando a fonte respondeu com parte do índice e o processo estava na parte que respondeu: outra instância do mesmo número, se existir, pode não ter vindo. */
2126
+ partialIndex?: {
2127
+ /** @description Partes do índice da fonte que não responderam. */
2128
+ shardsFailed: number;
2129
+ /** @description Total de partes do índice; nulo quando a fonte não as contou. */
2130
+ shardsTotal: number | null;
2131
+ /** @description A fonte estourou o próprio prazo interno e devolveu só o que deu tempo de olhar. */
2132
+ timedOut: boolean;
2133
+ };
2084
2134
  } & {
2085
2135
  [key: string]: unknown;
2086
2136
  };
@@ -2612,6 +2662,8 @@ export interface operations {
2612
2662
  query: {
2613
2663
  tribunalAlias: string;
2614
2664
  since?: unknown;
2665
+ /** @description Quanto esperar pela fonte processual quando o processo precisa ser buscado nela, em segundos: de 10 a 180, padrão 20. É o teto da consulta à fonte: ela às vezes leva até ~60 s por consulta, cada ida a ela espera no máximo 60 s, e a segunda ida só sai depois de uma recusa por volume ou de um erro da fonte, nunca depois de tempo esgotado. Depois dela, a ficha ainda espera até 10 s pelo resumo das publicações do processo. Tempo esgotado é 504 `UPSTREAM_TIMEOUT` (lentidão, não ausência). Dê ao seu cliente HTTP um tempo limite que cubra a espera, esses segundos da ficha e a rede: no padrão, mais de 30 s. */
2666
+ waitSeconds?: number;
2615
2667
  };
2616
2668
  header?: {
2617
2669
  /** @description Identificador da requisição escolhido pelo cliente, ecoado em meta.requestId e no corpo de erro. Tem DOIS papéis: (1) rastreio, em toda rota — é por ele que o suporte encontra a chamada; (2) idempotência por conta em POST /v1/publications/text-searches e POST /v1/search-jobs, onde reenviar o mesmo valor reapresenta o resultado já produzido, sem nova cobrança. Fora dessas duas rotas o valor não deduplica nada: para repetir uma chamada de propósito, mande um valor novo. Aceita [A-Za-z0-9_.:-], até 200 caracteres; valor fora disso é ignorado e o motor cunha o próprio. */
@@ -2703,6 +2755,15 @@ export interface operations {
2703
2755
  requestId: string;
2704
2756
  credits?: number;
2705
2757
  cacheHit?: boolean;
2758
+ /** @description Presente só quando a fonte respondeu com parte do índice e o processo estava na parte que respondeu: outra instância do mesmo número, se existir, pode não ter vindo. */
2759
+ partialIndex?: {
2760
+ /** @description Partes do índice da fonte que não responderam. */
2761
+ shardsFailed: number;
2762
+ /** @description Total de partes do índice; nulo quando a fonte não as contou. */
2763
+ shardsTotal: number | null;
2764
+ /** @description A fonte estourou o próprio prazo interno e devolveu só o que deu tempo de olhar. */
2765
+ timedOut: boolean;
2766
+ };
2706
2767
  } & {
2707
2768
  [key: string]: unknown;
2708
2769
  };
@@ -3490,7 +3551,7 @@ export interface operations {
3490
3551
  cursor?: string;
3491
3552
  limit?: number;
3492
3553
  status?: "ACTIVE" | "PAUSED" | "DISABLED" | "ERROR";
3493
- type?: "PROCESS" | "OAB" | "TERM" | "PARTY";
3554
+ type?: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
3494
3555
  officeScoped?: "true" | "false";
3495
3556
  tribunalAlias?: string;
3496
3557
  processNumber?: string;
@@ -3498,6 +3559,7 @@ export interface operations {
3498
3559
  oabState?: string;
3499
3560
  term?: string;
3500
3561
  partyName?: string;
3562
+ partyDocument?: string;
3501
3563
  };
3502
3564
  header?: {
3503
3565
  /** @description Identificador da requisição escolhido pelo cliente, ecoado em meta.requestId e no corpo de erro. Tem DOIS papéis: (1) rastreio, em toda rota — é por ele que o suporte encontra a chamada; (2) idempotência por conta em POST /v1/publications/text-searches e POST /v1/search-jobs, onde reenviar o mesmo valor reapresenta o resultado já produzido, sem nova cobrança. Fora dessas duas rotas o valor não deduplica nada: para repetir uma chamada de propósito, mande um valor novo. Aceita [A-Za-z0-9_.:-], até 200 caracteres; valor fora disso é ignorado e o motor cunha o próprio. */
@@ -3520,7 +3582,7 @@ export interface operations {
3520
3582
  data: ({
3521
3583
  id: string;
3522
3584
  /** @enum {string} */
3523
- type: "PROCESS" | "OAB" | "TERM" | "PARTY";
3585
+ type: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
3524
3586
  /** @enum {string} */
3525
3587
  status: "ACTIVE" | "PAUSED" | "DISABLED" | "ERROR";
3526
3588
  label?: string | null;
@@ -3531,6 +3593,7 @@ export interface operations {
3531
3593
  oabState?: string | null;
3532
3594
  term?: string | null;
3533
3595
  partyName?: string | null;
3596
+ partyDocument?: string | null;
3534
3597
  /** Format: date-time */
3535
3598
  lastCheckedAt?: string | null;
3536
3599
  /** Format: date-time */
@@ -3763,7 +3826,7 @@ export interface operations {
3763
3826
  content: {
3764
3827
  "application/json": {
3765
3828
  /** @enum {string} */
3766
- type: "PROCESS" | "OAB" | "TERM" | "PARTY";
3829
+ type: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
3767
3830
  label?: string;
3768
3831
  tribunalAlias?: string;
3769
3832
  processNumber?: string;
@@ -3771,6 +3834,10 @@ export interface operations {
3771
3834
  oabState?: string;
3772
3835
  term?: string;
3773
3836
  partyName?: string;
3837
+ /** @description CNPJ vigiado no teor, nos 14 dígitos ou pontuado; normalizado para NN.NNN.NNN/NNNN-NN. CPF é recusado. */
3838
+ partyDocument?: string;
3839
+ /** @description Com true, busca pela raiz de 8 dígitos do CNPJ (NN.NNN.NNN) e alcança a matriz e todas as filiais; muda a contagem. Padrão false: só o estabelecimento informado. */
3840
+ includeBranches?: boolean;
3774
3841
  distributedAt?: string;
3775
3842
  };
3776
3843
  };
@@ -3786,7 +3853,7 @@ export interface operations {
3786
3853
  data: {
3787
3854
  id: string;
3788
3855
  /** @enum {string} */
3789
- type: "PROCESS" | "OAB" | "TERM" | "PARTY";
3856
+ type: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
3790
3857
  /** @enum {string} */
3791
3858
  status: "ACTIVE" | "PAUSED" | "DISABLED" | "ERROR";
3792
3859
  label?: string | null;
@@ -3797,6 +3864,7 @@ export interface operations {
3797
3864
  oabState?: string | null;
3798
3865
  term?: string | null;
3799
3866
  partyName?: string | null;
3867
+ partyDocument?: string | null;
3800
3868
  /** Format: date-time */
3801
3869
  lastCheckedAt?: string | null;
3802
3870
  /** Format: date-time */
@@ -4277,7 +4345,7 @@ export interface operations {
4277
4345
  data: {
4278
4346
  id: string;
4279
4347
  /** @enum {string} */
4280
- type: "PROCESS" | "OAB" | "TERM" | "PARTY";
4348
+ type: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
4281
4349
  /** @enum {string} */
4282
4350
  status: "ACTIVE" | "PAUSED" | "DISABLED" | "ERROR";
4283
4351
  label?: string | null;
@@ -4288,6 +4356,7 @@ export interface operations {
4288
4356
  oabState?: string | null;
4289
4357
  term?: string | null;
4290
4358
  partyName?: string | null;
4359
+ partyDocument?: string | null;
4291
4360
  /** Format: date-time */
4292
4361
  lastCheckedAt?: string | null;
4293
4362
  /** Format: date-time */
@@ -4818,7 +4887,7 @@ export interface operations {
4818
4887
  data: {
4819
4888
  id: string;
4820
4889
  /** @enum {string} */
4821
- type: "PROCESS" | "OAB" | "TERM" | "PARTY";
4890
+ type: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
4822
4891
  /** @enum {string} */
4823
4892
  status: "ACTIVE" | "PAUSED" | "DISABLED" | "ERROR";
4824
4893
  label?: string | null;
@@ -4829,6 +4898,7 @@ export interface operations {
4829
4898
  oabState?: string | null;
4830
4899
  term?: string | null;
4831
4900
  partyName?: string | null;
4901
+ partyDocument?: string | null;
4832
4902
  /** Format: date-time */
4833
4903
  lastCheckedAt?: string | null;
4834
4904
  /** Format: date-time */
@@ -7091,6 +7161,10 @@ export interface operations {
7091
7161
  text?: string;
7092
7162
  partyName?: string;
7093
7163
  lawyerName?: string;
7164
+ /** @description CNPJ citado no teor, nos 14 dígitos ou pontuado; normalizado para NN.NNN.NNN/NNNN-NN. Acha a empresa citada no ato antes de ela ser parte. CPF é recusado. */
7165
+ partyDocument?: string;
7166
+ /** @description Com true, busca pela raiz de 8 dígitos do CNPJ (NN.NNN.NNN) e alcança a matriz e todas as filiais; muda a contagem. Padrão false: só o estabelecimento informado. */
7167
+ includeBranches?: boolean;
7094
7168
  availableFrom?: string;
7095
7169
  availableTo?: string;
7096
7170
  page?: number;
@@ -7162,6 +7236,11 @@ export interface operations {
7162
7236
  /** @description Órgão julgador da publicação, como a fonte o escreve. Presente nos dois eixos; `null` quando a fonte não o declara. */
7163
7237
  courtBody?: string | null;
7164
7238
  shareable?: boolean;
7239
+ /**
7240
+ * @description Como o item casou a consulta por documento: `document` = o CNPJ consta no teor, a empresa foi citada no ato. Compare com `parties` para saber se ela já figura como parte.
7241
+ * @enum {string}
7242
+ */
7243
+ matchedBy?: "document";
7165
7244
  rawPayload?: unknown;
7166
7245
  }[];
7167
7246
  sourceItemCount?: number;
@@ -7729,6 +7808,11 @@ export interface operations {
7729
7808
  /** @description Órgão julgador da publicação, como a fonte o escreve. Presente nos dois eixos; `null` quando a fonte não o declara. */
7730
7809
  courtBody?: string | null;
7731
7810
  shareable?: boolean;
7811
+ /**
7812
+ * @description Como o item casou a consulta por documento: `document` = o CNPJ consta no teor, a empresa foi citada no ato. Compare com `parties` para saber se ela já figura como parte.
7813
+ * @enum {string}
7814
+ */
7815
+ matchedBy?: "document";
7732
7816
  } & {
7733
7817
  [key: string]: unknown;
7734
7818
  }) | null;
@@ -8086,6 +8170,11 @@ export interface operations {
8086
8170
  /** @description Órgão julgador da publicação, como a fonte o escreve. Presente nos dois eixos; `null` quando a fonte não o declara. */
8087
8171
  courtBody?: string | null;
8088
8172
  shareable?: boolean;
8173
+ /**
8174
+ * @description Como o item casou a consulta por documento: `document` = o CNPJ consta no teor, a empresa foi citada no ato. Compare com `parties` para saber se ela já figura como parte.
8175
+ * @enum {string}
8176
+ */
8177
+ matchedBy?: "document";
8089
8178
  } & {
8090
8179
  [key: string]: unknown;
8091
8180
  }) | null;
@@ -9888,6 +9977,11 @@ export interface operations {
9888
9977
  /** @description Órgão julgador da publicação, como a fonte o escreve. Presente nos dois eixos; `null` quando a fonte não o declara. */
9889
9978
  courtBody?: string | null;
9890
9979
  shareable?: boolean;
9980
+ /**
9981
+ * @description Como o item casou a consulta por documento: `document` = o CNPJ consta no teor, a empresa foi citada no ato. Compare com `parties` para saber se ela já figura como parte.
9982
+ * @enum {string}
9983
+ */
9984
+ matchedBy?: "document";
9891
9985
  } & {
9892
9986
  [key: string]: unknown;
9893
9987
  };
@@ -11003,6 +11097,8 @@ export interface operations {
11003
11097
  backgroundWork: number;
11004
11098
  credits: number;
11005
11099
  }[];
11100
+ subTenantLimit: number | null;
11101
+ subTenantsUsed: number;
11006
11102
  recentEvents: {
11007
11103
  requestId: string;
11008
11104
  kind: string;
@@ -11012,6 +11108,10 @@ export interface operations {
11012
11108
  credits: number;
11013
11109
  /** Format: date-time */
11014
11110
  createdAt: string;
11111
+ /** @description O código do erro que recusou a requisição ou o trabalho de fundo. Ausente quando foi servido. */
11112
+ errorCode?: string;
11113
+ /** @description Num 400 de validação, os campos recusados em notação de ponto (`root` é o corpo ou a query inteira). Só o nome do campo, nunca o valor enviado. */
11114
+ fieldPaths?: string[];
11015
11115
  }[];
11016
11116
  };
11017
11117
  meta: {
@@ -11247,6 +11347,10 @@ export interface operations {
11247
11347
  suspendedAt: string | null;
11248
11348
  /** Format: date-time */
11249
11349
  oldestPendingAt: string | null;
11350
+ /** Format: date-time */
11351
+ lastTestAt: string | null;
11352
+ lastTestStatus: number | null;
11353
+ lastTestError: string | null;
11250
11354
  } & {
11251
11355
  [key: string]: unknown;
11252
11356
  })[];
@@ -11685,6 +11789,242 @@ export interface operations {
11685
11789
  };
11686
11790
  };
11687
11791
  };
11792
+ listUnsubscribedEventTypes: {
11793
+ parameters: {
11794
+ query?: never;
11795
+ header?: {
11796
+ /** @description Identificador da requisição escolhido pelo cliente, ecoado em meta.requestId e no corpo de erro. Tem DOIS papéis: (1) rastreio, em toda rota — é por ele que o suporte encontra a chamada; (2) idempotência por conta em POST /v1/publications/text-searches e POST /v1/search-jobs, onde reenviar o mesmo valor reapresenta o resultado já produzido, sem nova cobrança. Fora dessas duas rotas o valor não deduplica nada: para repetir uma chamada de propósito, mande um valor novo. Aceita [A-Za-z0-9_.:-], até 200 caracteres; valor fora disso é ignorado e o motor cunha o próprio. */
11797
+ "x-request-id"?: string;
11798
+ /** @description Atribui a chamada a um sub-tenant seu (por exemplo, um escritório) na medição de uso e no roteamento de eventos. Opcional. */
11799
+ "x-office-id"?: string;
11800
+ };
11801
+ path?: never;
11802
+ cookie?: never;
11803
+ };
11804
+ requestBody?: never;
11805
+ responses: {
11806
+ /** @description Resposta padrão */
11807
+ 200: {
11808
+ headers: {
11809
+ [name: string]: unknown;
11810
+ };
11811
+ content: {
11812
+ "application/json": {
11813
+ data: {
11814
+ windowDays: number;
11815
+ items: ({
11816
+ /** @enum {string} */
11817
+ type: "PROCESS_MOVEMENT_CREATED" | "PUBLICATION_CREATED" | "MONITOR_SYNC_SUCCEEDED" | "MONITOR_SYNC_FAILED" | "SEARCH_JOB_COMPLETED" | "PUBLICATION_TEXT_ALERT_MATCHED" | "PUBLICATION_HARVEST_COMPLETED" | "QUOTA_LOW" | "PERIOD_ENDING" | "SUBSCRIPTION_PAST_DUE";
11818
+ /** @enum {string} */
11819
+ class: "DATA" | "OPERATIONAL";
11820
+ count: number;
11821
+ /** Format: date-time */
11822
+ lastOccurredAt: string;
11823
+ } & {
11824
+ [key: string]: unknown;
11825
+ })[];
11826
+ dismissed: ({
11827
+ /** @enum {string} */
11828
+ type: "PROCESS_MOVEMENT_CREATED" | "PUBLICATION_CREATED" | "MONITOR_SYNC_SUCCEEDED" | "MONITOR_SYNC_FAILED" | "SEARCH_JOB_COMPLETED" | "PUBLICATION_TEXT_ALERT_MATCHED" | "PUBLICATION_HARVEST_COMPLETED" | "QUOTA_LOW" | "PERIOD_ENDING" | "SUBSCRIPTION_PAST_DUE";
11829
+ /** Format: date-time */
11830
+ dismissedAt: string;
11831
+ } & {
11832
+ [key: string]: unknown;
11833
+ })[];
11834
+ };
11835
+ meta: {
11836
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
11837
+ requestId: string;
11838
+ credits?: number;
11839
+ cacheHit?: boolean;
11840
+ } & {
11841
+ [key: string]: unknown;
11842
+ };
11843
+ };
11844
+ };
11845
+ };
11846
+ /** @description Resposta padrão */
11847
+ 400: {
11848
+ headers: {
11849
+ [name: string]: unknown;
11850
+ };
11851
+ content: {
11852
+ "application/json": {
11853
+ error: {
11854
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
11855
+ code: string;
11856
+ /** @description Descrição legível, sujeita a mudança. */
11857
+ message: string;
11858
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
11859
+ requestId: string;
11860
+ /**
11861
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
11862
+ * @enum {string}
11863
+ */
11864
+ class: "RETRYABLE" | "TERMINAL";
11865
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
11866
+ retryable: boolean;
11867
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
11868
+ upstreamStatus?: number;
11869
+ details: {
11870
+ [key: string]: unknown;
11871
+ };
11872
+ };
11873
+ };
11874
+ };
11875
+ };
11876
+ /** @description Resposta padrão */
11877
+ 401: {
11878
+ headers: {
11879
+ [name: string]: unknown;
11880
+ };
11881
+ content: {
11882
+ "application/json": {
11883
+ error: {
11884
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
11885
+ code: string;
11886
+ /** @description Descrição legível, sujeita a mudança. */
11887
+ message: string;
11888
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
11889
+ requestId: string;
11890
+ /**
11891
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
11892
+ * @enum {string}
11893
+ */
11894
+ class: "RETRYABLE" | "TERMINAL";
11895
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
11896
+ retryable: boolean;
11897
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
11898
+ upstreamStatus?: number;
11899
+ details: {
11900
+ [key: string]: unknown;
11901
+ };
11902
+ };
11903
+ };
11904
+ };
11905
+ };
11906
+ /** @description Resposta padrão */
11907
+ 402: {
11908
+ headers: {
11909
+ [name: string]: unknown;
11910
+ };
11911
+ content: {
11912
+ "application/json": {
11913
+ error: {
11914
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
11915
+ code: string;
11916
+ /** @description Descrição legível, sujeita a mudança. */
11917
+ message: string;
11918
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
11919
+ requestId: string;
11920
+ /**
11921
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
11922
+ * @enum {string}
11923
+ */
11924
+ class: "RETRYABLE" | "TERMINAL";
11925
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
11926
+ retryable: boolean;
11927
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
11928
+ upstreamStatus?: number;
11929
+ details: {
11930
+ [key: string]: unknown;
11931
+ };
11932
+ };
11933
+ };
11934
+ };
11935
+ };
11936
+ /** @description Resposta padrão */
11937
+ 403: {
11938
+ headers: {
11939
+ [name: string]: unknown;
11940
+ };
11941
+ content: {
11942
+ "application/json": {
11943
+ error: {
11944
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
11945
+ code: string;
11946
+ /** @description Descrição legível, sujeita a mudança. */
11947
+ message: string;
11948
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
11949
+ requestId: string;
11950
+ /**
11951
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
11952
+ * @enum {string}
11953
+ */
11954
+ class: "RETRYABLE" | "TERMINAL";
11955
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
11956
+ retryable: boolean;
11957
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
11958
+ upstreamStatus?: number;
11959
+ details: {
11960
+ [key: string]: unknown;
11961
+ };
11962
+ };
11963
+ };
11964
+ };
11965
+ };
11966
+ /** @description Resposta padrão */
11967
+ 429: {
11968
+ headers: {
11969
+ [name: string]: unknown;
11970
+ };
11971
+ content: {
11972
+ "application/json": {
11973
+ error: {
11974
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
11975
+ code: string;
11976
+ /** @description Descrição legível, sujeita a mudança. */
11977
+ message: string;
11978
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
11979
+ requestId: string;
11980
+ /**
11981
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
11982
+ * @enum {string}
11983
+ */
11984
+ class: "RETRYABLE" | "TERMINAL";
11985
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
11986
+ retryable: boolean;
11987
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
11988
+ upstreamStatus?: number;
11989
+ details: {
11990
+ [key: string]: unknown;
11991
+ };
11992
+ };
11993
+ };
11994
+ };
11995
+ };
11996
+ /** @description Resposta padrão */
11997
+ 500: {
11998
+ headers: {
11999
+ [name: string]: unknown;
12000
+ };
12001
+ content: {
12002
+ "application/json": {
12003
+ error: {
12004
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
12005
+ code: string;
12006
+ /** @description Descrição legível, sujeita a mudança. */
12007
+ message: string;
12008
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
12009
+ requestId: string;
12010
+ /**
12011
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
12012
+ * @enum {string}
12013
+ */
12014
+ class: "RETRYABLE" | "TERMINAL";
12015
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
12016
+ retryable: boolean;
12017
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
12018
+ upstreamStatus?: number;
12019
+ details: {
12020
+ [key: string]: unknown;
12021
+ };
12022
+ };
12023
+ };
12024
+ };
12025
+ };
12026
+ };
12027
+ };
11688
12028
  listEvents: {
11689
12029
  parameters: {
11690
12030
  query?: {
@@ -11725,6 +12065,8 @@ export interface operations {
11725
12065
  deliveries: {
11726
12066
  total: number;
11727
12067
  delivered: number;
12068
+ failed: number;
12069
+ pending: number;
11728
12070
  };
11729
12071
  } & {
11730
12072
  [key: string]: unknown;
@@ -11956,6 +12298,8 @@ export interface operations {
11956
12298
  deliveries: {
11957
12299
  total: number;
11958
12300
  delivered: number;
12301
+ failed: number;
12302
+ pending: number;
11959
12303
  };
11960
12304
  } & {
11961
12305
  [key: string]: unknown;
@@ -12212,10 +12556,20 @@ export interface operations {
12212
12556
  isActive: boolean;
12213
12557
  /** Format: date-time */
12214
12558
  suspendedAt: string | null;
12559
+ /** Format: date-time */
12560
+ lastTestAt: string | null;
12561
+ lastTestStatus: number | null;
12562
+ lastTestError: string | null;
12215
12563
  project: {
12216
12564
  id: string;
12217
12565
  name: string;
12218
12566
  } | null;
12567
+ reach: {
12568
+ /** @enum {string} */
12569
+ scope: "ACCOUNT" | "PROJECT";
12570
+ projects: number;
12571
+ includesFutureProjects: boolean;
12572
+ };
12219
12573
  }[];
12220
12574
  meta: {
12221
12575
  /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
@@ -12452,10 +12806,20 @@ export interface operations {
12452
12806
  isActive: boolean;
12453
12807
  /** Format: date-time */
12454
12808
  suspendedAt: string | null;
12809
+ /** Format: date-time */
12810
+ lastTestAt: string | null;
12811
+ lastTestStatus: number | null;
12812
+ lastTestError: string | null;
12455
12813
  project: {
12456
12814
  id: string;
12457
12815
  name: string;
12458
12816
  } | null;
12817
+ reach: {
12818
+ /** @enum {string} */
12819
+ scope: "ACCOUNT" | "PROJECT";
12820
+ projects: number;
12821
+ includesFutureProjects: boolean;
12822
+ };
12459
12823
  };
12460
12824
  signingSecret: string;
12461
12825
  };
@@ -12915,10 +13279,20 @@ export interface operations {
12915
13279
  isActive: boolean;
12916
13280
  /** Format: date-time */
12917
13281
  suspendedAt: string | null;
13282
+ /** Format: date-time */
13283
+ lastTestAt: string | null;
13284
+ lastTestStatus: number | null;
13285
+ lastTestError: string | null;
12918
13286
  project: {
12919
13287
  id: string;
12920
13288
  name: string;
12921
13289
  } | null;
13290
+ reach: {
13291
+ /** @enum {string} */
13292
+ scope: "ACCOUNT" | "PROJECT";
13293
+ projects: number;
13294
+ includesFutureProjects: boolean;
13295
+ };
12922
13296
  };
12923
13297
  meta: {
12924
13298
  /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */