Voltar ao início

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.