---
title: Emitir contrato para assinatura
description: Gere o PDF de um ou mais templates de contrato com dados do fluxo e envie todos num único envelope de assinatura no Assina Oficial ou na ZapSign.
---

# Emitir contrato para assinatura  ·  `flow.contract.issue`

<Secao icon="info">Para que serve</Secao>

O nó preenche um ou mais **templates de contrato** com as variáveis do fluxo, gera **um PDF por template** e envia **todos no mesmo envelope** de assinatura. O cliente recebe um único link e assina tudo de uma vez.

Exemplo: o cliente contratou os produtos SINDSEP e QUADRIMESTRAL. O envelope sai com 3 PDFs: o contrato de honorários de cada produto e a Procuração + Declaração de hipossuficiência.

<Secao icon="clock">Quando usar</Secao>

- Fechar a contratação no próprio WhatsApp, logo depois de coletar os dados do cliente
- Enviar vários documentos (contratos por produto, procuração, declarações) para o cliente assinar de uma vez
- Montar o envelope conforme o que o cliente escolheu no fluxo (ex.: lista de produtos contratados)

---

## Pré-requisitos

- Pelo menos uma integração de assinatura **conectada**: **Assina Oficial** ou **ZapSign**. Os dois se conectam em **Conexões > Integrações**, pelos cards MCP: **Assina Oficial** (token do MCP Assina Oficial) e **ZapSign** (chave `ZAPSIGN_API_KEY`). A emissão usa essas conexões MCP; a antiga integração Assina Oficial com `api_key` não é mais usada para emitir contratos. Sem nenhuma, o nó aparece na paleta com um aviso para conectar o provedor, e o fluxo não publica.
- Os templates de contrato já criados em **Templates de contrato**.

---

## Campos

| Campo | O que faz |
|-------|-----------|
| **Template de contrato** (`template_id`) | Um template. Continua funcionando como antes. |
| **Templates de contrato** (`template_ids`) | Lista de templates. Gera 1 PDF por template, todos no mesmo envelope. |
| **Provedor de assinatura** | `Automático` (padrão), `Assina Oficial` ou `ZapSign`. O automático usa o padrão do **1º template** ou o único provedor conectado. |
| **Variáveis** | Mapa variável do template → valor (aceita <code v-pre>{{...}}</code>). É **compartilhado por todos os templates**: cada template usa as variáveis que tem. |
| **Signatários** | Quem assina. São os mesmos para todos os PDFs do envelope. O **Papel** segue a lista da Assina Oficial: `parte`, `contratante`, `contratado`, `socio`, `representante`, `procurador`, `administrador`, `presidente`, `testemunha`, `advogado`, `fiador`, `interveniente`, `anuente`, `responsavel`, `empregador` ou `empregado`. O padrão é `parte`. |
| **Enviar por WhatsApp / e-mail** | Como o provedor avisa os signatários. |
| **Validade (dias)** | De 1 a 90. Padrão: 15. |
| **Nome do envelope** | Opcional. Padrão: nome do **1º template**. |

Informe **Template de contrato**, **Templates de contrato** ou os dois. Sem nenhum, o fluxo não publica.

No painel, o nó aparece como **Emitir contrato**. Cada campo tem dois botões à esquerda, como na Ação na Plataforma: o **lápis** define um valor fixo (por exemplo, escolher os templates na lista e reordená-los) e o **(x)** usa uma variável do fluxo. Sem provedor conectado, o campo **Provedor** mostra um aviso com o link **Conectar provedor**.

### Como a lista de templates é montada

- **Ordem dos PDFs = ordem da lista.** Se você preencher **Template de contrato** e a lista, ele entra primeiro.
- **Duplicados são ignorados** (o mesmo template não sai duas vezes).
- Cada item da lista aceita <code v-pre>{{...}}</code>. A variável pode resolver para:
  - um ID de template;
  - uma lista de IDs (ex.: <code v-pre>{{flow.produtos_template_ids}}</code> com `["01J...A", "01J...B"]`);
  - um texto separado por vírgula (ex.: `01J...A,01J...B`).
- No máximo **15 templates** por envelope.

Exemplo para o caso Fiuza Dias: a lista recebe <code v-pre>{{flow.templates_dos_produtos}}</code> (um ID por produto contratado) e, por último, o ID fixo do template "Procuração + Declaração de hipossuficiência".

<Dica>

Cada PDF chega no envelope com o **nome do template** como título. Dê nomes claros aos templates (ex.: "Contrato de honorários SINDSEP").

</Dica>

---

## Variáveis obrigatórias

Antes de gerar qualquer PDF, o nó confere as variáveis obrigatórias de **todos** os templates da lista. Se faltar alguma, nada é gerado nem enviado e o erro diz qual variável falta e em qual template, por exemplo:

> A variavel cpf e obrigatoria (template Procuracao + Declaracao).

---

## Provedores

| Provedor | Vários PDFs no envelope |
|----------|------------------------|
| **Assina Oficial** | Sim. Um envelope com todos os PDFs. |
| **ZapSign** | Sim. O 1º PDF vira o documento principal e os demais entram como documentos extras (anexos) do mesmo documento. Limite da ZapSign: 15 PDFs. |

<Cuidado>

Modelos **importados da ZapSign** (DOCX que vive na ZapSign) não podem ser combinados com outros templates no mesmo envelope. Com um modelo ZapSign, use um template só.

</Cuidado>

---

## Saídas

| Saída | Conteúdo |
|-------|----------|
| `contract_document_id` | ID do documento emitido (um por envelope, mesmo com vários PDFs) |
| `provider` | `assina_oficial` ou `zapsign` |
| `envelope_id` | ID do envelope no provedor |
| `signature_url` | Link de assinatura do primeiro signatário |
| `signature_urls` | Links de todos os signatários |
| `status` | `sent` quando o envio deu certo |

---

## Documentos emitidos

Na tela **Documentos emitidos**, um envelope com vários PDFs aparece como **um único documento**, ligado ao 1º template. Ao abrir o documento, todos os PDFs do envelope ficam listados para download, na ordem de envio. O status de assinatura é o do envelope inteiro.
