Pular para conteúdo

Emitir uma nota

Com o nfse.yaml no lugar (veja configurar), confira o que ficou faltando:

$EDITOR nfse.yaml
nfse config check    # confere se está completo

No nfse.yaml, a seção padroes guarda tudo que se repete — código do serviço, município, alíquota, e o tomador não identificado quando você vende ao público em geral. Com ela preenchida, emitir é uma linha:

nfse emitir --numero 42 --valor 1500 --descricao "Consultoria - agosto/2026"
DPS DPS410690221234567800019500001000000000000042
  Ambiente       producao-restrita
  Valor          R$ 1500.00
  Servico        Consultoria - agosto/2026
  Assinatura     aplicada
  Arquivo        notas/DPS4106902...042-dps.xml

--numero é opcional; sem ele, vale o próximo número da série — veja a numeração.

Identificar o cliente

Para identificar o tomador, use as flags:

nfse emitir --numero 43 --valor 2400 --descricao "Manutencao mensal" \
  --tomador-cnpj 98765432000198 --tomador-nome "CLIENTE EXEMPLO SA"

A nota num arquivo

Para notas com muitos campos, ou para versionar a nota junto do projeto, use um arquivo:

# nota.yaml
numero: "44"
competencia: "2026-08-01"
servico:
  descricao: Desenvolvimento de API de pagamentos
valores:
  valor_servico: 8500.00
  desconto_incondicionado: 500.00
tomador:
  cnpj: "98765432000198"
  nome: CLIENTE EXEMPLO SA
  email: financeiro@exemplo.com.br
nfse emitir --yaml nota.yaml

Como as três camadas se combinam

Nesta ordem: padroes do nfse.yaml, depois o arquivo de --yaml, depois as flags. Cada uma sobrescreve a anterior, então --valor na linha de comando vence o que estiver no arquivo.

Antes de gastar o certificado

--sem-assinar gera o XML sem assinatura, para inspecionar. O emitir também valida a DPS contra o schema oficial e confere as regras de alíquota antes de assinar, então boa parte dos erros aparece no terminal em vez de voltar como rejeição — veja o que a validação local cobre.

Próximo passo

Sem --enviar, o emitir para na assinatura e grava a DPS em notas/. Para transmitir, veja enviar à Sefin Nacional.