Visão Geral
A API de faturação Invovate permite que os programadores gerem faturas profissionais com uma única chamada HTTP POST. Pode escolher entre uma resposta JSON estruturada com todos os cálculos ou um download direto em PDF. A API suporta 11 idiomas, mais de 20 moedas e 5 modelos de design — ideal para freelancers, empresas SaaS e aplicações contabilísticas em Portugal e no Brasil.
Gratuito para começar
40 pedidos/hora, sem cartão de crédito
JSON ou PDF
Escolha o formato de saída
Cálculo de IVA
Por linha ou global
Multilíngue
pt, en, fr, de, es e mais
https://invovate.com/api
Início Rápido
A sua primeira fatura em três passos:
Registe-se gratuitamente em invovate.com e verifique o seu endereço de e-mail.
Vá ao painel e clique em "Gerar chave API". A sua chave começa com
inv_.
Autenticação
A API suporta três métodos de autenticação:
1. Chave API (recomendado para uso no servidor)
2. Cookie de sessão (para aplicações web)
Se estiver autenticado através do browser, o cookie inv_session é enviado automaticamente.
3. Anónimo (sem autenticação)
Chamadas sem autenticação são possíveis mas limitadas a saída JSON e restritas por endereço IP. Útil para testar a API.
Limites e Planos
| Plano | Preço | Por hora | Por semana |
|---|---|---|---|
| Gratuito | 0 € | 40 | 400 |
| Starter | 9 €/mês | 200 | 4.000 |
| Pro | 29 €/mês | 1.000 | 40.000 |
| Enterprise | Sob consulta | Ilimitado | Ilimitado |
Os limites são devolvidos nos cabeçalhos da resposta:
Gerar Fatura
Gera uma fatura e devolve um JSON com todos os cálculos ou um ficheiro PDF binário.
Formato do Pedido
Emitente (from)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| from.name | string | Sim | Nome da sua empresa |
| from.address | string | Não | Morada da sua empresa |
| from.email | string | Não | O seu endereço de e-mail |
| from.tax_id | string | Não | NIF/CNPJ (ex. PT123456789) |
Destinatário (to)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| to.name | string | Sim | Nome do cliente ou empresa |
| to.address | string | Não | Morada do cliente |
| to.email | string | Não | E-mail do cliente |
Dados da fatura (invoice)
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| invoice.number | string | Auto | Número da fatura |
| invoice.date | string | Hoje | Data de emissão (AAAA-MM-DD) |
| invoice.due_date | string | — | Data de vencimento (AAAA-MM-DD) |
| invoice.currency | string | USD | Código de moeda (ex. EUR ou BRL) |
| invoice.language | string | en | Código de idioma (ex. pt) |
| invoice.terms | string | — | Condições de pagamento |
| invoice.po_number | string | — | Número de encomenda |
Linhas (items array)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| description | string | Sim | Descrição do produto ou serviço |
| quantity | number | Sim | Quantidade |
| unit_price | number | Sim | Preço unitário (sem IVA) |
| discount | number | Não | Desconto (percentagem ou valor) |
| discount_type | string | percent | "percent" ou "amount" |
| tax_rate | number | Não | Taxa de IVA por linha (ex. 23) |
Outros campos
| Campo | Tipo | Descrição |
|---|---|---|
| global_tax | number | IVA global (aplicado se não houver taxa por linha) |
| global_discount | number | Desconto sobre o total |
| amount_paid | number | Valor já pago (para pagamento parcial) |
| notes | string | Notas no rodapé da fatura |
| template | string | Nome do modelo: classic, modern, bold, minimal, navy |
| output | string | "json" (padrão) ou "pdf" |
Formato da Resposta
Resposta JSON (output: "json")
Resposta PDF (output: "pdf")
Devolve um ficheiro PDF binário com os seguintes cabeçalhos:
Códigos de Erro
| Estado HTTP | Significado |
|---|---|
| 400 | Erro de validação — verifique o formato do pedido |
| 401 | Autenticação necessária ou chave API inválida |
| 403 | Endereço de e-mail não verificado |
| 429 | Limite de taxa excedido |
| 500 | Erro interno do servidor |
Endpoints de Autenticação
| Método | Caminho | Descrição |
|---|---|---|
| POST | /api/auth/register | Criar conta com e-mail e palavra-passe |
| POST | /api/auth/login | Iniciar sessão, devolve cookie de sessão |
| POST | /api/auth/logout | Terminar sessão |
| GET | /api/auth/me | Obter dados do utilizador atual e chave API |
| POST | /api/auth/generate-api-key | Gerar nova chave API (e-mail verificado obrigatório) |
Exemplos de Código
cURL — Fatura PDF com IVA português
JavaScript (Node.js)
Python
Idiomas Suportados
| Código | Idioma | Direção |
|---|---|---|
pt | Português | LTR |
en | Inglês | LTR |
de | Alemão | LTR |
fr | Francês | LTR |
nl | Neerlandês | LTR |
es | Espanhol | LTR |
it | Italiano | LTR |
ru | Russo | LTR |
hi | Hindi | LTR |
ja | Japonês | LTR |
ar | Árabe | RTL |
Modelos PDF
| Nome | Estilo |
|---|---|
classic | Azul como destaque, linhas cinzentas alternadas (padrão) |
modern | Teal/ciano, design moderno e limpo |
bold | Cabeçalho antracite escuro, alto contraste |
minimal | Cinzento claro, sem bordas |
navy | Cabeçalho azul marinho com linha dourada |
Moedas Suportadas
EUR, BRL, USD, GBP, JPY, CAD, AUD, CHF, CNY, INR, AED, SAR, SGD, NZD, KRW, MXN, ZAR, SEK, NOK, DKK