1. Home
  2. Docs
  3. Exemplos de Comunicação c...
  4. Linguagens sem suporte HT...
  5. NS DDF-e.exe

NS DDF-e.exe

Introdução

Esta página apresenta trechos de códigos de uma aplicação em VB.NET que foi desenvolvida para consumir as funcionalidades da NS DDF-e API. Você pode realizar o download do exemplo clicando no link abaixo:

Funcionamento da estrutura

Para que você possa utilizar o projeto de exemplo, você deve compilá-lo para gerar o executável, pois ele será utilizado para comunicar com a API. Através de sua aplicação, você irá “rodar” o executável passando o nome da função que deseja executar e o restante dos parâmetros necessários. A aplicação possui as classes DDFeAPI.vb e Principal.vb; confira o objetivo de cada uma:

DDFeAPI.vb: contém todas as funções de comunicação com a API.

Principal.vb: é responsável por ler os parâmetros passados junto com a chamada do executável e realizar a chamada da função desejada (exemplo: manifestacao, downloadUnico, etc).

Integrando ao sistema

Para gerar o executável e comunicar com a API, você precisa realizar os seguintes passos:

  1. Instale o Visual Studio Community (é gratuito) clicando aqui: Visual Studio;
  2. Extraia o conteúdo da pasta que você baixou anteriormente e abra o projeto no Visual Studio (duplo clique sobre o arquivo DDFeAPI.sln);
  3. Compile o código apertando F5 (ou clicando no botão Run da IDE).
  4. Acesse a pasta DDFeAPI > bin > Debug e copie os seguintes arquivos:
    1. DDFeAPI.exe;
    2. Newtonsoft.dll;
    3. Newtonsoft.xml.
  5. Cole os arquivos na pasta de sua aplicação (de preferência, na mesma pasta do executável de sua aplicação.

Pronto! Agora, você já pode consumir a NS DDF-e API através do seu sistema. Confira abaixo sobre realizar uma emissão completa.

Realizando uma Download Em Lote

Para realizar uma emissão completa, você poderá utilizar a função downloadLote. Veja abaixo sobre os parâmetros necessários, e um exemplo de chamada do método.

Parâmetros
ParâmetroDescrição
comandodownloadLote
tokenSeu token de acesso a API
caminhoCaminho onde devem ser salvos os documentos baixados.
CNPJInteressadoCNPJ do interessado em receber o documento
tpAmbAmbiente onde foi autorizado o documento. Valores possíveis: 1 - produção 2 - homologação
modeloModelo do projeto:55 - NF-e (valor padrão)57 - CT-e98 - NFSe SP
ultNSUÚltimo NSU recebido pelo consumidor e a partir do qual deseja consultar NF-es ou CT-es
incluirPDFIncluir do documento .pdf auxiliar
apenasComXmlCarregar apenas documentos com XMLs disponíveis
comEventosIncluir eventos vinculados ao documento
apenasPendManifCarregar apenas documentos pendentes de manifestação
idUm identificador para ser adicionado ao final do nome do arquivo de retorno. Pode ser o número da nota, por exemplo. Exemplos.: 920, n1, env_2.
Exemplo de chamada

Após ter todos os parâmetros listados acima, você deverá fazer a chamada do executável. Veja o código de exemplo abaixo:Exemplo de chamada emitirNFeSincrono

ShellExecute(0, "Open", "DDFeAPI.exe", "downloadLote SEU_TOKEN C:/notas 07364617000135 2 55 472 false false false false 1", 0, 1)

Acima foi utilizado o comando ShellExecute mas você pode utilizar outro comando de sua preferência.

 
A função downloadLote fará o download de documentos que estejam a frente do ultimo NSU. Esta função utiliza os métodos tratamentoDownloadLote e downloadDocsLote, presentes na classe DDFeAPI.vb, para tratar o retorno da NSAPI e fazer o download dos xmls dos documentos requisitados, respectivamente.

O retorno da chamada acima ficaria assim: ./respostas/downloadLote_1.json

No exemplo abaixo, veja como tratar o retorno da função downloadLote:

PAREI AQUI Exemplo de tratamento do retorno

O JSON retornado pelo método terá os seguintes campos: statusEnviostatusConsultastatusDownloadcStatchNFenProtmotivonsNRecerros. Veja o exemplo abaixo:Retorno emitirNFeSincrono

{"status": "200","modelo": "55","chaves": ["chave":"chave":"chave":"chave":"chave":"chave":],"erros": ""}

Confira a lógica para tratamento do retorno, e aplique-a na sua linguagem:Código de exemplo de tratamento do retorno

'Primeiramente, você deve ler os campos do json de retorno, através do seu sistema.'Agora que você já leu os dados, é aconselhável que faça o salvamento de todos'eles no seu banco de dados antes de prosseguir para o teste abaixo. 'Testa se houve sucesso na emissãoSe (statusEnvio = 200) Ou (statusEnvio = -6) Então'Testa se houve sucesso na consultaSe (statusConsulta = 200) Então'Testa se a nota foi autorizadaSe (cStat = 100) Ou (cStat = 150) Então'Aqui dentro você pode realizar procedimentos como desabilitar o botão de emitir, etcMostrarMensagem (motivo) 'Testa se o download teve problemasSe (statusDownload != 200) EntãoMostrarMensagem (motivo)Fim SeSenão'Aqui você pode mostrar alguma solução para o parceiro ou exibir opção de editar a notaMostrarMensagem (motivo)Fim Se'Caso tenha dado erro na consultaSenão'Aqui você pode mostrar uma mensagem ao usuárioMostrarMensagem (motivo + Chr(13) + erros)Fim SeSenão'Aqui você pode exibir para o usuário o erro que ocorreu no envioMostrarMensagem (motivo + Chr(13) + erros)Fim Se
Demais funcionalidades

No módulo NFeAPI, você pode encontrar também as seguintes funcionalidades:

NOMEFINALIDADEDOCUMENTAÇÃO DA API
enviaConteudoParaAPIFunção genérica que envia um conteúdo para API. Requisições do tipo POST.
emitirNFeEnvia uma NF-e para processamento.https://documentacao.nstecnologia.com.br/docs/ns-nfe/emissao-de-nfe/emissao/
consultarStatusProcessamentoConsulta o status de processamento de uma NF-e.https://documentacao.nstecnologia.com.br/docs/ns-nfe/emissao-de-nfe/status-de-processamento/
downloadNFeBaixa documentos de emissão de uma NF-e autorizada.https://documentacao.nstecnologia.com.br/docs/ns-nfe/emissao-de-nfe/download/
downloadNFeAndSaveBaixa documentos de emissão de uma NF-e autorizada e salva-os em um diretório.Por utilizar o método downloadNFe, a documentação é a mesma.
downloadEventoNFeBaixa documentos de evento de uma NF-e autorizada.https://documentacao.nstecnologia.com.br/docs/ns-nfe/eventos/download-de-evento-de-nfe/
downloadEventoNFeAndSaveBaixa documentos de evento de uma NF-e autorizada e salva-os em um diretório.Por utilizar o método downloadEventoNFe, a documentação é a mesma.
cancelarNFeRealiza o cancelamento de uma NF-e.https://documentacao.nstecnologia.com.br/docs/ns-nfe/eventos/cancelamento/
corrigirNFeRealiza a CC-e de uma NF-e.https://documentacao.nstecnologia.com.br/docs/ns-nfe/eventos/carta-de-correcao-de-nfe/
consultarCadastroContribuinteConsulta o cadastro de um contribuinte.https://documentacao.nstecnologia.com.br/docs/ns-nfe/funcoes-utilitarias/consulta-cadastro-de-contribuinte-de-nfe/
consultarSituacaoConsulta a situação de uma NF-e na Sefaz.https://documentacao.nstecnologia.com.br/docs/ns-nfe/eventos/consulta-situacao-de-nf-e/
enviarEmailEnvia NF-e por e-mail. (Para enviar mais de um e-mail, separe os endereços por vírgula).https://documentacao.nstecnologia.com.br/docs/ns-nfe/funcoes-utilitarias/envio-de-nf-e-por-e-mail/
inutilizarInutiliza numerações de NF-e.https://documentacao.nstecnologia.com.br/docs/ns-nfe/eventos/inutilizacao-de-numeracao-de-nfe/
listarNSNRecsLista os nsNRec vinculados a uma NF-e.https://documentacao.nstecnologia.com.br/docs/ns-nfe/funcoes-utilitarias/lista-de-nsnrecs-vinculados-a-uma-nfe/
atualizarCertificadoAtualiza o certificado de uma licença.https://documentacao.nstecnologia.com.br/docs/painel-ns-tecnologia/cadastro-de-licencas-via-api/upload-de-certificado/
Nome Parâmetros
enviaConteudoParaAPI token = seu token de acesso;caminho = caminho do arquivo com o conteúdo a ser enviado;url = URL para onde deve ser enviado o conteúdo;tpConteudo = tipo de conteúdo (xml, txt, json);id = identificador para adicionar ao final do nome do arquivo de retorno. 
emitirNFetoken = seu token de acesso;
token = seu token de acesso;
caminho = caminho do arquivo com o conteúdo a ser enviado;tpConteudo = tipo de conteúdo (xml, txt, json);id = identificador para adicionar ao final do nome do arquivo de retorno.
consultarStatusProcessamentotoken = seu token de acesso;CNPJ = CNPJ do emitente da nota;nsNRec = número de recibo da nota;tpAmb = tipo de ambiente onde foi emitida a nota (1 ou 2);id = identificador para adicionar ao final do nome do arquivo de retorno.
downloadNFetoken = seu token de acesso;chNFe = chave de acesso da nota;tpDown = tipo de download (X, P, J, XP ou JP);tpAmb = tipo de ambiente onde foi emitida a nota (1 ou 2);id = identificador para adicionar ao final do nome do arquivo de retorno.
downloadNFeAndSavetoken = seu token de acesso;chNFe = chave de acesso da nota;tpDown = tipo de download (X, P, J, XP ou JP);tpAmb = tipo de ambiente onde foi emitida a nota (1 ou 2);caminhoSalvar = caminho onde devem ser salvos os arquivos baixados;exibeNaTela = exibir o PDF ou não, caso baixado (true ou false);id = identificador para adicionar ao final do nome do arquivo de retorno.
downloadEventoNFetoken = seu token de acesso;chNFe = chave de acesso da nota;tpDown = tipo de download (X, P, J, XP ou JP);tpAmb = tipo de ambiente onde foi emitida a nota (1 ou 2);tpEvento = tipo de evento (canc = cancelamento, cce = carta de correção);nSeqEvento = número sequencial do evento;id = identificador para adicionar ao final do nome do arquivo de retorno.
downloadEventoNFeAndSavetoken = seu token de acesso;chNFe = chave de acesso da nota;tpDown = tipo de download (X, P, J, XP ou JP);tpAmb = tipo de ambiente onde foi emitida a nota (1 ou 2);tpEvento = tipo de evento (canc = cancelamento, cce = carta de correção);nSeqEvento = número sequencial do evento;caminhoSalvar = caminho onde devem ser salvos os arquivos baixados;exibeNaTela = exibir o PDF ou não, caso baixado (true ou false);id = identificador para adicionar ao final do nome do arquivo de retorno.
cancelarNFetoken = seu token de acesso;chNFe = chave de acesso da nota;tpAmb = tipo de ambiente onde foi emitida a nota (1 ou 2);dhEvento = data-hora do evento;nProt = número do protocolo;xJust = justificativa do cancelamento;tpDown = tipo de download (X, P, J, XP ou JP);caminhoSalvar = caminho onde devem ser salvos os arquivos baixados;exibeNaTela = exibir o PDF ou não, caso baixado (true ou false);id = identificador para adicionar ao final do nome do arquivo de retorno.
corrigirNFetoken = seu token de acesso;chNFe = chave de acesso da nota;tpAmb = tipo de ambiente onde foi emitida a nota (1 ou 2);dhEvento = data-hora do evento;nSeqEvento = número sequencial do evento;xCorrecao = descrição da correção;tpDown = tipo de download (X, P, J, XP ou JP);caminhoSalvar = caminho onde devem ser salvos os arquivos baixados;exibeNaTela = exibir o PDF ou não, caso baixado (true ou false);id = identificador para adicionar ao final do nome do arquivo de retorno.
consultarCadastroContribuintetoken = seu token de acesso;CNPJCont = CNPJ do contribuinte;UF = UF da consulta;documentoConsulta = CNPJ, CPF ou IE a ser consultado;tpConsulta = tipo de consulta: "CNPJ", "CPF" ou "IE" (sem aspas);id = identificador para adicionar ao final do nome do arquivo de retorno.
consultarSituacaotoken = seu token de acesso;licencaCNPJ = CNPJ da licença do contribuinte;chNFe = chave de acesso da nota;tpAmb = tipo de ambiente onde foi emitida a nota (1 ou 2);versao = versão da NF-e (3.10 ou 4.00);id = identificador para adicionar ao final do nome do arquivo de retorno.
enviarEmailtoken = seu token de acesso;chNFe = chave de acesso da nota;enviaEmailDoc = true ou false;email = endereços de e-mail dos destinatários (se for mais de um, separe por vírgula);id = identificador para adicionar ao final do nome do arquivo de retorno.
inutilizartoken = seu token de acesso;cUF = código da UF;tpAmb = tipo de ambiente (1 ou 2);ano = ano (somente o final: 2018 = 18);CNPJ = CNPJ do emitente;serie = serie onde será inutilizada a nota;nNFIni = número inicial;nNFFin = número final;xJust = justificativa de inutilização;id = identificador para adicionar ao final do nome do arquivo de retorno.
listarNSNRecstoken = seu token de acesso;chNFe = chave de acesso da nota;id = identificador para adicionar ao final do nome do arquivo de retorno.
atualizarCertificadotoken = seu token de acesso;licencaCnpj = CNPJ da licença a ser atualizada;projeto = código do projeto;password = senha do certificado;file = caminho do arquivo do certificado;id = identificador para adicionar ao final do nome do arquivo de retorno.

How can we help?