Documentação
Manual do utilizador e referência da API — tudo sobre o sistema de faturação Faturiz.
Manual do Utilizador
Visão geral
O Faturiz é um sistema de faturação SaaS multi-tenant, desenvolvido em conformidade com a legislação fiscal portuguesa — Portaria n.º 363/2010, Decreto-Lei n.º 28/2019, e o Código do IVA (CIVA).
O sistema permite a múltiplas organizações gerir autonomamente a sua faturação, clientes, produtos, relatórios e configurações, tudo a partir de uma única plataforma segura e moderna.
Principais características:
•Emissão de todos os tipos de documentos fiscais portugueses
•Assinatura digital RSA-2048 (Portaria 363/2010)
•QR-Code obrigatório (DL 28/2019)
•SAF-T PT — exportação, importação e envio automático ao contabilista
•Dashboard com comparação multi-anual
•Faturação recorrente automatizada
•Conciliação bancária
•Integração euPago (Multibanco)
•Gestão multi-tenant com planos de subscrição
•Documentos bilingues (PT/EN)
Primeiros passos
Criar organização
Aceda à página de registo (/registo) e preencha:
•Nome da empresa — Denominação social completa
•NIF — Número de identificação fiscal (opcional no registo, obrigatório para faturação)
•Email e Palavra-passe do administrador
•Nome do administrador
Após o registo, será criada automaticamente uma organização com as configurações iniciais: empresa, taxas de IVA portuguesas, séries documentais para o ano corrente e templates de email padrão.
Configurar a empresa
Em Configurações → Empresa, preencha todos os dados fiscais obrigatórios:
•Nome, NIF, morada completa (rua, código postal, cidade)
•Email, telefone, website
•Capital social e representante legal
•Logo da empresa (aparece nos PDFs)
•Observações padrão (incluídas em todos os documentos)
•Texto de rodapé (impresso no fundo do PDF)
Estes dados são utilizados na emissão de documentos, no SAF-T e no QR-Code.
Configurar séries documentais
Em Configurações → Séries, cada tipo de documento tem uma série associada com:
•Tipo — FT, FR, RC, NC, ND, FS, ORC, GT, GR
•Prefixo — ex: "FT 2026"
•Ano — Ano fiscal
•Próximo número — Incremento automático
•Código ATCUD — Código de validação atribuído pela AT
As séries são criadas automaticamente no registo. Pode criar séries adicionais ou editar as existentes (desde que não tenham documentos emitidos).
Configurar taxas de IVA
Em Configurações → Taxas IVA, as taxas portuguesas são pré-configuradas:
•NOR — Taxa Normal 23% (Continente)
•INT — Taxa Intermédia 13% (Continente)
•RED — Taxa Reduzida 6% (Continente)
•ISE — Isento 0%
•NOR-AC — Taxa Normal Açores 16%
•NOR-MA — Taxa Normal Madeira 22%
Pode adicionar ou editar taxas conforme necessário. As taxas são partilhadas entre todas as organizações.
Tipos de documento
FT — Fatura
Documento fiscal principal. Requer seleção de cliente com NIF. Linhas com produtos/serviços, quantidades, preços unitários e taxa de IVA. Gera assinatura digital, ATCUD e QR-Code. Pode ter data de vencimento para controlo de pagamentos.
FR — Fatura-Recibo
Emissão simultânea de fatura e recibo. Funciona como uma FT mas regista automaticamente o pagamento total no momento da emissão. O documento aparece como "pago" imediatamente. Requer método de pagamento (Dinheiro, TB, MB, etc.).
FS — Fatura Simplificada
Para vendas a consumidores finais até €1.000 (Art.º 40.º CIVA). O NIF do cliente não é obrigatório — se não for indicado, assume "Consumidor Final". Sujeita às mesmas regras de assinatura digital.
RC — Recibo
Comprova o pagamento de uma fatura existente. Ao emitir, selecione a fatura de referência. O sistema atualiza automaticamente o estado de pagamento da fatura (pendente → parcial → pago). Suporta pagamentos parciais.
NC — Nota de Crédito
Retificação de uma fatura (devoluções, descontos pós-emissão, anulações parciais). Requer referência à fatura original e motivo da retificação. O valor da NC é abatido ao saldo do cliente.
ND — Nota de Débito
Correção em falta de valor numa fatura existente. Requer referência à fatura original. Funciona como um débito adicional ao cliente.
ORC — Orçamento
Proposta comercial sem valor fiscal. Tem uma data de validade ("válido até"). Pode ser:
•Aprovado — Muda o estado para "aprovado"
•Convertido — Gera automaticamente uma fatura (FT) com os mesmos dados
•Expirado — Quando a data de validade é ultrapassada
O orçamento mantém ligação ao documento gerado após conversão.
GT — Guia de Transporte / GR — Guia de Remessa
Documentos obrigatórios para circulação de mercadorias. Campos adicionais:
•Morada de carga e descarga (rua, código postal, cidade, país)
•Data/hora de início de transporte
•Matrícula do veículo
A GT é comunicada à AT antes do início do transporte. A GR acompanha a entrega.
Emitir documentos
Criar novo documento
Aceda a Documentos → Novo documento. O fluxo de emissão:
1.Selecione o tipo de documento (FT, FR, NC, etc.)
2.Selecione o cliente (combobox pesquisável por nome, NIF ou código)
3.As preferências do cliente são auto-preenchidas: idioma, método de pagamento, prazo de vencimento, motivo de isenção, observações
4.Adicione linhas com produto/serviço (combobox pesquisável), quantidade, preço unitário, desconto e taxa de IVA
5.Defina a data de emissão, data fiscal, data de vencimento
6.Para NC/ND: selecione o documento de referência
7.Para GT/GR: preencha os dados de transporte
8.Reveja os totais (subtotal, descontos, IVA por taxa, total)
9.Clique Emitir
O sistema gera automaticamente: número sequencial, assinatura digital RSA, ATCUD e QR-Code.
Auto-preenchimento
Ao selecionar um cliente, as seguintes preferências são preenchidas automaticamente (editáveis antes de emitir):
•Idioma — PT ou EN (afeta o PDF inteiro)
•Prazo de vencimento — Calcula data de vencimento automaticamente
•Método de pagamento — Pré-selecionado (TB, MB, NU, etc.)
•Motivo de isenção de IVA — Aplicado a linhas com taxa 0%
•Observações — Texto padrão do cliente
Estas preferências são configuradas na ficha do cliente (Clientes → Editar → Preferências de faturação).
Duplicar documentos
Na página de detalhe de qualquer documento, clique Duplicar para criar um novo documento pré-preenchido com os mesmos dados (cliente, linhas, observações). Útil para emitir documentos semelhantes sem reintroduzir toda a informação.
Cancelar documentos
Os documentos emitidos nunca são eliminados (requisito legal). Para anular, use o botão Cancelar na página de detalhe. O documento fica com estado "Cancelado" mas permanece no sistema e no SAF-T. Para corrigir valores, emita uma Nota de Crédito (NC).
PDF bilingue
Cada documento é renderizado em português ou inglês conforme o idioma selecionado na emissão (herdado das preferências do cliente). O PDF inclui:
•Cabeçalho com dados da empresa e logo
•Dados do cliente
•Tabela de linhas com descrição, quantidade, preço, desconto, IVA, total
•Resumo de IVA por taxa
•Totais (subtotal, descontos, IVA, total geral)
•Bloco Multibanco (se referência gerada)
•QR-Code (34mm, conforme DL 28/2019)
•ATCUD e hash de 4 caracteres
•Observações do documento e da empresa
•Texto de rodapé da empresa
Certificação AT
O sistema implementa os requisitos técnicos exigidos pela Autoridade Tributária:
Assinatura digital RSA-SHA1
Cada documento é assinado com chave RSA-2048 conforme a Portaria 363/2010:
•Fonte da assinatura: InvoiceDate + SystemEntryDate + InvoiceNo + GrossTotal + PreviousHash
•Algoritmo: SHA1withRSA (RSA-SHA1)
•As assinaturas são encadeadas — cada documento inclui o hash do documento anterior da mesma série
•A chave privada é armazenada em variável de ambiente segura (AT_RSA_PRIVATE_KEY_B64)
•A chave pública é derivada da privada em runtime
Se a chave RSA não estiver configurada, o sistema utiliza SHA-256 como fallback (modo teste, não certificado).
ATCUD
Código Único de Documento composto por:
•Código de validação — Atribuído pela AT a cada série documental (ex: AAJFJMVM)
•Número sequencial — Número do documento dentro da série
•Formato: VALIDATIONCODE-NUMBER (ex: "AAJFJMVM-1")
Configurado em Configurações → Séries → campo "Código ATCUD".
QR-Code (DL 28/2019)
Código QR incluído em todos os documentos conforme especificações da AT:
•Campos: NIF emitente, NIF cliente, país, tipo doc, data, número, ATCUD
•IVA detalhado: Base tributável e imposto por região (PT/PT-AC/PT-MA) e por taxa (Normal/Intermédia/Reduzida/Isenta)
•Totais: IVA total, total geral
•Hash: 4 caracteres nas posições 1, 11, 21, 31 da assinatura
•Nº certificação: Número do software certificado
•Tamanho: 300px, correção nível M, renderizado a 34mm no PDF
Dossier técnico
Em Configurações → Certificação AT, o sistema gera automaticamente o dossier técnico para submissão à AT com:
•Identificação do produtor de software
•Descrição funcional
•Algoritmos de hash utilizados
•Estrutura da base de dados
•Contadores de documentos emitidos
•Chave pública para verificação
•Declaração assinada
Gestão de clientes
Ficha de cliente
Cada cliente tem uma ficha completa acessível em Clientes → Nome do cliente:
•Dados fiscais: Nome, NIF, morada, código postal, cidade, país, email, telefone, código interno
•Notas: Campo livre para informações internas
•Resumo financeiro: 4 cards com total faturado, total recebido, em dívida, em atraso
•Documentos: Lista de todos os documentos emitidos ao cliente
•Recebimentos: Lista de todos os pagamentos recebidos
A partir da ficha pode: editar dados, emitir novo documento, arquivar/reativar, gerar link de conta corrente pública.
Preferências de faturação
Na ficha do cliente (tab "Preferências de faturação"), configure:
•Idioma — Português ou Inglês (o PDF é gerado inteiramente neste idioma)
•Método de pagamento padrão — TB, NU, MB, MBWAY, CC, CD, CH, OU
•Prazo de vencimento — Nº de dias após emissão (ex: 30, 60, 90)
•Motivo de isenção de IVA — Código AT (M07, M09, M19, M26, M30, M40)
•Observações padrão — Texto inserido automaticamente nos documentos
Ao emitir um documento, estas preferências são auto-preenchidas.
Conta corrente pública
Gere um link público da conta corrente do cliente:
1.Ficha do cliente → botão "Conta corrente"
2.O sistema gera um token único e copia o link para o clipboard
3.O cliente acede ao link sem autenticação e vê:
◦Dados da empresa
◦Extrato cronológico com débitos e créditos
◦Saldo acumulado
◦Filtros por data
◦Botão imprimir/PDF
O link pode ser revogado a qualquer momento.
Arquivo e pesquisa
•Arquivar: Clientes inativos podem ser arquivados (ficam ocultos por defeito na listagem)
•Reativar: Clientes arquivados podem ser reativados a qualquer momento
•Pesquisa: Pesquise por nome, NIF, email ou código
•Filtros persistentes: A pesquisa e filtros são guardados na sessão — ao navegar e voltar, os filtros mantêm-se
Produtos e serviços
Gerencie o catálogo de produtos e serviços em Produtos:
•Código — Código interno do produto (único por organização)
•Descrição — Nome/descrição do produto
•Tipo — Produto (P) ou Serviço (S)
•Unidade de medida — 20 unidades AT/SAF-T: UN (Unidade), H (Hora), DIA, MES, KG, L, M, M², M³, etc.
•Preço unitário — Preço sem IVA
•Taxa de IVA — Taxa aplicável
•Estado — Ativo ou Arquivado
A pesquisa é persistente e suporta paginação server-side. Ao emitir documentos, os produtos são selecionáveis via combobox pesquisável.
Pagamentos e recebimentos
Registar pagamentos
Em Recebimentos, registe pagamentos manualmente:
•Selecione o documento (fatura/nota de débito)
•Indique o valor pago (suporta pagamentos parciais)
•Selecione o método de pagamento
•O estado da fatura atualiza automaticamente: pendente → parcial → pago
Pagamentos podem ser eliminados (revertem o estado da fatura).
Métodos suportados
•NU — Numerário (dinheiro)
•TB — Transferência bancária
•MB — Multibanco
•MBWAY — MB WAY
•CC — Cartão de crédito
•CD — Cartão de débito
•CH — Cheque
•OU — Outro
Integração euPago (Multibanco)
Em Configurações → euPago, configure a integração:
1.Ative a integração e insira a API Key euPago
2.Escolha ambiente: Sandbox (testes) ou Live (produção)
3.Teste a ligação com o botão "Testar"
Após configurar:
•Na página de detalhe da fatura, clique "Gerar referência MB"
•O sistema gera: Entidade, Referência, Valor e Data limite
•A referência aparece no PDF e no email enviado ao cliente
•O callback euPago auto-confirma pagamentos (configura-se no backoffice euPago)
Conciliação bancária
Importe extratos bancários e reconcilie transações com documentos.
Em Conciliação:
1.Importar CSV — Faça upload do extrato bancário (CSV). O parser deteta automaticamente o separador, formato numérico e colunas (PT/EN)
2.Auto-matching — O sistema sugere correspondências com base em múltiplos critérios:
◦Valor exato (40 pontos)
◦Referência da fatura (50 pontos)
◦NIF do cliente (30 pontos)
◦Nome do cliente (20 pontos)
◦Data de vencimento (10 pontos)
3.Confiança: Alta (≥70pts), Média (≥45pts), Baixa (≥30pts)
4.Match manual — Para transações sem match automático, associe manualmente a um documento
5.Reconciliar — Confirme os matches e reconcilie em massa. O sistema regista os pagamentos automaticamente
Cada extrato mostra: cards de resumo, tabela de transações filtráveis, estado de reconciliação.
Faturação recorrente
Em Recorrentes, configure templates de faturação automática:
Criar template:
•Cliente, tipo de documento (FT ou FR)
•Cadência: mensal, trimestral, semestral, anual
•Dia do mês (1-28)
•Datas de início e fim
•Envio automático por email (sim/não)
•Método de pagamento, prazo de vencimento
•Idioma, observações
•Linhas com produtos, quantidades, preços e IVA
Execução automática:
•O sistema verifica diariamente os templates ativos com nextRun ≤ hoje
•Gera o documento com hash, ATCUD e QR-Code (idêntico a uma emissão manual)
•Avança a data de próxima execução
•Se autoSend ativo, envia o PDF por email ao cliente
•Notifica o administrador por email
•Falhas são registadas no histórico de execuções
Gestão:
•Pausar/retomar templates
•Executar agora (antecipa a próxima execução)
•Ver histórico de execuções (documento gerado, estado, erros)
Emails e notificações
Envio de documentos
Na página de detalhe de qualquer documento, clique "Enviar por email":
•O destinatário é pré-preenchido com o email do cliente
•O assunto e corpo são gerados a partir do template configurado
•O PDF do documento é anexado automaticamente
•Pode editar o assunto e corpo antes de enviar
•O histórico de envios é visível no fundo da página do documento
Templates de email
Em Configurações → Templates de Email, personalize os 5 templates:
•Envio de documento — Email com PDF em anexo
•Aviso de vencimento — Antes do vencimento
•Fatura em atraso — Após o vencimento
•SAF-T contabilista — Envio mensal do ficheiro fiscal
•Fatura recorrente gerada — Alerta ao administrador
Cada template suporta variáveis dinâmicas (nome do cliente, número do documento, valor, data de vencimento, etc.). É possível repor o template original a qualquer momento.
Avisos de vencimento
Em Configurações → Empresa → Notificações de Vencimento:
•Antes do vencimento — Quantos dias antes avisar o cliente (ex: 3 dias)
•Após o vencimento — Dias em que enviar lembretes (ex: 1, 7, 14, 30)
•Notificar cliente — Ativa/desativa emails ao cliente
•Notificar admin — Resumo diário para o administrador
•Email admin — Endereço para receber os resumos
Cada aviso é enviado apenas uma vez por threshold (sem duplicados).
SAF-T mensal para contabilista
Em Configurações → Empresa → Contabilidade:
•Emails do contabilista — Um ou mais endereços
•Dia do mês — Dia em que o SAF-T é gerado e enviado (ex: dia 5)
•Ativar/desativar — Switch de envio automático
•Enviar agora — Botão para forçar o envio imediato
O sistema gera o SAF-T do mês anterior e envia por email com o ficheiro XML em anexo.
SAF-T PT
Exportação
Em Relatórios → SAF-T, exporte o ficheiro SAF-T PT:
•Selecione o período (mês/ano)
•O ficheiro XML é gerado em conformidade com a estrutura 1.04_01 da AT
•Inclui: cabeçalho fiscal, clientes, produtos, tabela de IVA, documentos de vendas e recibos
•Por defeito exclui documentos importados de outros sistemas
•Opção "Incluir importados" para gerar SAF-T completo
Importação de outro software
Em Configurações → Importar SAF-T, migre dados de outro sistema:
1.Upload do ficheiro SAF-T XML
2.Análise — O sistema apresenta um resumo detalhado:
◦Clientes, produtos, documentos e recibos a importar
◦Distribuição por tipo de documento e série
◦Duplicados detetados (ignorados automaticamente)
◦Warnings de recibos órfãos (faturas de referência não encontradas)
3.Confirmação — Reveja o resumo e confirme
4.Importação — O sistema cria os registos:
◦Clientes: match por NIF (fallback por código)
◦Produtos: match por código
◦Documentos: marcados como importados (imported=true)
◦Séries legadas criadas como inativas
◦Hashes originais preservados
◦Recibos (RC): criam pagamentos associados às faturas
A validação de NIF garante que não importa dados de outra empresa.
Relatórios
8 relatórios disponíveis em Relatórios:
Valores pendentes
Faturas em aberto (FT/ND com estado pendente ou parcial). Agrupadas por documento com valor original, pago e em dívida. Notas de crédito são descontadas automaticamente.
Em dívida por cliente
Visão agregada por cliente: total em dívida, em atraso e em dia. Expansível para ver os documentos individuais de cada cliente. Cards resumo no topo.
Conta corrente
Extrato cronológico por cliente com:
•Seletor de cliente e filtros de data
•Débitos (FT, ND) e créditos (NC, RC)
•FR gera débito + crédito na mesma data
•Saldo acumulado em cada linha
•Deduplicação inteligente de pagamentos vs. auto-recibos FR
•Exportação CSV
Antiguidade de saldos (Aging)
Análise por escalões de antiguidade:
•Corrente (0-30 dias)
•31-60 dias
•61-90 dias
•91+ dias
Permite identificar rapidamente dívidas antigas e priorizar cobranças.
Faturação por período
Evolução mensal da receita com gráfico de barras. Filtros por período. Inclui totais de subtotal, IVA e total geral.
Top clientes
Ranking de clientes por volume de faturação. Botões rápidos para filtrar mês/ano. Mostra percentagem relativa com mini-barra visual. Notas de crédito subtraem aos totais.
Mapa de IVA
Resumo de IVA por taxa e região fiscal:
•Regiões: Continente (PT), Açores (PT-AC), Madeira (PT-MA)
•Taxas: Normal, Intermédia, Reduzida, Isenta
•Base tributável e IVA por taxa
•Decomposição por tipo de documento
•NC subtrai aos totais
•Filtros por período
SAF-T
Exportação do ficheiro fiscal SAF-T PT (ver secção dedicada).
Dashboard
O painel principal (Dashboard) apresenta uma visão completa do negócio:
Cards de resumo:
•Total faturado no mês
•Total recebido
•Em dívida
•Documentos emitidos
Gráfico comparativo de 3 anos:
•Barras agrupadas com faturação mensal dos últimos 3 anos
•Ano atual (azul), ano anterior (dourado), 2 anos atrás (cinzento)
•Notas de crédito subtraem ao total
Totais anuais:
•3 mini-cards com o total de cada ano
Documentos recentes:
•Lista dos últimos documentos emitidos com acesso rápido
Backups
Em Backups, gerencie cópias de segurança dos dados:
Backup manual:
•Clique "Novo backup" para gerar um snapshot JSON com todos os dados operacionais
•Cada backup inclui contagens de: clientes, produtos, documentos, pagamentos, séries, etc.
Backup automático:
•O sistema gera backups automáticos diários
•Mantém os últimos 10 backups (os mais antigos são eliminados)
Gestão:
•Download — Gera URL temporária (válida 1 hora) para descarregar o ficheiro
•Eliminar — Remove o backup do armazenamento
•Os ficheiros são guardados em cloud storage (S3)
Nota: Os backups automáticos do sistema são complementares a estes backups manuais.
Multi-tenant e organizações
O Faturiz é uma plataforma multi-tenant — cada organização opera isoladamente:
Isolamento de dados
Cada organização tem os seus próprios:
•Clientes, produtos, séries documentais
•Documentos, pagamentos, recibos
•Configurações de empresa
•Templates de email
•Backups
•Faturas recorrentes
•Extratos bancários
Os dados são isolados automaticamente — uma organização nunca vê nem acede aos dados de outra. Códigos e números de documento podem ser iguais entre organizações diferentes (ex: duas orgs podem ter "FT 2026/1").
Gestão de equipa
Em Configurações → Equipa (apenas administradores):
Convidar membros:
•Insira o email e o papel (Admin ou Membro)
•O sistema gera um link de convite (válido 7 dias)
•O convidado acede ao link, cria a conta e fica associado à organização
Papéis:
•Admin — Acesso total: configurações, séries, IVA, backups, SAF-T, templates, gestão de equipa
•Membro — Acesso operacional: emitir documentos, gerir clientes e produtos, ver relatórios, registar pagamentos
Gestão:
•Alterar papel (admin ↔ membro)
•Remover membro (disassocia da organização, preserva registos para auditoria)
•Revogar convites pendentes
Planos e subscrição
Em Configurações → Plano, gerencie a subscrição da organização:
Plano Gratuito
Ideal para experimentar e micro-empresas:
•10 documentos/mês
•1 utilizador
•20 clientes
•20 produtos
•Sem funcionalidades premium (recorrentes, conciliação, relatórios avançados, euPago, backups, templates, importação SAF-T)
Plano Profissional — 19€/mês ou 190€/ano
Para pequenas e médias empresas:
•Documentos ilimitados
•Até 5 utilizadores
•Clientes e produtos ilimitados
•Todas as funcionalidades premium: faturação recorrente, conciliação bancária, relatórios avançados, euPago, backups, templates de email, importação SAF-T
Plano Empresarial — 49€/mês ou 490€/ano
Para empresas com necessidades avançadas:
•Tudo ilimitado (documentos, utilizadores, clientes, produtos)
•Todas as funcionalidades premium
•Acesso API
Pagamento e gestão
•Pagamento seguro via Stripe (cartão de crédito/débito)
•Toggle mensal/anual (desconto ~17% no plano anual)
•Período experimental de 14 dias nos planos pagos
•Botão "Gerir subscrição" para aceder ao portal Stripe (alterar plano, método pagamento, cancelar)
•O uso atual é mostrado nos cards: documentos este mês, utilizadores, clientes, produtos
Pesquisa e paginação
Todas as listagens (clientes, produtos, documentos, recebimentos, recorrentes) suportam:
Pesquisa:
•Campo de pesquisa instantânea
•Filtra por nome, NIF, email, código, descrição (conforme o contexto)
•Filtros adicionais: tipo de documento, estado de pagamento, período, método de pagamento
Paginação server-side:
•Tamanhos de página: 25, 50 (padrão), 100, 200
•Navegação: Primeira, Anterior, Seguinte, Última
•Indicador: "1–50 de 234 clientes"
Persistência:
•Pesquisa e filtros são guardados na sessão do browser
•Ao navegar entre páginas e voltar, os filtros mantêm-se
•Limpos automaticamente no login
Segurança e auditoria
Autenticação:
•Login com email e palavra-passe
•Sessões JWT com expiração configurável
•Proteção de todas as rotas de API
Isolamento multi-tenant:
•AsyncLocalStorage com middleware Prisma garante isolamento automático
•Cada query de base de dados é automaticamente filtrada pela organização do utilizador
•Impossível aceder a dados de outra organização, mesmo com manipulação de APIs
Auditoria:
•Todas as ações são registadas em log de auditoria (AuditLog)
•Regista: ação, utilizador, data/hora, dados alterados
•Ações: criação, edição, cancelamento, arquivo, importação
Documentos fiscais:
•Documentos emitidos são imutáveis — nunca podem ser editados ou eliminados
•Apenas é possível cancelar (muda estado, preserva registo)
•Hash encadeado previne adulteração da sequência
Referência API
Introdução à API
A API REST do Faturiz permite integrar o sistema de faturação com aplicações externas (ERPs, CRMs, lojas online, automações).
Disponibilidade: Plano Empresarial apenas.
Base URL:
•https://faturiz.com/api/v1
Formato: JSON (request e response)
Versionamento: A API é versionada no path (/v1/). Versões futuras manterão compatibilidade retroativa dentro da mesma major version.
Autenticação
Todas as chamadas à API requerem uma API Key no header Authorization.
Obter API Key:
1.Aceda a Configurações → API
2.Clique "Criar nova chave"
3.Dê um nome à chave (ex: "ERP Integração")
4.Copie a chave gerada — só é mostrada uma vez
Utilização:
•Header: Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx
Segurança:
•As chaves são armazenadas como hash (SHA-256) — não é possível recuperar uma chave perdida
•Cada chave mostra o prefixo (sk_live_xxxx...) para identificação
•Revogue chaves comprometidas em Configurações → API
•O lastUsedAt é atualizado automaticamente a cada utilização
Exemplo de chamada
curl -X GET https://faturiz.com/api/v1/clients \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json"
Códigos de erro de autenticação
•401 — Chave em falta, inválida ou revogada
•403 — Organização sem plano Empresarial ativo
Paginação
Todos os endpoints de listagem suportam paginação:
Parâmetros query:
•page — Página (default: 1)
•pageSize — Itens por página (default: 50, máx: 200)
Resposta:
•data — Array de resultados
•pagination.page — Página atual
•pagination.pageSize — Itens por página
•pagination.total — Total de registos
•pagination.totalPages — Total de páginas
Clientes
GET /v1/clients
Lista clientes da organização.
Query params:
•search — Pesquisa por nome, NIF, email ou código
•page, pageSize — Paginação
Resposta 200:
•data — Array de clientes (id, name, taxId, email, phone, code, address, postalCode, city, country, active, createdAt)
POST /v1/clients
Cria um novo cliente.
Body (JSON):
•name (obrigatório) — Nome do cliente
•taxId — NIF
•email — Email
•phone — Telefone
•code — Código interno
•address, postalCode, city, country — Morada
•notes — Notas internas
•language — "PT" ou "EN" (default: "PT")
•paymentMethod — Método de pagamento padrão
•dueDays — Prazo de vencimento (nº dias)
•exemptionReason — Motivo isenção IVA
Resposta 201: Objeto do cliente criado
GET /v1/clients/:id
Retorna os detalhes de um cliente.
Resposta 200: Objeto do cliente com todos os campos
Resposta 404: Cliente não encontrado
PUT /v1/clients/:id
Atualiza os dados de um cliente. Aceita os mesmos campos do POST. Apenas os campos enviados são atualizados.
Resposta 200: Objeto do cliente atualizado
Produtos
GET /v1/products
Lista produtos/serviços da organização.
Query params:
•search — Pesquisa por código ou descrição
•page, pageSize — Paginação
Resposta 200:
•data — Array de produtos (id, code, description, type, unitOfMeasure, unitPrice, vatRate, active)
POST /v1/products
Cria um novo produto/serviço.
Body (JSON):
•description (obrigatório) — Nome/descrição
•code — Código interno
•type — "P" (Produto) ou "S" (Serviço). Default: "S"
•unitOfMeasure — Unidade (UN, H, DIA, KG, etc.). Default: "UN"
•unitPrice — Preço unitário sem IVA. Default: 0
•vatRateId — ID da taxa de IVA
Resposta 201: Objeto do produto criado
GET /v1/products/:id
Retorna os detalhes de um produto.
Resposta 200: Objeto do produto (inclui vatRate nested)
Resposta 404: Produto não encontrado
PUT /v1/products/:id
Atualiza os dados de um produto.
Resposta 200: Objeto do produto atualizado
Documentos
GET /v1/documents
Lista documentos da organização.
Query params:
•type — Filtrar por tipo (FT, FR, FS, RC, NC, ND, ORC, GT, GR)
•status — Filtrar por estado (RASCUNHO, EMITIDO, CANCELADO)
•paidStatus — Estado de pagamento (PENDENTE, PARCIAL, PAGO, NA)
•clientId — Filtrar por cliente
•startDate, endDate — Período (YYYY-MM-DD)
•page, pageSize — Paginação
Resposta 200:
•data — Array de documentos (id, type, number, date, totalAmount, status, paidStatus, client: { id, name, taxId })
POST /v1/documents
Cria e emite um novo documento.
Body (JSON):
•type (obrigatório) — Tipo: FT, FR, FS, RC, NC, ND, ORC, GT, GR
•clientId (obrigatório) — ID do cliente
•seriesId (obrigatório) — ID da série
•lines (obrigatório) — Array de linhas:
◦productId — ID do produto (ou usar campos manuais)
◦description — Descrição da linha
◦quantity — Quantidade
◦unitPrice — Preço unitário
◦vatRateId — ID da taxa de IVA
◦discount — Desconto percentual (0-100)
•date — Data de emissão (YYYY-MM-DD). Default: hoje
•dueDate — Data de vencimento
•observations — Observações
•language — "PT" ou "EN"
•paymentMethod — Método de pagamento (para FR)
•referenceDocumentId — Doc. de referência (NC, ND, RC)
•exemptionReason — Motivo isenção IVA
Resposta 201: Documento completo com número, hash, ATCUD, totais
GET /v1/documents/:id
Retorna detalhes completos de um documento.
Resposta 200: Documento com:
•Dados gerais (type, number, date, status, totais)
•lines — Linhas com produto, quantidade, preço, IVA
•payments — Pagamentos recebidos
•series — Série associada
•client — Dados do cliente
PATCH /v1/documents/:id
Cancela um documento.
Body (JSON):
•action — Apenas "cancel" é suportado
•reason — Motivo do cancelamento (opcional)
Resposta 200: Documento atualizado com status CANCELADO
Nota: Documentos cancelados permanecem no sistema e no SAF-T. Esta ação é irreversível.
GET /v1/documents/:id/pdf
Gera e retorna o PDF do documento.
Resposta 200: Ficheiro PDF (Content-Type: application/pdf)
Uso típico:
•Download direto
•Integração com sistemas de arquivo
•Envio por email via sistema externo
Pagamentos
GET /v1/payments
Lista pagamentos da organização.
Query params:
•documentId — Filtrar por documento
•clientId — Filtrar por cliente
•startDate, endDate — Período (YYYY-MM-DD)
•page, pageSize — Paginação
Resposta 200:
•data — Array de pagamentos (id, amount, method, date, document: { id, type, number })
POST /v1/payments
Regista um novo pagamento.
Body (JSON):
•documentId (obrigatório) — ID do documento (fatura/ND)
•amount (obrigatório) — Valor pago
•method (obrigatório) — Método (NU, TB, MB, MBWAY, CC, CD, CH, OU)
•date — Data do pagamento (YYYY-MM-DD). Default: hoje
•notes — Observações
Comportamento:
•O estado de pagamento do documento atualiza automaticamente
•pendente → parcial → pago
Resposta 201: Objeto do pagamento criado
SAF-T
GET /v1/saft
Exporta o ficheiro SAF-T PT da organização.
Query params:
•year (obrigatório) — Ano fiscal
•month — Mês (1-12). Se omitido, exporta o ano inteiro
•includeImported — "true" para incluir documentos importados. Default: false
Resposta 200: Ficheiro XML (Content-Type: application/xml)
Nota: O ficheiro segue a estrutura SAF-T PT v1.04_01 da AT.
Séries
GET /v1/series
Lista as séries ativas da organização.
Resposta 200:
•data — Array de séries (id, type, prefix, year, nextNumber, atcudCode, active)
Taxas de IVA
GET /v1/vat-rates
Lista todas as taxas de IVA disponíveis.
Resposta 200:
•data — Array de taxas (id, code, description, rate, region, exemptionCode)
Relatórios
GET /v1/reports/outstanding
Saldos pendentes por cliente.
Resposta 200:
•data — Array por cliente:
◦client — { id, name, taxId }
◦totalInvoiced — Total faturado
◦totalPaid — Total pago
◦totalCreditNotes — Total NC
◦outstanding — Em dívida
◦overdue — Em atraso (vencido)
◦documents — Lista de documentos pendentes
Códigos de erro
A API utiliza códigos HTTP standard:
•200 — Sucesso (GET, PUT, PATCH)
•201 — Criado com sucesso (POST)
•400 — Dados inválidos ou em falta. O body inclui { error: "mensagem" }
•401 — Não autenticado (API Key em falta ou inválida)
•403 — Sem permissão (plano sem acesso API)
•404 — Recurso não encontrado
•405 — Método HTTP não suportado
•500 — Erro interno do servidor
Formato de erro:
•{ "error": "Descrição do erro" }
Rate limiting:
•Sem limites rígidos atualmente. Uso abusivo será limitado no futuro.