Consulta de NF-e (product_invoice_query)
O recurso product_invoice_query faz consultas somente-leitura de NF-e (nota
fiscal de produto) pela chave de acesso: detalhes, download de PDF (DANFE) e XML,
e listagem de eventos. Faz parte da família de dados nfe_query, servida por
nfe.api.nfe.io. O segmento de versão (/v2) já vem no caminho da requisição.
data_api_keyEsta é uma família de dados: usa a data_api_key quando presente, com
fallback para a api_key. Configure data_api_key: (ou NFE_DATA_API_KEY).
Veja Configuração.
Métodos públicos
product_invoice_query.retrieve(access_key) # => Nfe::ProductInvoiceDetails | nil
product_invoice_query.download_pdf(access_key) # => String (bytes ASCII-8BIT)
product_invoice_query.download_xml(access_key) # => String (bytes ASCII-8BIT)
product_invoice_query.list_events(access_key) # => Nfe::ProductInvoiceEventsResponse | nil
Exemplos
Consultar detalhes e eventos
require "nfe"
client = Nfe::Client.new(
api_key: ENV.fetch("NFE_API_KEY"),
data_api_key: ENV.fetch("NFE_DATA_API_KEY")
)
chave = "35200114200166000187550010000000071234567890"
detalhes = client.product_invoice_query.retrieve(chave)
eventos = client.product_invoice_query.list_events(chave)
A chave de acesso precisa ter 44 dígitos. Uma chave inválida levanta
Nfe::InvalidRequestError antes de qualquer requisição. Veja
Tratamento de erros.
Baixar PDF (DANFE) e XML
pdf = client.product_invoice_query.download_pdf(chave)
File.binwrite("danfe.pdf", pdf)
xml = client.product_invoice_query.download_xml(chave)
File.binwrite("nfe.xml", xml)
download_pdf e download_xml devolvem os bytes (ASCII-8BIT), não um
objeto hidratado. Grave-os com File.binwrite. Veja o guia de
Downloads.
Veja também
- Consulta de NFC-e (consumer_invoice_query) — o equivalente para cupons.
- Downloads — manipulação de PDF/XML binários.
- Configuração — modelo de duas chaves.