Templates de facturas (Vero Template)
Desenha o aspecto das tuas facturas, recibos e notas em React e Tailwind CSS com a biblioteca @veroao/invoice, e usa o template no Vero. As regras da AGT vêm incluídas: o template só muda o aspecto, tudo o que é fiscal vem sempre do documento. Galeria e documentação completa em template.vero.ao.
Começar
npx @veroao/invoice init minhas-facturas # projecto com templates/invoice.tsx
cd minhas-facturas && npm install
npx @veroao/invoice dev # pré-visualização ao vivo em http://localhost:3200
npx @veroao/invoice check # as mesmas verificações que o Vero fazO dev redesenha o PDF sempre que gravas, nos cinco tipos de documento (FT, FR, NC, ND, RC), e mostra os erros com o componente e o motivo.
Um template
import { Tailwind, Document, Row, Logo, DocumentTitle, DocumentNumber,
DocumentDate, Customer, Issuer, Items, Totals, LegalNotes } from "@veroao/invoice"
export default function MyInvoice() {
return (
<Tailwind config={{ theme: { extend: { colors: { brand: "#0E4C63" } } } }}>
<Document className="bg-white px-12 pt-10 text-[11px]">
<Row className="items-start justify-between">
<Logo className="h-12" />
<DocumentTitle className="text-3xl font-bold uppercase text-brand" />
</Row>
<Row className="mt-8 gap-6">
<Customer className="flex-1 border border-zinc-200 p-3" />
<Issuer className="flex-1" />
</Row>
<Row className="mt-6 justify-between">
<DocumentNumber className="font-bold" />
<DocumentDate />
</Row>
<Items className="mt-3" rowClassName="border-b border-zinc-200 even:bg-zinc-50" />
<Totals className="ml-auto mt-4 w-1/2" totalClassName="text-xl font-bold text-brand" />
<LegalNotes className="mt-6 text-[9px] text-zinc-500" />
</Document>
</Tailwind>
)
}- Componentes próprios, listas e condições funcionam. Hooks não: um template não tem estado.
- Classes que não existem num PDF (
hover:,md:, sombras, grelha CSS) dão erro a explicar porquê. - Lista completa de componentes e classes suportadas em template.vero.ao/componentes.
Usar no Vero
- No
dev, carrega em JSON para o Vero. Ou, num template da galeria, carrega em Abrir no Vero. - No dashboard: Definições › Template de facturas › Importar template. O Vero valida o template e mostra-o com os dados da tua empresa.
- Importar e usar. Os documentos emitidos a partir daí usam o template; os já emitidos não mudam - cada documento fica preso à versão do template com que foi emitido.
Importar templates é do plano Pro. Os templates do Vero (Clássico, Simples, Moderno) estão disponíveis em todos os planos.
O que é sempre do Vero
O Vero só recebe JSON - nunca executa código de terceiros - e recusa templates com dados fiscais ou de pagamento escritos à mão. Estes elementos vêm sempre do documento, seja qual for o template:
- Número, data, ATCUD, assinatura e a menção do programa certificado em todas as páginas.
- NIF do emitente e do cliente, linhas, totais e IVA por taxa.
- Código QR da AGT no canto inferior direito da última página (a pró-forma não leva).
- Retenção na fonte, regime simplificado, isenções e marca de água dos anulados, quando se aplicam.
Mais em Compliance AGT.
PDF no teu próprio sistema
A biblioteca também funciona sem o Vero: passas o template e os dados do documento e recebes o PDF.
import { render, sampleDocument } from "@veroao/invoice"
import MyInvoice from "./templates/invoice"
const { pdf, warnings } = await render(<MyInvoice />, sampleDocument("FT")) // pdf: Uint8ArrayPublicar na galeria
O projecto é open source (MIT) em github.com/Eterim/vero-template. Para partilhar um template com toda a gente, abre um pull request com a pasta templates/<nome>/. A CI verifica as regras da AGT e a segurança, e a equipa revê antes de publicar. Passo a passo em Publicar na galeria.
Com agentes de IA
Usas Claude Code, Cursor ou Codex? Instala as skills do Vero e o agente passa a saber criar templates e integrar a API:
npx skills add Eterim/veroao