Skip to content

adsjinf/ns-nfe-vb6

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 

Repository files navigation

NSNFeAPIClientVB6

Esta página apresenta trechos de códigos de um módulo em VB6 que foi desenvolvido para consumir as funcionalidades da NS NF-e API.


Primeiros passos:

Integrando ao sistema:

Para utilizar as funções de comunicação com a API, você precisa realizar os seguintes passos:

  1. Extraia o conteúdo da pasta compactada que você baixou;
  2. Copie para a pasta da sua aplicação os módulos NFeAPI.bas e base64Convert.bas, que estão na pasta raiz;
  3. Abra o seu projeto e importe a pasta copiada. 4.A aplicação utiliza as bibliotecas Microsoft Script Control 1.0 e Active Microsoft XML, v6.0 para realizar a comunicação com a API e fazer a manipulação de dados JSON, respectivamente. Ative as duas referencias em: Project > References.

Pronto! Agora, você já pode consumir a NS Suite API através do seu sistema. Todas as funcionalidades de comunicação foram implementadas na classe NSSuite.java.


Emissão Sincrona:

Realizando uma Emissão:

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

Parâmetros:

ATENÇÃO: o token também é um parâmetro necessário e você deve primeiramente defini-lo no módulo NFeAPI.bas. Ele é uma constante do módulo.

Parametros Descrição
conteudo Conteúdo de emissão do documento.
tpConteudo Tipo de conteúdo que está sendo enviado. Valores possíveis: json, xml, txt
CNPJ CNPJ do emitente do documento.
tpDown Tipo de arquivos a serem baixados.Valores possíveis:
  • X - XML
  • J - JSON
  • P - PDF
  • XP - XML e PDF
  • JP - JSON e PDF
tpAmb Ambiente onde foi autorizado o documento.Valores possíveis:
  • 1 - produção
  • 2 - homologação
caminho Caminho onde devem ser salvos os documentos baixados.
exibeNaTela Se for baixado, exibir o PDF na tela após a autorização.Valores possíveis:
  • True - será exibido
  • False - não será exibido
Exemplo de chamada:

Após ter todos os parâmetros listados acima, você deverá fazer a chamada da função. Veja o código de exemplo abaixo:

Dim retorno As String
retorno = emitirNFeSincrono(conteudoEnviar, "json", "07364617000135", "XP", "2", "C:\Documentos", True)
MessageBox(retorno)

A função emitirNFeSincrono fará o envio, a consulta e download do documento, utilizando as funções emitirNFe, consultarStatusProcessamento e downloadNFeAndSave, presentes no módulo NFeAPI.bas. Por isso, o retorno será um JSON com os principais campos retornados pelos métodos citados anteriormente. No exemplo abaixo, veja como tratar o retorno da função emitirNFeSincrono:

Exemplo de tratamento de retorno:

O JSON retornado pelo método terá os seguintes campos: statusEnvio, statusConsulta, statusDownload, cStat, chNFe, nProt, motivo, nsNRec, erros. Veja o exemplo abaixo:

{
    "statusEnvio": "200",
    "statusConsulta": "200",
    "statusDownload": "200",
    "cStat": "100",
    "chNFe": "43181007364617000135550000000119741004621864",
    "nProt": "143180007036833",
    "motivo": "Autorizado o uso da NF-e",
    "nsNRec": "313022",
    "erros": ""
}

Confira um código para tratamento do retorno, no qual pegará as informações dispostas no JSON de Retorno disponibilizado:

Dim retorno As String
retorno = emitirNFeSincrono(conteudoEnviar, "json", "07364617000135", "XP", "2", "C:\Documentos", True)

Dim statusEnvio, statusConsulta, statusDownload, cStat, chNFe, nProt, motivo, nsNRec, erros As String

statusEnvio = LerDadosJSON(retorno, "statusEnvio", "", "")
statusConsulta = LerDadosJSON(retorno, "statusConsulta", "", "")
statusDownload = LerDadosJSON(retorno, "statusDownload", "", "")
cStat = LerDadosJSON(retorno, "cStat", "", "")
chNFe = LerDadosJSON(retorno, "chNFe", "", "")
nProt = LerDadosJSON(retorno, "nProt", "", "")
motivo = LerDadosJSON(retorno, "motivo", "", "")
nsNRec = LerDadosJSON(retorno, "nsNRec", "", "")
erros = LerDadosJSON(retorno, "erros", "", "")

'Testa se houve sucesso na emissão
If (statusEnvio = 200) Or (statusEnvio = -6) Then
    'Testa se houve sucesso na consulta
    If (statusConsulta = 200) Then
        'Testa se a nota foi autorizada
        If (cStat = 100) Then
            'Aqui dentro você pode realizar procedimentos como desabilitar o botão de emitir, etc
            MsgBox (motivo)

            'Testa se o download teve problemas
            If (statusDownload <> 200) Then
                MsgBox (motivo)
            End If
        Else
            'Aqui você pode mostrar alguma solução para o parceiro ou exibir opção de editar a nota
            MsgBox (motivo)
        End If
    'Caso tenha dado erro na consulta
    Else
        'Aqui você pode mostrar uma mensagem ao usuário
        MsgBox (motivo + Chr(13) + erros)
    End If
Else
    'Aqui você pode exibir para o usuário o erro que ocorreu no envio
    MsgBox (motivo + Chr(13) + erros)
End If  

Demais Funcionalidades:

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

NOME FINALIDADE DOCUMENTAÇÂO CONFLUENCE
enviaConteudoParaAPI Função genérica que envia um conteúdo para API. Requisições do tipo POST.
emitirNFe Envia uma NF-e para processamento. Emitir NF-e.
consultarStatusProcessamento Consulta o status de processamento de uma NF-e. Status de Processamento da NF-e.
downloadNFe Baixa documentos de emissão de uma NF-e autorizada. Download da NF-e
downloadNFeESalvar Baixa 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.
downloadEventoNFe Baixa documentos de evento de uma NF-e autorizada Download de Evento de NF-e.
downloadEventoNFeESalvar Baixa 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.
cancelarNFe Realiza o cancelamento de uma NF-e. Cancelamento de NF-e.
corrigirNFe Realiza a CC-e de uma NF-e. Carta de Correção de NF-e.
consultarCadastroContribuinte Consulta o cadastro de um contribuinte. Consulta Cadastro de Contribuinte.
consultarSituacao Consulta a situação de uma NF-e na Sefaz. Consulta Situação da NF-e.
enviarEmail Envia NF-e por e-mail. (Para enviar mais de um e-mail, separe os endereços por vírgula). Envio de NF-e por E-mail.
inutilizar Inutiliza numerações de NF-e. Inutilização de Numeração.
listarNSNRecs Lista os nsNRec vinculados a uma NF-e. Lista de NSNRecs vinculados a uma NF-e.
salvarXML Salva um XML em um diretório.
salvarJSON Salva um JSON em um diretório.
salvarPDF Salva um PDF em um diretório.
LerDadosJSON Lê o valor de um campo de um JSON.
LerDadosXML Lê o valor de um campo de um XML.
gravaLinhaLog Grava uma linha de texto no arquivo de log.

Ns | Obrigado pela atenção!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • VBA 100.0%