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

# Criar peça jurídica a partir de um modelo

> Cria a peça em Meus Documentos com o modelo preenchido e devolve o `id`. A peça abre no editor como as criadas pelo Juridiq: leva o papel timbrado quando o escritório o aplica automaticamente e dispara as automações de peça criada.

De onde sai cada valor (campos em GET /docs/templates/{id}):
- `values` vence todos: a chave é o marcador sem chaves (`PERSONALIZED.valor`, `PERSON.name.2`) e `""` apaga o marcador. Chave que o modelo não tem é ignorada;
- `{{PERSON.<campo>}}` e `{{PERSON.<campo>.1}}`: o cliente de `personId`, com os dados de GET /person/{id}. Só `personId` preenche PERSON e põe a peça na pasta do cliente; `lawSuitId` sozinho não escolhe cliente;
- `{{LAW_SUIT.<campo>}}`: o processo de `lawSuitId`, com os dados de GET /lawSuit/{id} (ex.: valor da causa em R$);
- `{{GENERAL.date}}` e `{{GENERAL.time}}`: agora, no horário de Brasília.

O que fica sem valor (inclusive campo vazio no cadastro) continua como marcador no texto e volta em `unresolved`, para completar no editor ou criar de novo com `values`. Marcador partido entre trechos de formatação diferente e campo antigo do editor não são trocados nem entram em `unresolved`.

Com `personId` e `lawSuitId` juntos, o cliente tem de ser parte do processo.

**Permissão:** qualquer usuário do escritório da chave; cliente e processo privados seguem a privacidade dele.

**Erros:** 400 com campo fora do contrato ou quando o cliente não é parte do processo. 403 quando o cliente ou o processo é privado e o dono da chave não tem acesso; também 403 quando a chave é do Claude e o plano do escritório não inclui o MCP, ou quando o acesso do escritório está bloqueado. 404 quando o modelo, o cliente ou o processo não existe neste escritório. 413 quando o corpo passa de 1 MB.



## OpenAPI

````yaml https://api.juridiq.com.br/api-docs/client/openapi.json post /docs/from-template
openapi: 3.1.0
info:
  title: Juridiq API — Documentação para Integradores
  description: >-
    API REST para integradores autenticados com chave (`x-juridiq-api-key`).


    ## Rate limit


    A API aberta limita **120 requisições a cada 60s por chave**.

    Ao exceder, a resposta é `429 Too Many Requests` com os headers
    `x-ratelimit-limit`, `x-ratelimit-remaining`, `x-ratelimit-reset` e
    `retry-after`.

    Respeite o `retry-after` antes de tentar de novo. Sincronizações em lote
    devem paginar e tratar 429 com backoff.
  version: 1.0.0
servers:
  - url: https://api.juridiq.com.br
    description: Production server
security:
  - apiKeyAuth: []
