Skip to content

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.