Pular para o conteúdo principal

Primeiros passos

Este guia cobre a instalação, a criação do cliente e a emissão da sua primeira nota fiscal de serviço (NFS-e), incluindo o acompanhamento do processamento.

1. Instale o gem

# Gemfile
gem "nfe-io", "~> 1.0"
bundle install
# ou, sem editar o Gemfile:
bundle add nfe-io
Requisitos

Ruby 3.2 ou superior. O SDK não tem dependências de runtime — apenas a biblioteca padrão do Ruby.

2. Crie um cliente

require "nfe"

client = Nfe::Client.new(api_key: ENV.fetch("NFE_API_KEY"))

A chave também pode vir da variável de ambiente NFE_API_KEY — o argumento explícito sempre vence. Recursos de dados (CEP, CNPJ, CPF, consultas) usam uma segunda chave, data_api_key:, com fallback para api_key. Todas as opções estão em Configuração.

3. Emita uma NFS-e

result = client.service_invoices.create(
company_id: "55df4dc6b6cd9007e4f13ee8",
data: {
cityServiceCode: "2690",
description: "Manutenção e suporte técnico",
servicesAmount: 100.0,
borrower: { federalTaxNumber: "191", name: "Banco do Brasil SA" }
}
)
Chaves em camelCase

O corpo (data:) usa as chaves em camelCase, exatamente como a API espera.

4. Trate o retorno discriminado

A emissão é assíncrona. create devolve um de dois tipos, que você pode distinguir com pattern matching ou com os predicados pending?/issued?:

case result
in Nfe::Resources::ServiceInvoicePending => pending
pending.invoice_id # id para reconsultar enquanto processa
in Nfe::Resources::ServiceInvoiceIssued => issued
issued.resource # NFS-e já materializada (HTTP 201)
end

5. Acompanhe até um estado terminal (polling)

Não existe create_and_wait na v1.0 — faça polling com retrieve até um estado terminal, usando Nfe::FlowStatus.terminal?:

company_id = "55df4dc6b6cd9007e4f13ee8"
invoice_id = result.pending? ? result.invoice_id : result.resource.id

loop do
invoice = client.service_invoices.retrieve(
company_id: company_id,
invoice_id: invoice_id
)
break if Nfe::FlowStatus.terminal?(invoice.flow_status)

sleep 2
end
Produção vs. teste

A separação produção vs. teste (homologação) é definida na configuração da sua conta em app.nfe.ionão pela chave de API nem pelo SDK. O argumento environment: do cliente está reservado para uso futuro.

Próximos passos

NFE.io

A NFE.io é uma empresa de tecnologia que fornece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas. Com suas ferramentas, as empresas podem economizar tempo e reduzir erros, aumentando a eficiência e precisão do processo de emissão de notas fiscais.

Um dos principais cases de sucesso da NFE.io é a implementação da solução na empresa de transporte Rodonaves. Com a automatização da emissão e gestão de notas fiscais eletrônicas, a Rodonaves conseguiu reduzir em até 80% o tempo gasto nesse processo, o que se traduziu em uma significativa melhoria na eficiência operacional. Além disso, a empresa também conseguiu eliminar erros e atrasos na emissão de notas fiscais, o que melhorou a relação com seus clientes e aumentou a confiança dos órgãos fiscais.

Outro exemplo é a implementação da NFE.io na empresa de comércio eletrônico, a Loja Integrada. Com a automatização da emissão de notas fiscais, a Loja Integrada conseguiu aumentar a velocidade de emissão de notas em até 10 vezes, o que permitiu que a empresa atendesse a uma maior quantidade de clientes e, consequentemente, aumentar as suas vendas.

Além desses exemplos, a NFE.io também tem outros cases de sucesso com empresas de setores como indústria, construção, varejo e serviços, mostrando a versatilidade e eficácia da sua solução.

Em resumo, a NFE.io é uma empresa de tecnologia que oferece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas, ajudando as empresas a economizar tempo e reduzir erros, melhorando a eficiência e precisão do processo. Com cases de sucesso em diferentes setores, a NFE.io tem se destacado como uma empresa líder em automação fiscal.