tags: []
paths:
  /docs/from-template:
    post:
      tags:
        - Documents
      summary: Criar peça jurídica a partir de um modelo
      description: >-
        Cria a peça em Meus Documentos com o modelo preenchido e devolve o `id`.
        A peça abre no editor como as criadas pelo Juridiq: leva o papel
        timbrado quando o escritório o aplica automaticamente e dispara as
        automações de peça criada.


        De onde sai cada valor (campos em GET /docs/templates/{id}):

        - `values` vence todos: a chave é o marcador sem chaves
        (`PERSONALIZED.valor`, `PERSON.name.2`) e `""` apaga o marcador. Chave
        que o modelo não tem é ignorada;

        - `{{PERSON.<campo>}}` e `{{PERSON.<campo>.1}}`: o cliente de
        `personId`, com os dados de GET /person/{id}. Só `personId` preenche
        PERSON e põe a peça na pasta do cliente; `lawSuitId` sozinho não escolhe
        cliente;

        - `{{LAW_SUIT.<campo>}}`: o processo de `lawSuitId`, com os dados de GET
        /lawSuit/{id} (ex.: valor da causa em R$);

        - `{{GENERAL.date}}` e `{{GENERAL.time}}`: agora, no horário de
        Brasília.


        O que fica sem valor (inclusive campo vazio no cadastro) continua como
        marcador no texto e volta em `unresolved`, para completar no editor ou
        criar de novo com `values`. Marcador partido entre trechos de formatação
        diferente e campo antigo do editor não são trocados nem entram em
        `unresolved`.


        Com `personId` e `lawSuitId` juntos, o cliente tem de ser parte do
        processo.


        **Permissão:** qualquer usuário do escritório da chave; cliente e
        processo privados seguem a privacidade dele.


        **Erros:** 400 com campo fora do contrato ou quando o cliente não é
        parte do processo. 403 quando o cliente ou o processo é privado e o dono
        da chave não tem acesso; também 403 quando a chave é do Claude e o plano
        do escritório não inclui o MCP, ou quando o acesso do escritório está
        bloqueado. 404 quando o modelo, o cliente ou o processo não existe neste
        escritório. 413 quando o corpo passa de 1 MB.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                templateId:
                  type: string
                  format: uuid
                  description: ID do modelo (campo id de GET /docs/templates)
                name:
                  type: string
                  minLength: 1
                  maxLength: 255
                  description: Nome da peça em Meus Documentos; sem ele, o nome do modelo
                personId:
                  type: string
                  format: uuid
                  description: >-
                    Cliente (GET /person): preenche {{PERSON.<campo>}} e
                    {{PERSON.<campo>.1}} e põe a peça na pasta dele
                lawSuitId:
                  type: string
                  format: uuid
                  description: 'Processo (GET /lawSuit): preenche {{LAW_SUIT.<campo>}}'
                values:
                  type: object
                  additionalProperties:
                    type: string
                    maxLength: 10000
                  description: >-
                    Valor por marcador, com a chave igual ao key de GET
                    /docs/templates/{id} (ex.: { "PERSONALIZED.valor": "R$
                    1.000,00", "PERSON.name.2": "Banco X" }). Vence o cliente, o
                    processo e a data; "" apaga o marcador. Até 100 valores de
                    até 10.000 caracteres
              required:
                - templateId
              additionalProperties: false
        required: true
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: ID da peça criada
                  name:
                    type: string
                    description: Nome da peça
                  personId:
                    type: string
                    format: uuid
                    nullable: true
                    description: Cliente em cuja pasta a peça está
                  createdAt:
                    type: string
                    format: date-time
                    description: Criação da peça (UTC)
                  unresolved:
                    type: array
                    items:
                      type: string
                    description: >-
                      Marcadores que ficaram sem valor, no formato de key, sem
                      repetição e na ordem do modelo
                required:
                  - id
                  - name
                  - personId
                  - createdAt
                  - unresolved
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      message:
                        type: string
                      issues: {}
                    required:
                      - message
                    additionalProperties: false
                  - type: object
                    properties:
                      message:
                        type: string
                      statusCode:
                        type: number
                      translateMessage:
                        type: string
                    required:
                      - message
                      - statusCode
                      - translateMessage
                    additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  statusCode:
                    type: number
                  translateMessage:
                    type: string
                required:
                  - message
                  - statusCode
                  - translateMessage
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  statusCode:
                    type: number
                  translateMessage:
                    type: string
                required:
                  - message
                  - statusCode
                  - translateMessage
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  statusCode:
                    type: number
                  translateMessage:
                    type: string
                required:
                  - message
                  - statusCode
                  - translateMessage
                additionalProperties: false
        '413':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  statusCode:
                    type: number
                  translateMessage:
                    type: string
                required:
                  - message
                  - statusCode
                  - translateMessage
                additionalProperties: false
      security:
        - apiKeyAuth: []
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-juridiq-api-key
      description: >-
        Chave de API do escritório (criada no painel). Envie o valor no header
        x-juridiq-api-key. A API aberta aplica rate limit por chave (veja a
        documentação de integradores).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.