DocxMiddleware

Documentação da API

Como usar

1. No seu Word, use a sintaxe Carbone

Cliente: {d.nome}
CPF: {d.cpf}
Valor total: R$ {d.valor}

Em parágrafos repetidos:
{d.itens[i].descricao} — {d.itens[i].quantidade}x R$ {d.itens[i].preco}
{d.itens[i+1].descricao}

Tabelas dinâmicas: em uma linha da tabela coloque tags {d.itens[i].campo}. Na linha imediatamente abaixo, coloque {d.itens[i+1]} (vazio basta). A primeira linha é replicada para cada item; a linha [i+1] é removida.

Objetos aninhados: use ponto — {d.cliente.endereco.rua}.

Formatadores (separados por :):

  • {d.valor:formatN(2)} — número com 2 casas (1.234,56)
  • {d.valor:formatC(2)} — moeda BRL (R$ 1.234,56)
  • {d.data:formatD(DD/MM/YYYY)} — data formatada
  • {d.itens[i].qtde:mul(.preco):formatN(2)} — multiplica por outro campo do MESMO item (note o .)
  • {d.itens[].qtde:mul(.preco):aggSum:formatC(2)} — soma total de todos os itens (use [])
  • Outras agregações: aggAvg, aggCount, aggMin, aggMax
  • Texto: upperCase, lowerCase, ifEmpty(texto)

2. Endpoints disponíveis

Existem dois endpoints — escolha conforme o formato de saída desejado:

  • POST /api/public/generate → retorna .docx
  • POST /api/public/generate-pdf → retorna .pdf (via Gotenberg)

3. Exemplo — gerar DOCX

POST https://template.gen360.com.br/api/public/generate
x-api-key: SUA_CHAVE
Content-Type: application/json

{
  "template_name": "contrato-locacao",
  "filename": "contrato-joao",
  "data": {
    "nome": "João Silva",
    "cpf": "000.000.000-00",
    "valor": "1.500,00",
    "itens": [
      { "descricao": "Item A", "quantidade": 2, "preco": "10,00" },
      { "descricao": "Item B", "quantidade": 1, "preco": "25,00" }
    ]
  }
}

4. Exemplo — gerar PDF

POST https://template.gen360.com.br/api/public/generate-pdf
x-api-key: SUA_CHAVE
Content-Type: application/json

{
  "template_name": "contrato-locacao",
  "filename": "contrato-joao",
  "data": { "nome": "João Silva", "valor": "1.500,00" }
}

O PDF é gerado pelo servidor Gotenberg configurado em Configurações do painel (padrão: demo público — 2 conversões/s, 5MB). O resultado preserva tabelas, imagens, fontes, cores e layout do Word.

5. cURL

# DOCX
curl -X POST https://template.gen360.com.br/api/public/generate \
  -H "x-api-key: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d @payload.json \
  --output documento.docx

# PDF
curl -X POST https://template.gen360.com.br/api/public/generate-pdf \
  -H "x-api-key: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d @payload.json \
  --output documento.pdf