FAQ & resolução de problemas¶
Um resultado válido significa que o NIF/IBAN existe mesmo?¶
Não. O pt-fiscal verifica apenas estrutura e dígitos de controlo. Um NIF pode ser estruturalmente válido mas nunca ter sido atribuído; um IBAN pode ser válido mas estar encerrado. Confirmar a existência exige a AT ou o banco.
O validateNif devolve false para um número que julgo válido¶
Verifica três coisas: tem exatamente 9 dígitos, o dígito/gama inicial é um tipo de
contribuinte reconhecido, e o dígito de controlo mod-11 está correto. O entityType()
devolve 'desconhecido' para um dígito inicial não reconhecido — isso também faz o
validateNif devolver false.
Posso usar no browser / runtimes edge?¶
Sim. É ESM puro, sem dependências em runtime e sem APIs específicas do Node, por isso corre em browsers, workers e edge functions tal como no Node.
Como renderizo de facto o código QR da fatura?¶
O buildInvoiceQRCode() devolve a string de campos da AT; renderiza-a como imagem com
qualquer biblioteca de QR (ex.: qrcode). Ver Faturação. O pt-fiscal não
inclui de propósito um renderer de QR para se manter sem dependências.
O campo Q (hash) — de onde vem?¶
Da assinatura digital do teu software de faturação certificado. O pt-fiscal compõe o payload mas não gera a assinatura/hash; as faturas oficiais têm de ser emitidas via Portal das Finanças ou software certificado pela AT.
A lógica fiscal é oficial?¶
Não — os valores e helpers são uma conveniência para gestão, não aconselhamento fiscal oficial.