You are on page 1of 112

Guia de uso da NFe_Util.

dll Biblioteca de Utilidades para a NF-e

versão 1.4D - 01/02/2009

Sumário:
1. 2. Introdução .................................................................................................................................................. 4 Instalação da DLL ...................................................................................................................................... 5 2.1 Arquivos necessários para instalação da DLL .................................................................................. 5 2.2 Registro da biblioteca no Windows ................................................................................................... 5 2.3 Atualização da biblioteca................................................................................................................... 6 2.4 Uso da biblioteca ............................................................................................................................... 6 2.4.1 Arquivos e pastas necessários para uso da DLL.......................................................................... 6 2.4.2 Limitações de uso da DLL ............................................................................................................. 7 2.4.3 Erros comuns decorrentes da falha na instalação/registro da DLL .............................................. 7 2.4.4 Uso da biblioteca em Delphi WIN32.............................................................................................. 7 2.4.4.1 Exemplo para obter versão da DLL em uso em Delphi ............................................................ 8 2.4.4.2 Exemplo para escolha de certificado digital em Delphi............................................................. 8 2.4.4.3 Exemplo para acessar WS de Status Serviço em Delphi ......................................................... 9 2.4.5 Uso da biblioteca em VB 6.0 ....................................................................................................... 11 2.4.5.1 Exemplo para obter versão da DLL em uso em VB................................................................ 11 2.4.5.2 Exemplo para escolha de certificado digital em VB ................................................................ 11 2.4.5.3 Exemplo para acessar WS de Status Serviço em VB............................................................. 12 2.4.6 Uso da biblioteca em Visual FoxPro 8.0 ..................................................................................... 14 2.4.6.1 Exemplo para obter versão da DLL em uso em VFP.............................................................. 14 2.4.6.2 Exemplo para escolha de certificado digital em VFP.............................................................. 15 2.4.6.3 Exemplo para acessar WS de Status Serviço em VFP .......................................................... 15 2.4.7 Uso da biblioteca em c# .NET ..................................................................................................... 17 2.4.7.1 Exemplo para obter versão da DLL em uso em c# .NET........................................................ 17 2.4.7.2 Exemplo para escolha de certificado digital em em c# .NET.................................................. 17 2.4.7.3 Exemplo para acessar WS de Status Serviço em c# .NET .................................................... 18 3. Certificados Digitais ................................................................................................................................. 21 3.1 Padrão de Certificado Digital........................................................................................................... 21 3.2 Qual tipo de certificado e de quem adquirir? .................................................................................. 22 3.3 Instalação do Certificado Digital Cliente.......................................................................................... 22 3.4 Instalação do Certificado Digital do Web Service ........................................................................... 25 3.5 Problemas com certificado digital.................................................................................................... 26 4. Credenciamento para emissão de NF-e .................................................................................................. 27 5. Web Service essenciais da NF-e............................................................................................................. 28 5.1 Funcionalidades de primeira geração ............................................................................................. 29 5.1.1 ConsultaStatus - WS de Consulta Status.................................................................................... 29 5.1.2 EnviaLote - WS de recepção de lote de NF-e............................................................................. 30 5.1.3 BuscaLote - WS de consulta processamento de lote de NF-e ................................................... 32 5.1.4 ConsultaNF - WS de consulta situação da NF-e ........................................................................ 33 5.1.5 CancelaNF - WS de cancelamento de NF-e ............................................................................... 35 5.1.6 InutilizaNroNF - WS de inutilização de numeração de NF-e....................................................... 37 5.2 Funcionalidades de segunda geração ............................................................................................ 39 5.2.1 ConsultaStatusSCAN - WS de Consulta Status ......................................................................... 39 5.2.2 EnviaLoteSCAN - WS de recepção de lote de NF-e................................................................... 41 5.2.3 BuscaLoteSCAN - WS de consulta processamento de lote de NF-e ......................................... 42 5.2.4 ConsultaNFSCAN - WS de consulta situação da NF-e .............................................................. 44 5.2.5 CancelaNFSCAN - WS de cancelamento de NF-e..................................................................... 46 5.2.6 InutilizaNroNFSCAN - WS de inutilização de numeração de NF-e ............................................ 48 6. Web Services de apoio da NF-e .............................................................................................................. 51 6.1 ConsultaCad: Consulta Cadastro de Contribuintes do ICMS ......................................................... 51

© 2008-2009 – www.FlexDocs.com.br – Todos os direitos reservados.

Página 2

7.

Web Service de Contingência Eletrônica – SCE/DPEC .......................................................................... 52 7.1 EnviaDPEC – Envio de DPEC ........................................................................................................ 53 7.2 ConsultaDPEC – Consulta de DPEC .............................................................................................. 55 8. Funcionalidade para Envio de uma única NF-e....................................................................................... 59 8.1 Funcionalidade de primeira geração ............................................................................................... 59 8.1.1 EnviaNFe – Envio de uma única NF-e ........................................................................................ 59 8.1.2 BuscaNFe – Busca resultado de processamento de uma única NF-e ....................................... 62 8.2 Funcionalidade de segunda geração .............................................................................................. 64 8.2.1 EnviaNFeSCAN – Envio de uma única NF-e .............................................................................. 64 8.2.2 BuscaNFeSCAN – Busca resultado de processamento de uma única NF-e ............................. 67 9. Funcionalidades de apoio ........................................................................................................................ 71 9.1 Assinar – Assinatura Digital XML no padrão do Projeto NF-e ........................................................ 71 9.2 PegaNomeCertificado - Seleciona ou confirma a existência de um certificado para o nome informado. .................................................................................................................................................... 72 9.3 PegaDadosCertificado – Pega dados básicos do certificado digital............................................... 72 9.4 ValidaXML: Valida Schema XML ................................................................................................... 73 9.5 CriaChaveNFe - Cria Chave de Acesso da NF-e .......................................................................... 75 9.6 Versao - retorna a vesão atual da DLL. .......................................................................................... 76 10. Funções para geração do XML da NF-e ............................................................................................. 77 10.1 Funções para montagem do XML da NF-e ..................................................................................... 77 10.1.1 emitente – cria grupo XML do emitente (C01- pág. 90 – manual de integração) ................... 79 10.1.2 destinatario – cria grupo XML do destinatario (E01- pág. 92 – manual de integração).......... 81 10.1.3 identificador – cria grupo XML do identificador da NF-e (B01- pág. 86 – manual de integração) 83 10.1.4 produto – cria grupo XML do produto da NF-e (I01- pág. 95 – manual de integração).......... 86 10.1.5 Outras funções relacionadas com o detalhamento do produto............................................... 88 10.1.6 ICMS – cria grupo XML do ICMS do item da NF-e (I01- pág. 95 – manual de integração) ... 90 10.1.7 PIS – cria grupo XML do PIS do item da NF-e (Q01- pág. 110 – manual de integração) ...... 92 10.1.8 COFINS – cria grupo XML do COFINS do item da NF-e (S01- pág. 113 – manual de integração) ............................................................................................................................................... 92 10.1.9 Outras funções relacionadas com o imposto do item ............................................................. 93 10.1.10 IMPOSTO – cria grupo XML do IMPOSTO do item da NF-e (M01- pág. 100 – manual de integração) ............................................................................................................................................... 95 10.1.11 InfAdProduto – cria grupo XML das informações adicionais do produto da NF-e (V01- pág. 116 – manual de integração) ................................................................................................................... 96 10.1.12 DETALHE – cria grupo XML do item de DETALHE do produto da NF-e (H01- pág. 95 – manual de integração) ............................................................................................................................. 97 10.1.13 Transportador – cria grupo XML do Transportador da NF-e (X01- pág. 118 – manual de integração) ............................................................................................................................................... 97 10.1.14 Outras funções relacionadas com o local de entrega e loal de retirada ............................... 106 10.1.15 Funções de cobrança/fatura.................................................................................................. 107 10.1.16 Funções de nota fiscal referenciada ..................................................................................... 107 10.1.17 Outras funções para criação de informações complementares/adicionais........................... 107 10.1.18 Funções para consolidação de valores da NF-e................................................................... 109 10.2 Conversão de um arquivo TXT em XML ....................................................................................... 110

© 2008-2009 – www.FlexDocs.com.br – Todos os direitos reservados.

Página 3

fazenda.br/portal/docs/Manual_Integracao_Contribuinte_v_2. Este documento deve ser utilizado em conjunto com o Manual de Integração – Contribuinte – Padrões Técnicos de Comunicação (http://www.FlexDocs.02a_2008_06_16. Acompanhar o blog da NF-eletronica também é recomendado. pois é o local onde são divulgadas as novas versão da DLL e outras notícias de interesse para a implementação da NF-e.1. a leitura prévia do Manual de Integração é requisito essencial para a implementação da NF-e.br – Todos os direitos reservados. Página 4 .gov. © 2008-2009 – www.4 Beta D de 01/02/2009.pdf).nfe.com. Introdução Guia de uso da DLL NFe_Util – versão 1.

com/blog?page_id=118. O pacote está compactado em padrão winzip e contém os seguintes arquivos: • • • • • • • • • • NFe_Util.com/downloads/details.bat (bat com o comando de registro da DLL).dll (DLL).exe (aplicativo para registro da DLL). caso utilize uma versão 64bits do Windows. © 2008-2009 – www. O pacote deve ser descompactado no equipamento que será utilizado.bat pelo Explorer A mensagem “Classe não registrada” será mostrada pela aplicação demo ao acessar qualquer funcionalidade da DLL. que está disponível para download em: http://www.bat (bat com o comand de “desregistro” da DLL). Após a instalação do Framework.aspx?displaylang=pt-br&FamilyID=0856eacb-4362-4b0d-8eddaab15c5e04f5. desregistraDLL.com. 2. pasta Cadeia Certificados WS (pasta com a cadeia de certificado dos WS). pasta URL (pasta com os arquivos as url dos WS).NET Framework Version 2. recomendamos que instale uma máquina virtual com a versão 32 bits do Windows para o ambiente de desenvolvimento. Página 5 . sem senha).br – Todos os direitos reservados.0 (Microsoft .FlexDocs. Instalação da DLL 2. assim fique atento à mensagem do regasm. caso a DLL não tenha sido registrada com sucesso. RegAsm.dll /tlb:NFe_Util. recomendamos que mantenha a estrutura de pasta existente (NFe_Util\v999aa) para uma melhor organização. pasta Exemplos de XML (pasta com arquivos de exemplos de XML).microsoft. a DLL deve ser registrada no Windows da seguinte forma: • • Digitando regasm NFe_Util. registraDLL. pasta Certificados (pasta com o certificado genérico da associacao.tlb no prompt de comando do DOS ou execute registraDLL. A versão do Windows requerida é 32bits (Windows XP ou Vista).2.1 Arquivos necessários para instalação da DLL A versão mais nova da DLL fica disponível para download em http://nf-eletronica.2 Registro da biblioteca no Windows O uso da DLL requer o Framework .NET 2.0 Redistributable Package (x86)) instalado. pasta DPEC (pasta com os arquivos de Schemas XML do DPEC). pasta Schemas (pasta com os Schemas XML da NF-e).

NET 2. acrescentamos novas funcionalidades e novas chamadas na DLL. O registro da DLL no Windows Vista deve ser realizado pelo usuário que tenha os privilégios de administrador do sistema e com a oção de User Account Control .UAC desabilitada.4 Uso da biblioteca A biblioteca é um componente COM e requer o Framework .Em uma situação muito rara. não será necessário fazer o registro da DLL. 2. em geral. bem como será necessário fazer refazer os passo de importação do type library da DLL. que estão descritos no itens seguintes na pasta da última versão da DLL registrada.FlexDocs. bastando a simples substituição dos arquivos contidos no pacote.bat pelo Explorer 2. Qualquer linguagem que ofereça automação OLE com uso do early binding/ late binding tem potencial para acessar a biblioteca.dll /unregister no prompt de comando do DOS ou execute desregistraDLL. Página 6 .4). quando se tratar de uma mesma versão (considerar a parte numérica.br – Todos os direitos reservados.com. Em caso de alteração de versão será necessário registrar a nova versão da DLL.3 Atualização da biblioteca Em caso de atualização da biblioteca. 2. • • Digitando regasm NFe_Util.0 e versão do Windows 32bits (Windows 2000/XP/Vista).4. 1. ex. pois quando alteramos a versão.1 Arquivos e pastas necessários para uso da DLL © 2008-2009 – www. pode ocorrer o seguinte erro: A única forma conhecida de corrigir este erro é a reinstalação do Windows.

não oferece a impressão a emissão do DANFE.0 do . selecione a opção Import Type Library do menu Project. Página 7 .4.\). vide item 2.DPEC).com. o uso da biblioteca está restrito a ambientes com Windows 32bits.4.ocorre quando a aplicação é executada em um drive mapeado na rede . Este processo cria as units NFe_Util_tlb. Ole Error 80070002 . 2. necessárias para fazer a interface com a dll.FlexDocs. etc.pas: • acrescentar o literal System nos types que causam erros de compilação: Exemplo: System.Os arquivos da DLL devem estar presentes na pasta da aplicação que vai utliza-la.4 Uso da biblioteca em Delphi WIN32 Para acessar a DLL em Delphi é necessário importar a Type Library da DLL NFe_Util.pas. URL (pasta com os arquivos das URLs dos WS das UF).4. clique no botão Add. Ole Error 80131534 . Ole Error 80231040 .pas. a biblioteca e a aplicação não podem ser instalados em uma pasta mapeada na rede.ocorre no VB quando a DLL não é encontrada no pasta da aplicação (no VB e no VFP. a ausência do Framework 2..NET ausente – solução instalação do framework e registro da DLL. Os usuários de Delphi 5 e 6 devem fazer os seguintes ajustes no arquivo mscorlib_tlb. DPEC (pasta com os arquivos de Schema XML do Sistema de Contingência Eletrônica . sendo necessário que a cópia dos arquivos e pasta na pasta do VB ou VFP. 2. será necessário copiar os arquivos e pastas acima relacionados para a pasta do VB ou VFP (c:\arquivos de programas\Microsoft Visual Studio\.br – Todos os direitos reservados.2 Limitações de uso da DLL • • • • o ambiente de programação deve ter suporte para acesso a componentes COM através de early/late binding.versão da DLL existente na pasta do aplicativo é diferente da registrada .solução atualizar a DLL da pasta do aplicativo também.4. clique no botão Create Unit. 0xC0000135 .Framework 2.2. a execução da em modo debug ocorre na pasta do VB ou VFP.. assim os seguintes arquivos e pastas devem estar presentes na pasta da aplicação ou do projeto: • • • • NFe_Util.. vide item 2.Byte ao invés de Byte: Byte = packed record © 2008-2009 – www. procure o arquivo NFe_Util. Importante frisar que o Visual Basic e o Visual FoxPro tem a característica de executar a aplicação em modo debug na pasta onde está instalado o framework.NET pode prejudicar o registro da biblioteca resultando no mesmo erro.a única solução é instalar a aplicação e a DLL no drive local. Schemas (pasta com os arquivos de Schema XML do Pacote de Liberação em uso).2. assim. 2.dll (biblioteca).tlb.solução execute os passo do item 2.a DLL não foi registrada . a inexistência dos arquivos provoca erro Ole Error 80070002 na execução da aplicação em modo debug.dll no Delphi: • • • • • Abra um novo projeto. mscorlib_tlb. na janela Import Type Library.3 Erros comuns decorrentes da falha na instalação/registro da DLL • • • • • Classe não registrada .1) .0 do .

ComCtrls. // // obtem versão // MessageDlg( ‘A versão da DLL NFe_Util em uso é: ‘+Util.4. Página 8 .Create.2 Exemplo para escolha de certificado digital em Delphi ' ' Exemplo para escolher um certificado digital do repositório de certificados digitais do usuário corrente do ' Windows uses NFe_Util_TLB. end. nome. (. begin // // instancia classe // © 2008-2009 – www. • eliminar a referencia à unit Variant nos uses. Importante: Todas as strings utilizadas na chamada da DLL deve ser declaradas como widestring. ComCtrls.m_value: System.1 Exemplo para obter versão da DLL em uso em Delphi // // Exemplo para obter versão da DLL em uso // uses NFe_Util_TLB.) var Util:NFe_Util_Interface.. ComOb. 2..versao.br – Todos os direitos reservados.. end. 2. mensagem: Widestring.4.com. mtInformation. (.4. // libera classe // Util :=nil. [mbOk].) var Util:NFe_Util_Interface.Byte.FlexDocs. 0).4. begin // // instancia classe // Util := CoUtil. i:integer. ComOb..

RR. OU=Teste Projeto NFe RS. GO. MS*.168. informar: // . mtInformation. C=BR.15.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy //'https://proxyserver:port'. RO e SP) // . SCAN – Sistema de Contingência do Ambiente Nacional // . PR. // // obtem certificado // i:= Util. 2. 0). MS. O=Teste Projeto NFe RS. end. ES*.Create. AL.Util := CoUtil. AP. Página 9 . MA. mensagem := ''. L=PORTO ALEGRE. SVAN – SEFAZ Virtual do Ambiente Nacional (CE*. PR* e RN) // siglaUF: Sigla da UF consultada // tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação //nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL //Ex.br – Todos os direitos reservados. 0) else MessageDlg( 'O Certificado:'#13+#13+nome+#13+#13+'foi localizado no repósitorio de certificados!'.3 Exemplo para acessar WS de Status Serviço em Delphi // // ConsultaStatusSCAN: Consulta Situação do Web Service de Recepção de NF-e // // Entradas: // siglaWS: Sigla da WS chamado. MT.4. // // // nome := ''. MG. SE e TO) // . // // libera classe // Util :=nil. BA.OK © 2008-2009 – www. assim teríamos algo do tipo 'http://192.com.: "CN=NFe . mensagem). SVRS – SEFAZ Virtual do Rio Grande do Sul (AC.FlexDocs.4. sigla da UF para UF com WS próprio (AM. // verificar com o cliente qual é o endereço do servidor proxy e a porta https. [mbOk]. DF. S=RS" //proxy . a porta padrão do https é 443.1:443' // Retornos: // ConsultaStatusSCAN: código do resultado da chamada do WS // 0 . PB. if i = 0 then MessageDlg( 'Certificado selecionado:'#13+#13+nome. PE. RS. CE. RJ. mtInformation.Associacao NF-e:99999090910270. [mbOk]. PA. SC.PegaNomeCertificado(nome. PI.

a aplicação abre uma janela para escolha do certificado existente // na repositório de certificados do usuário corrente. [mbOk]. senha).Nenhum Certificado Selecionado 8 . 10 Página . cabMsg. cabMsg. senha :=''.codigo do ambiente inválido 2 . proxy : =''. // // se o valor for omitido. usuario. tpamb := 2.ConsultaStatusSCAN(siglaWS. proxy. retWS. siglaUF.sigla da UF inválida 3 .FlexDocs. msg.Erro: Time-out ao chamar o WS 11 . siglaUF := 'MA'.Nenhum certificado válido foi encontrado com o nome informado 9 . // // instância classe // Util := CoUtil. tpAmb:integer.br – Todos os direitos reservados. msg.Message 10 .Erro não tratado de abertura/tratamento Arquivo ws.xml 6 .// // // // // // // // // // // // // // // // 1 .Erro Inesperado no acesso ao certificado digital: "+ex. DadosMsg. cabMsg :=''. dadosMsg. begin nomeCertificado := ''. siglaUF.Arquivo com a URL do WS não localizados 5 . usuario. // // mostra resultado // MessageDlg( 'Resultado da chamada:'#13+#13+retWS. proxy.Create. 0).a UF não oferece o serviço 4 . msg :=''.Erro: conectividade msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML do pedido de consulta Status enviado ao WS msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS Consulta Status SCAN var siglaWS. // // libera classe // © 2008-2009 – www.Erro de validação de Schema 7 .com. nomeCertificado. nomeCertificado.Erro: exceção do biblioteca criptográfica 12 . usuario :=''. dadosMsg :=''. tpamb. senha: Widestring. // // chama o método de Consulta Status // i:= Util. retWS :=''. siglaWS := 'SVAN'. mtInformation. retWS.

Util :=nil.tlb.0 é necessário importar a Type Library da DLL NFe_Util. localizar e marcar a “Biblioteca de utilidades da NF-e – PL_005a” na lista Avaible References.Util Set objNFeUtil = New NFe_Util.FlexDocs.5.dll no VB: • • • • • • • Abra um novo projeto. "Resultado" ' ' libera classe ' Set objNFeUtil = Nothing 2. clicar no botão OK para fechar a janela.1 Exemplo para obter versão da DLL em uso em VB ' ' Exemplo para obter versão da DLL em uso ' ' ' instancia classe ' Dim objNFeUtil As NFe_Util.4.versao.com/blog/?page_id=120. selecione a opção References do menu Project. 2..Util ' ' obtem versão ' MsgBox "A versão da DLL é: " + objNFeUtil. clicar no botão Abrir.com.4. clique no botão Browse.5.br – Todos os direitos reservados. procure o arquivo NFe_Util. O exemplo de uso da biblioteca em Delphi 7.0 Para acessar a DLL em VB 6. 2.0 está disponível em: http://nf-eletronica..2 Exemplo para escolha de certificado digital em VB ' ' Exemplo para escolher um certificado digital do repositório de certificados digitais do usuário corrente do ' Windows Dim Result As Long © 2008-2009 – www. 11 Página . end. vbInformation. na janela References .4.5 Uso da biblioteca em VB 6..

1:443' ' Retornos: © 2008-2009 – www.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy ' 'https://proxyserver:port'. PB.Associacao NF-e:99999090910270. SVRS – SEFAZ Virtual do Rio Grande do Sul (AC. vbInformation.15.168. PR. MA. a porta padrão do https é 443.: "CN=NFe . MS. DF. RO e SP) ' .5.br – Todos os direitos reservados. ES*. "Resultado" ' ' libera classe ' Set objNFeUtil = Nothing 2. OU=Teste Projeto NFe RS. PR* e RN) ' siglaUF: Sigla da UF consultada ' tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação ' nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL ' Ex. O=Teste Projeto NFe RS. 12 Página . SC. PA. RS. C=BR. msgResultado) MsgBox Str(Result) + " .Util Set objNFeUtil = New NFe_Util.Dim msgResultado As String Dim Certificado As String Certificado = "" msgResultado = "" ' ' instancia classe ' Dim objNFeUtil As NFe_Util.Util ' ' pega certificado ' Result = objNFeUtil. MG.FlexDocs. RR. SVAN – SEFAZ Virtual do Ambiente Nacional (CE*.PegaNomeCertificado(Certificado. assim teríamos algo do tipo 'http://192. ' verificar com o cliente qual é o endereço do servidor proxy e a porta https.3 Exemplo para acessar WS de Status Serviço em VB ' ' ConsultaStatusSCAN: Consulta Situação do Web Service de Recepção de NF-e ' ' ' ' Entradas: ' siglaWS: Sigla da WS chamado. CE. RJ. AL. BA. PE.com. PI. sigla da UF para UF com WS próprio (AM. L=PORTO ALEGRE. AP. informar: ' . SE e TO) ' . S=RS" ' proxy . MS*. SCAN – Sistema de Contingência do Ambiente Nacional ' .4. GO. MT." + msgResultado.

Nenhum certificado válido foi encontrado com o nome informado ' 9 . 13 Página .codigo do ambiente inválido ' 2 .OK ' 1 .Nenhum Certificado Selecionado ' 8 .Arquivo com a URL do WS não localizados ' 5 .com.a UF não oferece o serviço ' 4 .15.Erro não tratado de abertura/tratamento Arquivo ws.Erro: conectividade ' msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) ' msgDados: XML do pedido de consulta Status enviado ao WS ' msgRetWS: XML de resposta do WS ' msgResultado: literal do resultado da chamada do WS Consulta Status SCAN ' ' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL ' Dim msgDados As String Dim msgCabec As String Dim msgRetWS As String Dim msgResultado As String Dim siglaUF As String Dim siglaWS As String Dim certificado As String ' ' As variáveis do proxy devem ser informadas se necessário ' ' proxy deve ser informado com o endereço da url : porta.1:443 ' Dim proxy.xml ' 6 .FlexDocs. ex: 192.' ConsultaStatusSCAN: código do resultado da chamada do WS ' 0 .Erro de validação de Schema ' 7 .168.Message ' 10 .Erro: Time-out ao chamar o WS ' 11 .br – Todos os direitos reservados. usuario. senha As String ' Dim ambiente As Integer ' ' IMPORTANTE: todas as variáveis utilizadas como parâmetro da DLL devem ser inicialiadas ' ' proxy = "" usuario = "" senha = "" msgDados = "" msgCabec = "" msgRetWS = "" certificado ='' siglaWS =”'SP”' siglaUF = “SP” ambiente = 2 © 2008-2009 – www.Erro Inesperado no acesso ao certificado digital: "+ex.Erro: exceção do biblioteca criptográfica ' 12 .sigla da UF inválida ' 3 .

2.Dim Result As Long Dim objNFeUtil As NFe_Util. msgCabec.6 Uso da biblioteca em Visual FoxPro 8. Selecionar a opção Object Browser no menu Tools.versao() ? "Resultado da chamada da versao:" ? ?i WAIT © 2008-2009 – www. siglaUF.com/blog/?page_id=120.4.Util ' ' ' Result = objNFeUtil. ambiente. senha) ' ' libera classe ' Set objNFeUtil = Nothing O exemplo de uso da biblioteca em VB 6. msgRetWS. msgResultado.ConsultaStatusSCAN(siglaWS."") && && obtem versão && i= obj. certificado. 14 Página .0 • • • • Abrir o VFP."".4.6.Util ' ' instancia a DLL ' Set objNFeUtil = New NFe_Util.br – Todos os direitos reservados. msgDados. usuario. Clicar no ícone do canto superior dieito do Object Browser (hint: Open Type Library). proxy. Selecionar a aba COM Libraries e a Biblioteca de Utilidades da NF-e PL_005a.1 Exemplo para obter versão da DLL em uso em VFP && && Exemplo para obter versão da DLL em uso && CLEAR && && instancia classe && obj = CREATEOBJECTEX("NFe_Util_PL005a.0 está disponível em: http://nf-eletronica.com. 2.FlexDocs.util".

util".3 Exemplo para acessar WS de Status Serviço em VFP && && ConsultaStatusSCAN: Consulta Situação do Web Service de Recepção de NF-e && && && && Entradas: && siglaWS: Sigla da WS chamado.peganomecertificado(@nomeCert. MT. SE e TO) && .6. PR* e RN) && siglaUF: Sigla da UF consultada && tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação &&nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL &&Ex.2.4. BA. RO e SP) && . DF. CE. MS.com. OU=Teste Projeto NFe RS. RJ. RR. AP. SCAN – Sistema de Contingência do Ambiente Nacional && . SVAN – SEFAZ Virtual do Ambiente Nacional (CE*. msgResultado as String nomeCert ='' msgResultado = '123' && && instancia classe && obj = CREATEOBJECTEX("NFe_Util_PL005a. MG.2 Exemplo para escolha de certificado digital em VFP && && Exemplo para escolher um certificado digital do repositório de certificados digitais do usuário corrente do && Windows && CLEAR Private nomeCert as String. O=Teste Projeto NFe RS. L=PORTO ALEGRE.FlexDocs. PA. informar: && . PR.Associacao NF-e:99999090910270. MS*."") && && pega certificado && i= obj. AL. C=BR. PE.: "CN=NFe . @msgResultado) ? ? ? "Resultado da chamada do peganomecertificado:" ?i ? nomecert ? msgresultado WAIT 2. SVRS – SEFAZ Virtual do Rio Grande do Sul (AC. RS. GO. PI. MA. S=RS" © 2008-2009 – www. sigla da UF para UF com WS próprio (AM. ES*.4.br – Todos os direitos reservados. PB. SC. 15 Página ."".6.

Erro: Time-out ao chamar o WS && 11 .Erro não tratado de abertura/tratamento Arquivo ws.Nenhum Certificado Selecionado && 8 . assim teríamos algo do tipo 'http:&&192.15. 16 Página ."") && && acessa WS de Consulta Status © 2008-2009 – www. tpAmbiente as Integer.a UF não oferece o serviço && 4 .Erro: exceção do biblioteca criptográfica && 12 .FlexDocs.com. Usuario as string.Erro: conectividade && msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) && msgDados: XML do pedido de consulta Status enviado ao WS && msgRetWS: XML de resposta do WS && msgResultado: literal do resultado da chamada do WS Consulta Status SCAN CLEAR PRIVATE siglaWS as String.Erro Inesperado no acesso ao certificado digital: "+ex.util".Message && 10 ."". siglaUF as String. Senha as string PRIVATE msgCabec as String. && verificar com o cliente qual é o endereço do servidor proxy e a porta https.OK && 1 .usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy &&'https://proxyserver:port'. a porta padrão do https é 443.&&proxy .Erro de validação de Schema && 7 .codigo do ambiente inválido && 2 .br – Todos os direitos reservados.xml && 6 . Proxy as String.168.Arquivo com a URL do WS não localizados && 5 .1:443' &&Retornos: &&ConsultaStatusSCAN: código do resultado da chamada do WS && 0 . msgRetWS as String nomeCert ='' siglaWS = 'SP' siglaUF = 'SP' tpAmbiente = 2 Proxy = '' Usuario = '' Senha = '' msgCabec ='' msgDados ='' msgRetWS = '' && && instancia classe && obj = CREATEOBJECTEX("NFe_Util_PL005a.sigla da UF inválida && 3 . msgDados as String.Nenhum certificado válido foi encontrado com o nome informado && 9 .

@msgDados.2 Exemplo para escolha de certificado digital em em c# . Iniciar um novo projeto. 17 . 2.FlexDocs. 2. @Proxy.NET • • • • Abrir o Visual Studio.Versao()).7.br – Todos os direitos reservados.1 Exemplo para obter versão da DLL em uso em c# . 2. // // mostra resultado // MessageBox.Show("A versão em uso é : " + util.&& i = obj. @Senha) ? ? ? "Resultado da chamada da consulta Status:" ?i ? msgResultado ? ? msgCabec ? ? msgDados ? ? msgRetWs WAIT O exemplo de uso da biblioteca em VFP 8. @tpAmbiente. Adicionar a DLL ao projeto através do add reference do solution explorer. @siglaUF.NET // // Exemplo para obter versão da DLL em uso // // // instância classe // NFe_Util_PL005a.0 está disponível em: http://nf-eletronica. Inserir a diretiva using NFe_Util_PL005a no arquivo de código. @msgRetWs.com.4.NET // // Exemplo para escolher um certificado digital do repositório de certificados digitais do usuário corrente do Página © 2008-2009 – www.4. @msgResultado.ConsultaStatusSCAN(@siglaWS.7.4. @Usuario. @msgCabec.Util util = new NFe_Util_PL005a.Util().com/blog/?page_id=120. @nomeCert.7 Uso da biblioteca em c# .

AP. AL. sigla da UF para UF com WS próprio (AM. out msgResultado). SC.FlexDocs.3 Exemplo para acessar WS de Status Serviço em c# ." + msgResultado + "\r\rNome do titular do certificado selecionado:\r\r" + nome). PR* e RN) // siglaUF: Sigla da UF consultada // tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação //nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL © 2008-2009 – www. // // mostra resultado // MessageBox. CE. RO e SP) // .NET // // ConsultaStatusSCAN: Consulta Situação do Web Service de Recepção de NF-e // // Entradas: // siglaWS: Sigla da WS chamado. PE. SVRS – SEFAZ Virtual do Rio Grande do Sul (AC. DF. MT.4. // // chama o método PegaNomeCertificado // int resultado = util. MS. SVAN – SEFAZ Virtual do Ambiente Nacional (CE*. MA. ES*.Util util = new NFe_Util_PL005a. 2. caso o conteúdo seja omitido. RJ. RR. MG. RS.7.// Windows // // declara as variáveis que serão utilizadas na chamada // // nome do titular do certificado.ToString() + " . PR. // // variável utilizada para a devolução da literal do retorno do processamento // string msgResultado = "".Show("Resultado da chamada: \r\r" + resultado. será aberto uma caixa de dialogo // para escolha do certificado existente no repositório de certificados do usuário corrente do windows // este nome é utilizado para passar o certificado selecionado nas chamadas dos WS que exigem // a indicação de um certificado digital string nome = "". 18 Página . informar: // . PA. SE e TO) // . // // instância classe // NFe_Util_PL005a. BA. SCAN – Sistema de Contingência do Ambiente Nacional // .PegaNomeCertificado(ref nome. MS*. PI. PB. GO.com.br – Todos os direitos reservados.Util().

string _msgResultado = "".Nenhum Certificado Selecionado // 8 .Erro: Time-out ao chamar o WS // 11 .a UF não oferece o serviço // 4 .15. string _senha = "". string _siglaUF = "MA". string _msgCabec = "". S=RS" //proxy .168.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy //'https://proxyserver:port'.Util util = new NFe_Util_PL005a.: "CN=NFe .OK // 1 . int _tipoAmbiente = 2.Message // 10 . 19 Página . C=BR. // verificar com o cliente qual é o endereço do servidor proxy e a porta https.Util(). a porta padrão do https é 443.1:443' // Retornos: // ConsultaStatusSCAN: código do resultado da chamada do WS // 0 .br – Todos os direitos reservados.Erro não tratado de abertura/tratamento Arquivo ws. string _retWS = "". OU=Teste Projeto NFe RS. _tipoAmbiente. string _msgDados = "". O=Teste Projeto NFe RS.//Ex.Erro Inesperado no acesso ao certificado digital: "+ex.xml // 6 .ConsultaStatusSCAN(_siglaWS.com.Associacao NF-e:99999090910270. assim teríamos algo do tipo 'http://192. string _proxy = "". a aplicação abre uma janela para escolha do certificado existente // na repositório de certificados do usuário corrente.codigo do ambiente inválido // 2 .sigla da UF inválida // 3 . L=PORTO ALEGRE. string _usuario = "".Arquivo com a URL do WS não localizados // 5 . string _nomeCertificado = "". // // instância classe // NFe_Util_PL005a.Erro: conectividade // msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) // msgDados: XML do pedido de consulta Status enviado ao WS // msgRetWS: XML de resposta do WS // msgResultado: literal do resultado da chamada do WS Consulta Status SCAN string _siglaWS = "SVAN".Erro: exceção do biblioteca criptográfica // 12 . // // se o valor for omitido. © 2008-2009 – www. _siglaUF.Erro de validação de Schema // 7 .FlexDocs. // // chama o método de Consulta Status // int resultado = util.Nenhum certificado válido foi encontrado com o nome informado // 9 .

20 Página . out _msgCabec.br – Todos os direitos reservados.com/blog/?page_id=120. O exemplo de uso da biblioteca em c# . _usuario. _senha). out _msgDados._nomeCertificado.ToString() + " ." + _msgResultado + "\r\rXML da resposta do WS:\r\r" + _retWS).NET está disponível em: http://nf-eletronica.Show("Resultado da chamada: \r\r" + resultado. © 2008-2009 – www. out _retWS. out _msgResultado.com. // // mostra resultado // MessageBox. _proxy.FlexDocs.

Do ponto de vista de segurança. qualquer certificado digital de Pessoa Jurídica – PJ do tipo e-CNPJ ou e-PJ emitido por Autoridade Certificadora . uso avançado da chave = Autenticação Cliente. algoritmo de assinatura = sha1RSA. a única opção que resta é contatar algum cliente interessado em emitir NF-e de forma voluntária ou que conste do rol de contribuintes obrigados a emitir NF-e para solicitar a cessão de um certificado digital ou a emissão de certificado digital indicando o desenvolvedor como responsável pelo certificado digital emitido. Caso o desenvolvedor seja contribuinte do ICMS. sendo indicado para uso na autenticação e acesso de sistemas não confiáveis. pois para ter acesso a todos as funcionalidades dos Web Services da NF-e é necessário que o emissor esteja credenciado para emitir NF-e na SEFAZ de origem. devendo conter o CNPJ da empresa no campo otherName OID = 2. emitida por Autoridade Certificadora credenciada ao ICP/BR.3.FlexDocs. Certificados Digitais O projeto da NF-e utiliza certificados digitais para autenticação de acesso e assinatura digital. Para testes de assinatura digital e familiarização com uso de certificados digitais é possível o uso de certificados digitais genéricos (não autêntico) como por exemplo o certificado digital da associação que está disponível na internet e no pacote da DLL. pois todas as operações são realizadas no chip existente no chip portátil e o acesso ao chip é realizado mediante autenticação com fornecimento do PIN. © 2008-2009 – www.AC cedenciada ao ICP-BR pode ser utilizado no projeto. O certificado digital é uma das principais dificuldades que o desenvolvedor enfreta no projeto da NF-e.16. 3.3. Os certificados digitais do tipo A1 ou A3 têm as mesmas funcionalidades e a principal diferença está relacionado com a mídia de armazenamento e a portabilidade do certificado digital. A princípio. que são equipamentos de terceiros não confiáveis.v3. desconsiderando a hipótese de passar a ser contribuinte do ICMS. que contem um chip com capacidade de criptografia (assinatura digital).76.br – Todos os direitos reservados.3. não basta adquirir um certificado digital de PJ autêntico. pois a chave privada utilizada para assinatura digital nunca é exposta. 21 Página . O certificado digital do tipo A3 é armazenado em dispositivo portátil inviolável do tipo smart card ou token USB. Caso o desenvolvedor não seja contribuinte do ICMS. A portabilidade e a segurança do dispositivo tipo A3 permite o uso de forma similar ao uso que temos com o cartão de conta corrente ou de crédito que utilizamos nas agências bancárias e pontos de vendas. certificado digital de Pessoa Jurídica. este tipo de certificado é mais seguro.1 Padrão de Certificado Digital O Projeto NF-e exige o uso de Certificado Digital com as seguintes características: • • • • • padrão X509 .com. uso da chave = Assinatura Digital e Não-recusa. existe a possibilidade de solicitar o credenciamento para se tornar emissor de NF-e e poderá realizar todos os testes e ajustes na sua aplicação em seu próprio nome. pois os Web Services da NF-e não permite o uso certificado digital não autêntico para consumir os serviços Além de tudo.1. pois além de ser um tema desconhecido para a grande maioria.

O certificado digital do tipo A1 é mais indicado para uso em aplicação. a não ser que a empresa tenha condições de adquirir um Hardware Security Module – HSM.br – Todos os direitos reservados. que tem um desempenho muito superior se comparado ao chip utilizado no smart card ou token. o suporte do fornecedor do certificado digial não orienta para verificar esta possibilidade. 3. A maioria dos novos usuários tem dificuldade para solucionar este problema. não sendo indicado para uso que exige portalibilidade como é o caso de uso pessoal do ceritificado digital como já foi citado. pois o certificado digital do tipo A1 não tem problema de incompatibilidade e portanto o critério para escolher o fornecedor será preço e localização da Autoridade de Registro – AR. 22 Página . muito provavelmente a facilidade de acesso da AR deverá ser o fator preponderante para a escolha do fornecedor do certificado digital (CEF. seguindo as orientações do fornecedor do certificado digital.CSP do Sistema Operacional do equipamento ou pela Aplicação. como é o caso da emssão da NF-e. além da versatilidade de uso e performance que é superior ao certificado do tipo A3. que eleva o custo final de aquisição. Como existe a necessidade da presença do titular da empresa na AR para adquirir o certificado digital.gov. etc. pois as operações são realizadas no equipamento que está instalado. 3. A nossa recomendação é pela opção do certificado digital do tipo A1 que acreditamos ser o mais adequado para uso em aplicações.2 Qual tipo de certificado e de quem adquirir? Sempre recomendamos a aquisição de certificado digital de PJ (e-PJ ou e-CNPJ) do tipo A1. O certificado digital do tipo A1 é arquivo digital que deve ser instalado em algum computador para que possa ser utilizado.Também vale observar que o certificado digital do tipo A3 podem apresentar mal funcionamento por uso de software gerenciador do dispositivo digital não compatível com o smart card ou token. que significa que o mesmo certificado digital pode ser utilizado em mais de um equipamento. insistindo que a rotina de assinatura utilizada está com problemas. pois de nada adianta o preço ser muito bom. pois o mesmo será instalado em equipamento conhecido e será acessado apenas pela aplicação e com controle de acesso dos usuários ao sistema não existe grande risco de uso indevido do certificado.iti. Uma outra característica interessante do certificado digital do tipo A1 é possibilidade de gerar cópia de segurança do certificado digital. pois possibilita a manutenção de uma cópia de segurança do certificado digital do cliente para realizar os testes de implementação e suporte.br/twiki/bin/view/Certificacao/EstruturaIcp). até porque na maioria dos casos. SERASA. sem considerar a perda de tempo de deslocamento.FlexDocs.3 Instalação do Certificado Digital Cliente Após a aquisição do certificado digital. mas deve ser utilizado com muita cautela e responsabilidade. mas a AR estar localizada em local muito distante. que não deve ser a realidade dos nossos usuários em função do custo e do volume de emissão. Certisign. o próximo passo é a instalação do mesmo no equipamento que será utilizado. © 2008-2009 – www. assim como ocorre com o certificado digital genérico da associação que sofreu o milagre da multiplicação e deve estar sendo utilizado por centenas de pessoas. SERPRO/Correios.com. pois pode ter consequencias jurídicas não desejadas se realizada sem o devido consentimento do titular do certificado digital.). O fornecedor do certificado digital pode ser qualquer um (http://www. neste tipo de certificado digital todas as operações de criptográfia são realizadas pelo provedor do serviço de criptográfia . A dependência de um hardware externo para o seu funcionamento torna o certificado digital mais vulnerável. Esta característica é bastante interessante para o desenvolvedor. ou seja.

FlexDocs. pode prejudicar o processo de assinatura digital. se o certificado não existir nesta aba é necessário instalar o certificado digital novamente.Um certificado digital não instalado corretamente pode causar problema na autenticação nos Web Services da NF-e e no pior caso. Os certificados só é considerado válido se todos os certificados da cadeia forem considerados válidos.br – Todos os direitos reservados. 23 Página . O problema mais comum é falta de instalação dos certificados digitais da cadeia do certificado digital que em geral provoca o seguinte erro na consumo do Web Service: The request failed with HTTP status 403: Forbidden A verificação da correta instalação do certificado digital do cliente pode ser feita como segue: • • • • • abrir o Internet Explorer. clicar no botão Certificados da aba Conteúdo. clicar em Opções da Internet no item Ferramentas do menu. verificar se o status do certificado é válido na aba Caminho de certificação. Exemplo de Certificado Digital com problemas: © 2008-2009 – www. A forma de instalar os certificados digitais da cadeia consta dos procedimentos de instalação do certificado digital adquirido que deverá ser executado em todo equipamento que se deseja utilizar o certificado digital. o que vale dizer que os todos os certificados da cadeia são confiáveis e constam do repositório de certificados em uso. selecionar o certificado digital na aba pessoal e clicar no botão Exibir.com.

24 Página .com.Exemplo de Certificado Digital corretamente instalado: © 2008-2009 – www.br – Todos os direitos reservados.FlexDocs.

produção). RO. RJ. AL.utiliza certificado próprio . MA. pois muitas UF estão concluindo o desenvolvimento dos sistemas próprios.AC SEF-DF. RR. PR. o emissor tem a opção de instalar somente a cadeia de certificação necessária para acessar o Web Service da sua UF e do SCAN. também é necessário instalar os certificados digitais da cadeia do certificado digital do Web Sevice da UF de localização do emissor. SCAN e SVAN (CE. Também vale observar que a situação está em constante alteração. Apesar de existirem 28 unidades federadas. RS e SP).SVAN (MA. Os Web Services utilizam certificados digitais das seguintes cadeias de certificação da hierarquia ICP-Brasil (em ordem alfabética): • • • • • • • • AC CertiSign Múltipla v3 (CE. AC SERPRO Final v1 (GO. PA.3. AC SERPRORFB (PR – homologação). A seguinte UF não utiliza certificados digitais da hierarquia ICP-Brasil no ambiente de homologação: • DF . MT. PR – produção e SP).4 Instalação do Certificado Digital do Web Service Além do certificado digital do cliente. AC SERASA SRF (AM e RO). AP. RR. RS e SEFAZ Virtual RS (AC. MS. BA. PA. PE.FlexDocs. MS. AC PRODEMGE G2 (MG –produção). somente 14 unidades federadas mantêm aplicação própria (AM. RJ. MG. PB. AP. AM.ICP-Brasil que pode ser obtida no Repositório da AC Raiz. SE e TO) ou a SEFAZ Virtual do Ambiente Nacional . AL. SE e TO)). Os arquivos com a cadeia de certificados digitais está disponível na pasta Cadeia Certificados WS e pode ser instalada facilmente selecionando o arquivo no explorer e clicando com o botão direito a opção instalar. as demais unidades federadas utilizam a SEFAZ Virtual do RS (AC. AC CertiSign Múltipla G3 (DF . existem UF que utilizam aplicação própria e SEFAZ Virtual. AC SERPRO SRF v1 (BA. PR e RN)). SC. PE. Quando o certificado digital do Web Service não está instalado ocorre o seguinte erro: O caminho mais curto é a instalação de toda a cadeia de certificação das Autoridades Certificadoras da InfraEstrutura de Chaves Públicas Brasileira . 25 Página . SC. PI e RN). DF. CE. PB.br – Todos os direitos reservados. ES. AC PRODEMGE (ES e MG – homologação). © 2008-2009 – www. Atualmente são mais 78 certificados digitais. MT. GO. PI.com.

contundo.certisign.FlexDocs.br – Todos os direitos reservados.3. Todos os casos de problemas de certificados digitais que tivemos que não estavam relacionados com a falta de instalação da cadeia de certificados foram ocasionados pelo uso do gerenciador de acesso criptográfico não compatível com o smart card ou token e foram resolvidos com a atualização do gerenciador. caso problema persista e o certificado digital em uso seja do tipo A3. assim contate a SEFAZ para verificar esta possibilidade.br/suporte/downloads/SafeSign/SafeSign-Standard-2. recomendamos fortemente que procure uma versão mais atualizada do gerenciador de acesso criptográfico safesign: https://www. © 2008-2009 – www.exe.com.0. existe uma possibilidade grande de a cadeia de certificados não estar atualizada no Web Service.com. 26 Página . A maioria dos problemas com certificado digital são solucionados com a instalação dos certificados digitais da cadeia.5 Problemas com certificado digital Caso o problema com o certificado digital persista e o certificado digital do cliente em uso seja novo.3.

br – Todos os direitos reservados. Como o credenciamento só é permitido para contribuintes do ICMS.FlexDocs. O acesso aos demais Web Services é prejudicado.4.com. sendo importante que o emissor tenha conhecimento da existência destes dois ambientes. As NF-e reais devem ser emitidas no ambiente de produção. Existem WS que são abertos para acesso público como é o caso da Consulta Status e da Consulta Status da NFe. em razão da existência da regra de verificação da situação de credenciamento do emissor. este campo é utilizado pelo WS para verificar se a mensagem foi enviada ao ambiente desejado. O ambiente de homologação é destinado aos testes das empresas e da própria SEFAZ. As url dos WS são diferentes e existe um campo nas mensagens que indica qual o ambiente que estamos operando. o desenvolvedor depende de conseguir um cliente interessado em emitir NF-e para implementar a NF-e. Credenciamento para emissão de NF-e A SEFAZ oferece dois ambientes: produção e homologação para emissão de NF-e. © 2008-2009 – www. 27 Página .

Página 28 .SVAN. Quando a correção de uma NF-e rejeitada ocorre no dia seguinte. • • • • A partir da versão 1. apesar de ser permitido a manutenção da numeração da NF-e. Envio de Lote de NF-e . Para cancelamento de uma NF-e é necessário informar a chave de acesso da NF-e.xml.br – Todos os direitos reservados.5. Consulta Status da NF-e – serviço que oferece a consulta do Status da NF-e (autorizada. cujas NF-e podem ter sido autorizados ou não.com.importante ressaltar que o WS da SEFAZ só recepciona lotes de NF-e que podem conter de 1 a 50 NF-e. Web Service essenciais da NF-e Existe uma coleção Web Services que são essenciais para a implementação da NF-e em qualquer ERP ou sistema de faturamento. O interessado em enviar uma NF-e de cada vez pode utilizar a funcionalidade de envio de NF-e oferecida pela DLL (vide item 4).SVRS.FlexDocs. desde que o tamanho do lotes seja menor que 500kb. o emissor deve consultar o resultado do processamento do lote enviado. recomendamos o uso das chamadas de segunda geração até porque as chamadas de primeira geração serão eliminadas em breve. o número de protocolo de autorização (não é o número do recibo do envio do lote) e a justificativa de cancelamento. significando dizer que o processo de recepção e autorização de NF-e ocorre em duas etapas. WS da SEFAZ Virtual do Ambiente Nacional . Na primeira etapa o emissor envia os lotes de NF-e e recebe um recibo de entrega do lote. denegada ou cancelada). Uma NF-e só pode ser cancelada em até 168 horas da sua autorização e desde que não tenha ocorrido a circulação da mercadoria que acoberta. Após alguns minutos. a SEFAZ recomenda a atribuição de um novo número de NF-e para manter a ordem cronológica das emissões. Cancela NF-e – serviço que permite o cancelamento de uma NF-e autorizada. devendo o número da NF-e atribuído anteriormente ser inutilizado. WS do Sistema de Contingência do Ambiente Nacional – SCAN. © 2008-2009 – www. Busca de resultado do processamento do lote – o processo de recepção de NF-e é um processo assíncrono. Deve ser utilizado para os casos em que ocorrerem lacunas ou saltos na numeração da NF-e por problemas da aplicação ou nos casos em que uma NF-e foi rejeitada ou a sua situação é desconhecida (falha no envio/recepção/etc.3 da DLL passamos a oferecer uma nova família de chamadas dos WS com suporte na escolha do WS de recepção da NF-e que pode ser: • • • • WS próprio.). Até então a alteração do WS exigia a alteração das url existentes no arquivo ws. conforme relacionamos a seguir: • • Consulta Status do serviço de recepção de NF-e – serviço que oferece o status do serviço de recepção de NF-e e o tempo de médio processamento dos últimos 5 minutos. Inutiliza número de NF-e – serviço que permite a inutilização de um número de NF-e que não tenha sido utilizado (NF-e autorizada ou denegada). Assim. WS da SEFAZ Virutal do Rio Grande do Sul .

L=PORTO ALEGRE.1 Funcionalidades de primeira geração Estas funcionalidades são obsoletas e os usuários que ainda utilizam estas chamadas devem atualizar a aplicação para utilizar as funcionalidades de segunda geração (item 5.168.OK 1 .1 ConsultaStatus . A escolha da SEFAZ Virtual ou do SCAN deve ser feita com a alteração das urls no arquivo ws.Associacao NF-e:99999090910270.1.Erro de validação de Schema 7 .2).FlexDocs.sigla da UF inválida 3 .Arquivo com a URL do WS não localizados 5 .codigo do ambiente inválido 2 . Página 29 .br – Todos os direitos reservados.5. O=Teste Projeto NFe RS.Nenhum Certificado Selecionado © 2008-2009 – www. C=BR.Erro não tratado de abertura/tratamento Arquivo ws.: "CN=NFe . OU=Teste Projeto NFe RS. assim teríamos algo do tipo 'http://192.xml 6 . 5. S=RS" proxy . // verificar com o cliente qual é o endereço do servidor proxy e a porta https.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'.WS de Consulta Status ConsultaStatus: Consulta Situação do Web Service de Recepção de NF-e Entradas: siglaUF: Sigla da UF do WS chamado tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex.15.com. a porta padrão do https é 443.xml.1:443' Retornos: ConsultaStatus: código do resultado da chamada do WS 0 .a UF não oferece o serviço 4 .

WS de recepção de lote de NF-e As notas fiscais devem ser enviadas na estrutura de lote. string nomeCertificado.Erro: conectividade msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML do pedido de consulta Status enviado ao WS msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS Consulta Status int ConsultaStatus(string siglaUF.Erro Inesperado no acesso ao certificado digital: "+ex. out string msgCabec. Para enviar uma NF-e individual queira utilizar o enviaNFeSCAN (item 8. out string msgResultado. 5. o não envio na estrutura de lote irá provocar o erro 215/225 relacionados com a falha na validação do XML.com. mesmo que seja uma única NF-e. EnviaLote: Envia Lote de NF-e Entradas: siglaUF: Sigla da UF do WS chamado tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação © 2008-2009 – www.1. out string msgRetWS.Erro: exceção do biblioteca criptográfica 12 . string senha ). out string msgDados.Erro: Time-out ao chamar o WS 11 .Nenhum certificado válido foi encontrado com o nome informado 9 . string proxy. int tipoAmbiente.8 .FlexDocs. string usuario.Message 10 .2 EnviaLote .2).br – Todos os direitos reservados. Página 30 .

sigla da UF inválida 3 .a UF não oferece o serviço 4 .Erro: exceção do biblioteca criptográfica 12 .15.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'.168. int tipoAmbiente.codigo do ambiente inválido 2 .Nenhum Certificado Selecionado 8 . C=BR.Message 10 . © 2008-2009 – www. a porta padrão do https é 443. Página 31 . // verificar com o cliente qual é o endereço do servidor proxy e a porta https. S=RS" proxy .com.1:443' Retornos: EnviaLote: código do resultado da chamada do WS 0 . assim teríamos algo do tipo 'http://192. OU=Teste Projeto NFe RS.msgDados: XML do Lote de NF-e a ser enviado ao WS nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex.OK 1 . L=PORTO ALEGRE. O=Teste Projeto NFe RS.Erro: conectividade msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS EnviaLote int EnviaLote(string siglaUF.: "CN=NFe .xml 6 .Nenhum certificado válido foi encontrado com o nome informado 9 .Erro de validação de Schema 7 . out string msgRetWS.Erro: Time-out ao chamar o WS 11 .br – Todos os direitos reservados.Erro Inesperado no acesso ao certificado digital: "+ex.Arquivo com a URL do WS não localizados 5 . out string msgCabec.FlexDocs. string nomeCertificado.Associacao NF-e:99999090910270. ref string msgDados.Erro não tratado de abertura/tratamento Arquivo ws.

string senha).sigla da UF inválida 3 . L=PORTO ALEGRE.Erro de validação de Schema 7 . assim teríamos algo do tipo 'http://192.3 BuscaLote .1.: "CN=NFe . 5.Nenhum Certificado Selecionado 8 .Nenhum certificado válido foi encontrado com o nome informado © 2008-2009 – www.out string msgResultado.Associacao NF-e:99999090910270.Arquivo com a URL do WS não localizados 5 .usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'. // verificar com o cliente qual é o endereço do servidor proxy e a porta https.FlexDocs. Página 32 .br – Todos os direitos reservados.Erro não tratado de abertura/tratamento Arquivo ws. string proxy. S=RS" proxy .codigo do ambiente inválido 2 . O=Teste Projeto NFe RS.xml 6 . a porta padrão do https é 443.com. C=BR.168.a UF não oferece o serviço 4 .15. string usuario.WS de consulta processamento de lote de NF-e BuscaLote: consulta processamento de Lote de NF-e Entradas: siglaUF: Sigla da UF do WS chamado tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação nroRecibo: Número do Recibo do Lote desejado nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex. OU=Teste Projeto NFe RS.1:443' Retornos: BuscaLote : código do resultado da chamada do WS 0 .OK 1 .

out string msgDados.Erro: Time-out ao chamar o WS 11 . int tipoAmbiente. 5. string usuario.Erro Inesperado no acesso ao certificado digital: "+ex. string senha). C=BR. string nomeCertificado.: "CN=NFe . L=PORTO ALEGRE. O=Teste Projeto NFe RS.br – Todos os direitos reservados. Página 33 . OU=Teste Projeto NFe RS.4 ConsultaNF .WS de consulta situação da NF-e ConsultaNF: Consulta Situação atual da NF-e Entradas: siglaUF: Sigla da UF do WS chamado tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação chaveNFe: Chave de Acesso da NF-e desejada nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex.com. string proxy.Message 10 .Erro: conectividade msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML da área de dados enviada ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS BuscaLote int BuscaLote(string siglaUF.FlexDocs. out string msgRetWS.Associacao NF-e:99999090910270.Erro: exceção do biblioteca criptográfica 12 .9 . out string msgResultado. out string msgCabec. string nroRecibo.1. S=RS" © 2008-2009 – www.

Página 34 . © 2008-2009 – www. assim teríamos algo do tipo 'http://192.xml 6 .a UF não oferece o serviço 4 .Nenhum certificado válido foi encontrado com o nome informado 9 .usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'.Nenhum Certificado Selecionado 8 .Arquivo com a URL do WS não localizados 5 .proxy .OK 1 .Erro Inesperado no acesso ao certificado digital: "+ex.Erro de validação de Schema 7 . string proxy. out string msgRetWS.Erro não tratado de abertura/tratamento Arquivo ws.Erro: exceção do biblioteca criptográfica 12 . // verificar com o cliente qual é o endereço do servidor proxy e a porta https. out string msgResultado.168.Message 10 .FlexDocs.codigo do ambiente inválido 2 . a porta padrão do https é 443.sigla da UF inválida 3 .15.Erro: conectividade msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML da área de dados enviada ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS ConsultaNF int ConsultaNF(string siglaUF. out string msgCabec. string nomeCertificado. int tipoAmbiente. string chaveNFe.br – Todos os direitos reservados.com. out string msgDados.1:443' Retornos: ConsultaNF: código do resultado da chamada do WS 0 .Erro: Time-out ao chamar o WS 11 .

string usuario.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'.WS de cancelamento de NF-e CancelaNF: Cancelamento de NF-e Entradas: siglaUF: Sigla da UF do WS chamado tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação chaveNFe: Chave de Acesso da NF-e desejada nProtocolo: Número do protocolo de autorização da NF-e justificativa: Justificativa de cancelamento (deve ter pelo nos 15 caracteres) licenca: chave da licença de uso da aplicação.Nenhum Certificado Selecionado © 2008-2009 – www.Arquivo com a URL do WS não localizados 5 .15.1. string senha).xml 6 .sigla da UF inválida 3 .1:443' Retornos: CancelaNFe: código do resultado da chamada do WS 0 .5 CancelaNF . S=RS" proxy . L=PORTO ALEGRE.Erro não tratado de abertura/tratamento Arquivo ws. necessaário para ambiente de produção nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex.: "CN=NFe . OU=Teste Projeto NFe RS.com. 5. C=BR.OK 1 .FlexDocs. assim teríamos algo do tipo 'http://192.Associacao NF-e:99999090910270. Página 35 .a UF não oferece o serviço 4 . a porta padrão do https é 443.br – Todos os direitos reservados. // verificar com o cliente qual é o endereço do servidor proxy e a porta https. O=Teste Projeto NFe RS.codigo do ambiente inválido 2 .Erro de validação de Schema 7 .168.

out string msgRetWS. out string msgDados. string usuario. string chaveNFe.Erro Ao assinar o documento .8 .ID deve ser string %RefUri(Atributo)% 20 .Erro Inesperado no acesso ao certificado digital: "+ex. string justificativa.Message 10 .%exceção% 21 .Certificado digital inexistente para %nome% 16 . out string msgResultado.com.br – Todos os direitos reservados.Erro: O número do protocolo deve ter 15 posições 22 . Página 36 .Nenhum certificado válido foi encontrado com o nome informado 9 .Erro: Problema ao acessar o certificado digital .Erro: conectividade 13 .Erro: A chave de acesso deve ter 44 posições 23 .Erro: exceção do biblioteca criptográfica 12 .FlexDocs.A tag de assinatura %RefUri% não é unica 19 . int tipoAmbiente. © 2008-2009 – www. string nomeCertificado.XML mal formado + exceção 17 .A tag de assinatura %RefUri% inexiste 18 .Erro: Ao assinar o documento . string nProtocolo.Erro: O nome do titular do certificado deve ser informado msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML da área de dados enviada ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS CancelaNF int CancelaNF(string siglaUF.%exceção% 15 . string proxy.Erro: A justificativa deve ter pelo menos 15 posições 24 .aplicação não licenciada 14 .Erro: Time-out ao chamar o WS 11 . out string msgCabec.

Página 37 .: "CN=NFe .OK 1 .br – Todos os direitos reservados. string licenca).sigla da UF inválida 3 . necessaário para ambiente de produção nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex.FlexDocs.6 InutilizaNroNF .15.codigo do ambiente inválido 2 .a UF não oferece o serviço © 2008-2009 – www.168. a porta padrão do https é 443. // verificar com o cliente qual é o endereço do servidor proxy e a porta https. C=BR.1:443' Retornos: InutilizaNroNF: código do resultado da chamada do WS 0 .com. assim teríamos algo do tipo 'http://192.1.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'. L=PORTO ALEGRE. 5. S=RS" proxy .WS de inutilização de numeração de NF-e InutilizaNroNF: Inutiliza númeração de NF-e Entradas: siglaUF: Sigla da UF do WS chamado tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação ano: ano de inutilização CNPJ: CNPJ do emissor modelo: modelo da NF-e (55) serie: serie da NF-e (sem zeros à esquerda) nroInicial: primeiro número da faixa (sem zeros à esquerda) nroFinal: último número da faixa (sem zeros à esquerda) justificativa: Justificativa de cancelamento (deve ter pelo nos 15 caracteres) licenca: chave da licença de uso da aplicação. O=Teste Projeto NFe RS. OU=Teste Projeto NFe RS.Associacao NF-e:99999090910270.string senha.

com.Erro: CNPJ informado inválido 23 .Message 10 .%exceção% 15 .Erro Ao assinar o documento .Certificado digital inexistente para %nome% 16 .Erro: conectividade 13 .Erro: exceção do biblioteca criptográfica 12 .Erro: Número Final da faixa inválido 27 .Nenhum certificado válido foi encontrado com o nome informado 9 .aplicação não licenciada 14 .Erro não tratado de abertura/tratamento Arquivo ws.Erro: A licença informada tem tamanho diferente de 128 .Erro: Problema ao acessar o certificado digital .xml 6 .FlexDocs.Erro: Serie inválida 25 .%[ ]n% 31 .Erro: O CNPJ informado tem tamanho diferente de 14 .A tag de assinatura %RefUri% não é unica 19 .XML mal formado + exceção 17 .Erro Inesperado no acesso ao certificado digital: "+ex.Erro: A justificativa deve ter pelo menos 15 posições 29 .Arquivo com a URL do WS não localizados 5 .Erro: Ao assinar o documento .Erro de validação de Schema 7 .ID deve ser string %RefUri(Atributo)% 20 .%[ ]% msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML da área de dados enviada ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS InutilizaNroNF int InutilizaNroNF(string siglaUF. © 2008-2009 – www.br – Todos os direitos reservados.Erro: O nome do titular do certificado deve ser informado 30 .Nenhum Certificado Selecionado 8 .%exceção% 21 .Erro: Número Final menor que número inicial da faixa 28 .4 .Erro: Modelo inválido diferente de 55 24 . Página 38 . int tipoAmbiente.A tag de assinatura %RefUri% inexiste 18 .Erro: O ano deve ter 2 posições 22 .Erro: Time-out ao chamar o WS 11 .Erro: Número inicial da faixa inválido 26 .

2 Funcionalidades de segunda geração 5. PE. SC. DF. BA. AP.string nomeCertificado. RR. string modelo. PA. out string msgResultado. SVAN – SEFAZ Virutal do Ambiente Nacional (CE*. MS*. string justificativa. PR. CE. string cUF.com. MG. string CNPJ.br – Todos os direitos reservados. out string msgRetWS. string nroNFeFinal. out string msgCabec. PB. RJ. PI. string serie. informar: . string senha. string ano. SE e TO) . MT. sigla da UF para UF com WS próprio (AM. string proxy.1 ConsultaStatusSCAN . out string msgDados.FlexDocs. MS. SCAN – Sistema de Contingência do Ambiente Nacional . Página 39 . MA. SVRS – SEFAZ Virtual do Rio Grande do Sul (AC. PR* e RN) siglaUF: Sigla da UF consultada tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL © 2008-2009 – www.WS de Consulta Status ConsultaStatusSCAN: Consulta Situação do Web Service de Recepção de NF-e Entradas: siglaWS: Sigla da WS chamado. string nroNFeInicial. RS. RO e SP) . GO. ES*. 5.2. string usuario. string licenca). AL.

usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'. string nomeCertificado. OU=Teste Projeto NFe RS. Página 40 .Nenhum certificado válido foi encontrado com o nome informado 9 . © 2008-2009 – www.com. out string msgRetWS.codigo do ambiente inválido 2 .xml 6 .FlexDocs.Erro de validação de Schema 7 .Erro não tratado de abertura/tratamento Arquivo ws.OK 1 .Associacao NF-e:99999090910270. L=PORTO ALEGRE.br – Todos os direitos reservados. out string msgDados.Ex. C=BR. int tipoAmbiente.sigla da UF inválida 3 .Erro Inesperado no acesso ao certificado digital: "+ex.Erro: exceção do biblioteca criptográfica 12 . // verificar com o cliente qual é o endereço do servidor proxy e a porta https.Erro: conectividade msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML do pedido de consulta Status enviado ao WS msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS Consulta Status SCAN int ConsultaStatusSCAN(string siglaWS.Message 10 . string siglaUF. assim teríamos algo do tipo 'http://192. O=Teste Projeto NFe RS.: "CN=NFe .1:443' Retornos: ConsultaStatusSCAN: código do resultado da chamada do WS 0 .Arquivo com a URL do WS não localizados 5 .a UF não oferece o serviço 4 . out string msgCabec.Erro: Time-out ao chamar o WS 11 .168. a porta padrão do https é 443.15.Nenhum Certificado Selecionado 8 . S=RS" proxy .

usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'. MT. C=BR.: "CN=NFe . PR* e RN) tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação msgDados: XML do Lote de NF-e a ser enviado ao WS nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex. PI. assim teríamos algo do tipo 'http://192. L=PORTO ALEGRE.2. O=Teste Projeto NFe RS. string usuario. PR. o não envio na estrutura de lote irá provocar o erro 215/225 relacionados com a falha na validação do XML. GO.Associacao NF-e:99999090910270. MS. SE e TO) . PB. string senha). AP. BA.168. mas requer o prévio registro do usuário ou licenciamento de uso © 2008-2009 – www. informar: . RS. CE. MG. RJ. sigla da UF para UF com WS próprio (AM. AL. DF. SVRS – SEFAZ Virtual do Rio Grande do Sul (AC. EnviaLoteSCAN: Envia Lote de NF-e Entradas: siglaWS: Sigla da WS chamado. Para enviar uma NF-e individual queira utilizar o enviaNFeSCAN (vide item 8. S=RS" proxy . RR.out string msgResultado. 5. OU=Teste Projeto NFe RS.FlexDocs. SC. MA. SVAN – SEFAZ Virutal do Ambiente Nacional (CE*.1:443' licença : o uso desta funcionalidade em ambiente de produção é gratuita.15. // verificar com o cliente qual é o endereço do servidor proxy e a porta https. Página 41 .br – Todos os direitos reservados. a porta padrão do https é 443.WS de recepção de lote de NF-e As notas fiscais devem ser enviadas na estrutura de lote.2). SCAN – Sistema de Contingência do Ambiente Nacional .2 EnviaLoteSCAN . PA. ES*. MS*. RO e SP) . PE. mesmo que seja uma única NF-e. string proxy.com.

Nenhum Certificado Selecionado 8 .Erro Inesperado no acesso ao certificado digital: "+ex. string senha.Message 10 .OK 1 .a UF não oferece o serviço 4 . Página 42 .Arquivo com a URL do WS não localizados 5 .codigo do ambiente inválido 2 . int tipoAmbiente. out string msgRetWS.FlexDocs.sigla da UF inválida 3 .com.Nenhum certificado válido foi encontrado com o nome informado 9 . out string msgResultado. ref string msgDados.Erro: Time-out ao chamar o WS 11 . string nomeCertificado.Retornos: EnviaLoteSCAN: código do resultado da chamada do WS 0 .3 BuscaLoteSCAN . string usuario.Erro: conectividade msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS EnviaLoteSCAN int EnviaLoteSCAN(string siglaWS.WS de consulta processamento de lote de NF-e BuscaLoteSCAN: consulta processamento de Lote de NF-e Entradas: © 2008-2009 – www. string proxy.xml 6 . out string msgCabec. string licenca). 5.br – Todos os direitos reservados.Erro: exceção do biblioteca criptográfica 12 .Erro não tratado de abertura/tratamento Arquivo ws.Erro de validação de Schema 7 .2.

SE e TO) . MA.Nenhum certificado válido foi encontrado com o nome informado 9 .: "CN=NFe .1:443' Retornos: BuscaLoteSCAN : código do resultado da chamada do WS 0 . AL. GO. PB. a porta padrão do https é 443. MT. PE. MG. informar: .Erro: Time-out ao chamar o WS 11 . sigla da UF para UF com WS próprio (AM.Nenhum Certificado Selecionado 8 . SC.a UF não oferece o serviço 4 .usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'. ES*. SVAN – SEFAZ Virutal do Ambiente Nacional (CE*. // verificar com o cliente qual é o endereço do servidor proxy e a porta https.siglaWS: Sigla da WS chamado. MS*. Página 43 . DF.Arquivo com a URL do WS não localizados 5 .Message 10 . PI.Erro Inesperado no acesso ao certificado digital: "+ex. OU=Teste Projeto NFe RS.br – Todos os direitos reservados. RS.Erro: conectividade msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML da área de dados enviada ao WS (útil para depuração) msgRetWS: XML de resposta do WS © 2008-2009 – www.Associacao NF-e:99999090910270.com.Erro de validação de Schema 7 . BA.Erro: exceção do biblioteca criptográfica 12 . AP. S=RS" proxy . RR.xml 6 .sigla da UF inválida 3 . SVRS – SEFAZ Virtual do Rio Grande do Sul (AC.168. C=BR. L=PORTO ALEGRE.codigo do ambiente inválido 2 . MS. PR. RJ.OK 1 . RO e SP) .15. SCAN – Sistema de Contingência do Ambiente Nacional . CE.Erro não tratado de abertura/tratamento Arquivo ws. PR* e RN) tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação nroRecibo: Número do Recibo do Lote desejado nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex. O=Teste Projeto NFe RS.FlexDocs. assim teríamos algo do tipo 'http://192. PA.

PE. out string msgCabec. a porta padrão do https é 443. S=RS" proxy .com.: "CN=NFe . sigla da UF para UF com WS próprio (AM. SVAN – SEFAZ Virutal do Ambiente Nacional (CE*. int tipoAmbiente. MS*.Associacao NF-e:99999090910270. 5. string senha). PI. AP. out string msgRetWS.msgResultado: literal do resultado da chamada do WS BuscaLoteSCAN int BuscaLoteSCAN(string siglaWS. DF. PR* e RN) tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação chaveNFe: Chave de Acesso da NF-e desejada nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex. PR. MG.2. OU=Teste Projeto NFe RS. SVRS – SEFAZ Virtual do Rio Grande do Sul (AC. assim teríamos algo do Página 44 © 2008-2009 – www. O=Teste Projeto NFe RS. AL. out string msgResultado.WS de consulta situação da NF-e ConsultaNFSCAN: Consulta Situação atual da NF-e Entradas: siglaWS: Sigla da WS chamado. MA.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'. RJ. PA. string proxy. GO. SE e TO) . string usuario. C=BR. MS. SCAN – Sistema de Contingência do Ambiente Nacional . informar: . L=PORTO ALEGRE. PB. . RS. ES*.br – Todos os direitos reservados. // verificar com o cliente qual é o endereço do servidor proxy e a porta https. CE.FlexDocs. RO e SP) .4 ConsultaNFSCAN . out string msgDados. RR. BA. MT. string nroRecibo. string nomeCertificado. SC.

out string msgRetWS.1:443' Retornos: ConsultaNFSCAN: código do resultado da chamada do WS 0 . out string msgCabec.Erro de validação de Schema 7 .168. string nomeCertificado. string senha). out string msgDados.com.15.Arquivo com a URL do WS não localizados 5 .xml 6 .codigo do ambiente inválido 2 .Erro Inesperado no acesso ao certificado digital: "+ex. © 2008-2009 – www. out string msgResultado.OK 1 .Nenhum Certificado Selecionado 8 .br – Todos os direitos reservados.FlexDocs.Erro: Time-out ao chamar o WS 11 .a UF não oferece o serviço 4 .Erro: conectividade msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML da área de dados enviada ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS ConsultaNFSCAN int ConsultaNFSCAN(string siglaWS.tipo 'http://192.Erro: exceção do biblioteca criptográfica 12 . string usuario.Message 10 .Erro não tratado de abertura/tratamento Arquivo ws. Página 45 . string proxy.sigla da UF inválida 3 . string chaveNFe. int tipoAmbiente.Nenhum certificado válido foi encontrado com o nome informado 9 .

MG. SE e TO) .Nenhum Certificado Selecionado © 2008-2009 – www. informar: .usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'.168. sigla da UF para UF com WS próprio (AM. RJ. MS.xml 6 . CE.br – Todos os direitos reservados. ES*. PR. PA. SC. // verificar com o cliente qual é o endereço do servidor proxy e a porta https.5. SCAN – Sistema de Contingência do Ambiente Nacional . AL.5 CancelaNFSCAN . O=Teste Projeto NFe RS. RO e SP) .OK 1 .2.codigo do ambiente inválido 2 .: "CN=NFe . PE. a porta padrão do https é 443. RS. BA. OU=Teste Projeto NFe RS. MA. PI.Associacao NF-e:99999090910270.a UF não oferece o serviço 4 . DF. SVAN – SEFAZ Virutal do Ambiente Nacional (CE*. RR. assim teríamos algo do tipo 'http://192.FlexDocs.1:443' Retornos: CancelaNFeSCAN: código do resultado da chamada do WS 0 . MS*. C=BR.Erro de validação de Schema 7 . necessaário para ambiente de produção nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex.sigla da UF inválida 3 . AP.Arquivo com a URL do WS não localizados 5 .Erro não tratado de abertura/tratamento Arquivo ws.WS de cancelamento de NF-e CancelaNFSCAN: Cancelamento de NF-e Entradas: siglaWS: Sigla da WS chamado. Página 46 . PR* e RN) tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação chaveNFe: Chave de Acesso da NF-e desejada nProtocolo: Número do protocolo de autorização da NF-e justificativa: Justificativa de cancelamento (deve ter pelo nos 15 caracteres) licenca: chave da licença de uso da aplicação. GO. PB.com. L=PORTO ALEGRE. S=RS" proxy . MT.15. SVRS – SEFAZ Virtual do Rio Grande do Sul (AC.

8 - Nenhum certificado válido foi encontrado com o nome informado 9 - Erro Inesperado no acesso ao certificado digital: "+ex.Message 10 - Erro: Time-out ao chamar o WS 11 - Erro: exceção do biblioteca criptográfica 12 - Erro: conectividade 13 - aplicação não licenciada 14 - Erro: Problema ao acessar o certificado digital - %exceção% 15 - Certificado digital inexistente para %nome% 16 - XML mal formado + exceção 17 - A tag de assinatura %RefUri% inexiste 18 - A tag de assinatura %RefUri% não é unica 19 - Erro Ao assinar o documento - ID deve ser string %RefUri(Atributo)% 20 - Erro: Ao assinar o documento - %exceção% 21 - Erro: O número do protocolo deve ter 15 posições 22 - Erro: A chave de acesso deve ter 44 posições 23 - Erro: A justificativa deve ter pelo menos 15 posições 24 - Erro: O nome do titular do certificado deve ser informado msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML da área de dados enviada ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS CancelaNFSCAN int Cancela NFSCAN(string siglaWS, int tipoAmbiente, string nomeCertificado, out string msgCabec, out string msgDados, out string msgRetWS, out string msgResultado, string chaveNFe, string nProtocolo, string justificativa, string proxy, string usuario, string senha, string licenca); © 2008-2009 – www.FlexDocs.com.br – Todos os direitos reservados. Página 47

5.2.6 InutilizaNroNFSCAN - WS de inutilização de numeração de NF-e
InutilizaNroNFSCAN: Inutiliza númeração de NF-e Entradas: siglaWS: Sigla da WS chamado, informar: . sigla da UF para UF com WS próprio (AM, BA, CE, DF, GO, MS, MT, MG, PE, PR, RS, RO e SP) . SCAN – Sistema de Contingência do Ambiente Nacional . SVRS – SEFAZ Virtual do Rio Grande do Sul (AC, AL, AP, MS*, PB, RJ, RR, SC, SE e TO) . SVAN – SEFAZ Virutal do Ambiente Nacional (CE*, ES*, MA, PA, PI, PR* e RN) tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação ano: ano de inutilização CNPJ: CNPJ do emissor modelo: modelo da NF-e (55) serie: serie da NF-e (sem zeros à esquerda) nroInicial: primeiro número da faixa (sem zeros à esquerda) nroFinal: último número da faixa (sem zeros à esquerda) justificativa: Justificativa de cancelamento (deve ter pelo nos 15 caracteres) licenca: chave da licença de uso da aplicação, necessaário para ambiente de produção nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS" proxy ,usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'; // verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo 'http://192.168.15.1:443' Retornos: InutilizaNroNFSCAN: código do resultado da chamada do WS 0 - OK © 2008-2009 – www.FlexDocs.com.br – Todos os direitos reservados. Página 48

1 - codigo do ambiente inválido 2 - sigla da UF inválida 3 - a UF não oferece o serviço 4 - Arquivo com a URL do WS não localizados 5 - Erro não tratado de abertura/tratamento Arquivo ws.xml 6 - Erro de validação de Schema 7 - Nenhum Certificado Selecionado 8 - Nenhum certificado válido foi encontrado com o nome informado 9 - Erro Inesperado no acesso ao certificado digital: "+ex.Message 10 - Erro: Time-out ao chamar o WS 11 - Erro: exceção do biblioteca criptográfica 12 - Erro: conectividade 13 - aplicação não licenciada 14 - Erro: Problema ao acessar o certificado digital - %exceção% 15 - Certificado digital inexistente para %nome% 16 - XML mal formado + exceção 17 - A tag de assinatura %RefUri% inexiste 18 - A tag de assinatura %RefUri% não é unica 19 - Erro Ao assinar o documento - ID deve ser string %RefUri(Atributo)% 20 - Erro: Ao assinar o documento - %exceção% 21 - Erro: O ano deve ter 2 posições 22 - Erro: CNPJ informado inválido 23 - Erro: Modelo inválido diferente de 55 24 - Erro: Serie inválida 25 - Erro: Número inicial da faixa inválido 26 - Erro: Número Final da faixa inválido 27 - Erro: Número Final menor que número inicial da faixa 28 - Erro: A justificativa deve ter pelo menos 15 posições 29 - Erro: O nome do titular do certificado deve ser informado 30 - Erro: O CNPJ informado tem tamanho diferente de 14 - %[ ]n% 31 - Erro: A licença informada tem tamanho diferente de 128 - %[ ]% msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML da área de dados enviada ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS InutilizaNroNFSCAN © 2008-2009 – www.FlexDocs.com.br – Todos os direitos reservados. Página 49

string senha. string nomeCertificado. out string msgResultado. out string msgDados. string cUF. string usuario. string nroNFeFinal.br – Todos os direitos reservados. string serie. string proxy. out string msgRetWS. string justificativa. string CNPJ. int tipoAmbiente. out string msgCabec.FlexDocs.int InutilizaNroNFSCAN(string siglaWS. © 2008-2009 – www. string licenca). Página 50 .com. string nroNFeInicial. string ano. string modelo.

168.CPF Argumento: IE/CNPJ/CPF a ser pesquisado nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex. S=RS" proxy .FlexDocs. O=Teste Projeto NFe RS. L=PORTO ALEGRE.OK © 2008-2009 – www. Também vale observar que o Serviço ainda não é oferecido por todas UF.6.CNPJ 2 . assim para consultar a situação cadastral de um contribuinte paulista o emissor deve consultar o WS de SP.15.br – Todos os direitos reservados.IE 1 .1:443' Retornos: ConsultaCad: código do resultado da chamada do WS 0 .Associacao NF-e:99999090910270.1 ConsultaCad: Consulta Cadastro de Contribuintes do ICMS A consulta cadastro de contribuintes do ICMS deve ser realizada no WS da UF de localização do contribuinte cadastrado. a porta padrão do https é 443.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'. assim teríamos algo do tipo 'http://192. Página 51 .: "CN=NFe . C=BR. Web Services de apoio da NF-e 6. // verificar com o cliente qual é o endereço do servidor proxy e a porta https. ConsultaCad: Consulta Cadastro de Contribuintes do ICMS Entradas: siglaUF: Sigla da UF do WS chamado tipoAmbiente: Código do tipo de ambiente = 1-Produção / 2-Homologação tpArg: 0 .com. OU=Teste Projeto NFe RS.

string proxy. string tpArgumento. string argumento.com. Web Service de Contingência Eletrônica – SCE/DPEC © 2008-2009 – www.Erro Inesperado no acesso ao certificado digital: "+ex. Página 52 .Message 10 . string senha).Nenhum certificado válido foi encontrado com o nome informado 9 .Erro: Time-out ao chamar o WS 11 .sigla da UF inválida 3 .Erro: conectividade 13 . 7.xml 6 .Erro: tpArg inválido msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgDados: XML da área de dados enviada ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS ConsultaCad int ConsultaCad(string siglaUF.1 . out string msgCabec.Erro: exceção do biblioteca criptográfica 12 .Arquivo com a URL do WS não localizados 5 .FlexDocs. out string msgDados.codigo do ambiente inválido 2 .br – Todos os direitos reservados.Erro não tratado de abertura/tratamento Arquivo ws. int tipoAmbiente.Erro de validação de Schema 7 . string nomeCertificado. out string msgResultado.Nenhum Certificado Selecionado 8 . out string msgRetWS.a UF não oferece o serviço 4 . string usuario.

inválido (fora do intervalor 0-1) © 2008-2009 – www. L=PORTO ALEGRE.br – Todos os direitos reservados. S=RS" proxy . Uma vez enviada o DPEC.Associacao NF-e:99999090910270.FlexDocs.1:443' Retornos: EnviaDPEC: código do resultado da chamada do WS --------------------Erros da validação do XML da DPEC-----------------1 .com.br/portal/ManualContingencia.O DPEC é uma das opção de contingência existente e acreditamos ser a opção mas interessante para os usuários. tal como na contingência com formulário de segurança. O=Teste Projeto NFe RS. Maiores detalhes do funcionamento desta modalidade de contingência deve ser obtido no Manual do Sistema de Contingência Eletrônica – DPEC – versão 1. C=BR.fazenda. o DPEC tem a vantagem de ter um custo muito menor por não exigir a impressão do DANFE em formulário de segurança. pois permite o envio de um resumo das NFe emitidas (Declaração Prévia de Emissão em Contingência – DPEC) para o Ambiente Nacional. o emissor pode emitir os DANFE em papel comum é promover a circulação das mercadorias. assim teríamos algo do tipo 'http://192. disponível em http://www. necessaário para ambiente de produção nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex. Apesar de continuar existindo a obrigação de envio das NF-e posteriormente. com até 50 resumos de NF-e (não deve estar assinada) licenca: chave da licença de uso da aplicação. a porta padrão do https é 443.: "CN=NFe .tipoXML.1 EnviaDPEC – Envio de DPEC EnviaDPEC: Envio de DPEC Entradas: DPEC: XML da DPEC.Erro: tipoXML . Página 53 .15.nfe.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'. sem necessidade de alteração da série da NF-e e o seu uso independe a ativação do SCAN pela SEFAZ de origem.168. // verificar com o cliente qual é o endereço do servidor proxy e a porta https.00.aspx 7. OU=Teste Projeto NFe RS.gov.

Erro: O DPEC de entrada não deve estar assinado 24 . 19 .Erro: conectividade 32 .Erro Ao assinar o documento . 15 .Erro: arquivo de Schema XML .CNPJEmissor. não é unica 18 .Erro: Time-out ao chamar o WS 30 .Erro: a versão da DPEC diverge da versão suportada pela DLL (1. 14 .Message 29 .ID deve ser string .Certificado digital inexistente para .Erro: Ao assinar o documento .RefUri.Nenhum certificado válido foi encontrado com o nome informado 28 ..Erro: exceção do biblioteca criptográfica 31 .nome. não localizado 3 .exceção.Certificado selecionado não tem CNPJ/CPF 12 .Erro: XML mal formado 4 .Erro Inesperado: "+ex.Nenhum Certificado Selecionado 27 . vide manual do DPEC © 2008-2009 – www.Aplicação não licenciada para o CNPJ .RefUri.Nenhum certificado válido foi encontrado com o nome informado 9 .Erro: não previsto 6 .Nenhum Certificado Selecionado 8 .Erro: Erro na conversão do DPEC para XML: 22 . Página 54 .Selecionado um Certificado de PF 11 .A tag de assinatura .com.Erro: Problema ao acessar o certificado digital .XML mal formado + exceção 16 ..Erro: XML não atende Schema XML 5 .Erro: O CNPJ informado tem tamanho diferente de 14 25 .A tag de assinatura .RefUri(Atributo). inexiste 17 .Erro Inesperado no acesso ao certificado digital: "+ex.Erro: Tipo de Ambiente informado inválido 21 .nome do arquivo.exceção. 23 .Erro: A licença informada tem tamanho diferente de 128 26 .2 . -----------------------Erro Chamada WS ---------------------------------20 .FlexDocs.Erro: A DPEC não deve estar assinada ============================================================================ código de retorno cStat do WS.00) 7 .Message 10 .br – Todos os direitos reservados.Certificado digital não tem chave privada -----------------------Erro Assinatura Digital-------------------------13 .

out string nRegDPEC. string nomeCertificado.Rejeição: XML Mal Formado 280 . string licenca).Serviço Paralisado Momentaneamente (curto prazo) 109 . 7. string usuario.Rejeição: Certificado Transmissor .2 ConsultaDPEC – Consulta de DPEC Página 55 © 2008-2009 – www.Rejeição: Certificado Transmissor erro no acesso a LC nRegDPEC: número do Registro do DPEC dhRegDPEC: data e hora de Registro do DPEC DPECAssinado: XML do DPEC transmitido msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS EnviaLote int EnviaDPEC(ref string DPEC. string senha. . string proxy. out string DPECAssinado.Rejeição: Tamanho da mensagem excedeu o limite estabelecido 243 .Rejeição: Certificado Transmissor sem CNPJ 283 . out string dhRegDPEC. out string msgResultado.br – Todos os direitos reservados.Rejeição: Certificado Transmissor difere ICP-Brasil 286 .Rejeição: Certificado Transmissor Data Validade 282 .Rejeição: Certificado Transmissor inválido 281 .erro Cadeia de Certificação 284 – Rejeição: Certificado Transmissor revogado 285 .com.FlexDocs.Serviço Paralisado sem Previsão 214 .124 – DPEC recebido pelo Sistema de Contingência Eletrônica 108 . out string msgRetWS.

não localizado 3 . S=RS" proxy .00) 7 .1:443' Retornos: ConsultaDPEC: código do resultado da chamada do WS --------------------Erros da validação do XML da DPEC-----------------1 .tipoXML.inválido (fora do intervalor 0-1) 2 . // verificar com o cliente qual é o endereço do servidor proxy e a porta https.nome do arquivo.Erro: XML mal formado 4 .Erro Inesperado: "+ex.Erro: XML não atende Schema XML 5 .produção / 2.Nenhum Certificado Selecionado 8 .br – Todos os direitos reservados.ConsultaDPEC: Consulta de DPEC Entradas: tipoAmbiente: 1 . Página 56 . O=Teste Projeto NFe RS.FlexDocs. C=BR. a porta padrão do https é 443.chave de Acesso de NF-e Argumento: nRegDPEC ou Chave de Acesso da NF-e licenca: chave da licença de uso da aplicação. assim teríamos algo do tipo 'http://192.Associacao NF-e:99999090910270.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'. necessaário para ambiente de produção nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex.número de registro do DPEC 1 .Certificado selecionado não tem CNPJ/CPF © 2008-2009 – www.com.homologação tpArgumento: 0 .Erro: tipoXML .Selecionado um Certificado de PF 11 . L=PORTO ALEGRE.Erro: não previsto 6 . OU=Teste Projeto NFe RS.168.Erro: arquivo de Schema XML .Erro: a versão da DPEC diverge da versão suportada pela DLL (1.Nenhum certificado válido foi encontrado com o nome informado 9 .nRegDPEC .15.Message 10 .: "CN=NFe .

out string msgDados.FlexDocs. string nomeCertificado.br – Todos os direitos reservados.Rejeição: Certificado Transmissor sem CNPJ 283 .Erro: Tipo de Ambiente informado inválido 19 .Rejeição: Certificado Transmissor .Erro: exceção do biblioteca criptográfica 15 .Rejeição: XML Mal Formado 280 .Erro: O CNPJ informado tem tamanho diferente de 14 21 .Erro: O Certificado Digital para autenticação mútua não foi informado 17 .erro Cadeia de Certificação 284 – Rejeição: Certificado Transmissor revogado 285 .Erro: XML de retorno fora do padrão 18 .Inexiste DPEC para a chave de acesso da NF-e informada 108 .Certificado digital não tem chave privada -----------------------Erro Chamada WS ---------------------------------13 .Inexiste DPEC para o número de registro de DPEC informado 127 .Erro: Time-out ao chamar o WS 14 .Rejeição: Certificado Transmissor inválido 281 .Serviço Paralisado sem Previsão 214 .12 .com. © 2008-2009 – www.Rejeição: Tamanho da mensagem excedeu o limite estabelecido 243 .Erro: conectividade 16 .Erro: A licença informada tem tamanho diferente de 128 =========================================================== código de retorno cStat do WS.Rejeição: Certificado Transmissor difere ICP-Brasil 286 .Serviço Paralisado Momentaneamente (curto prazo) 109 . Página 57 .Rejeição: Certificado Transmissor Data Validade 282 . vide manual do DPEC 125 – DPEC localizado 126 .Rejeição: Certificado Transmissor erro no acesso a LCR DPEC: XML do DPEC consultado msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS int ConsultaDPEC(int tipoAmbiente.Erro: Funcionalidade (ConsultaDPEC) não licenciada para o CNPJ 20 .

br – Todos os direitos reservados. string licenca). string senha.FlexDocs. string proxy.out string msgRetWS. string tpArgumento. Página 58 . © 2008-2009 – www. string usuario.com. out string msgResultado. string argumento. out string DPEC.

FlexDocs.: "CN=NFe .1. OU=Teste Projeto NFe RS. montagem da estrutura de Lote da NF-e.br – Todos os direitos reservados. o Id do lote é a modelo + série + número da NF-e. envio do lote Após o envio. L=PORTO ALEGRE. sendo necessário buscar o resultado do processamento da NF-e. S=RS" © 2008-2009 – www. O=Teste Projeto NFe RS. quais sejam: • • • • validação de Schema XML.Associacao NF-e:99999090910270. a DLL devolve o número do recibo de entrega que deve ser utilizado para buscar o resultado do processamento da NF-e e a NF-e assinada. Página 59 . Funcionalidade para Envio de uma única NF-e A funcionalidade de envio de uma única NF-e é uma funcionalidade exclusiva da DLL que criada para oferecer uma maior comodidade para os seus usuários.8.com. C=BR. assinatura digital. Importante ressaltar que o envio da NF-e e a recepção do recibo do lote não garante que a NF-e foi autorizada. A funcionalidade tem como entrada um XML da NF-e e realiza todos os passos necessários para enviar a NF-e para o WS de recepção de Lote de NF-e. 8.1 Funcionalidade de primeira geração 8.1 EnviaNFe – Envio de uma única NF-e O contribuinte deve criar a NF-e conforme o leiaute em vigor A função irá enviar a NF-e para o WS para a UF e ambiente que constam na NF-e EnviaNFe: Envio de uma única NF-e Entradas: NFe: XML da NF-e (não deve estar assinada) licenca: chave da licença de uso da aplicação. necessaário para ambiente de produção nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex.

%exceção% -----------------Erro Chamada WS ---------------------------------20 . a porta padrão do https é 443.Erro Ao assinar o documento .Erro: Problema ao acessar o certificado digital . assim teríamos algo do tipo 'http://192.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'.1:443' Retornos: EnviaNFe: código do resultado da chamada do WS 0 .FlexDocs.Message 10 .Erro: XML não atende Schema XML 5 .OK --------------Erros da validação do XML da NF-e-----------------1 .Erro: Ao assinar o documento .Certificado digital inexistente para %nome% 15 . // verificar com o cliente qual é o endereço do servidor proxy e a porta https. Página 60 .com.a UF não oferece o serviço 23 .Certificado digital não tem chave privada --------------Erro Assinatura Digital-------------------------13 .A tag de assinatura %RefUri% inexiste 17 .168.br – Todos os direitos reservados.Erro: XML mal formado 4 .Erro: tipoXML %tipoXML%inválido (fora do intervalor 0-18) 2 .proxy .sigla da UF inválida 22 .Arquivo com a URL do WS não localizados © 2008-2009 – www.15.Nenhum certificado válido foi encontrado com o nome informado 9 .ID deve ser string %RefUri(Atributo)% 19 .Selecionado um Certificado de PF 11 .A tag de assinatura %RefUri% não é unica 18 .Erro: arquivo de Schema XML %nome do arquivo% não localizado 3 .codigo do ambiente inválido 21 .Nenhum Certificado Selecionado 8 .Erro: não previsto 7 .%exceção% 14 .Certificado selecionado não tem CNPJ/CPF 12 .Erro Inesperado: "+ex.XML mal formado + exceção 16 .

string senha.Erro: exceção do biblioteca criptográfica 31 .Erro: A licença informada tem tamanho diferente de 128 . © 2008-2009 – www. string nomeCertificado.com. deverá ser informado na busca do lote ou da NF-e NFeAssinada: XML da NF-e assinada msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS EnviaNFe int EnviaNFe(ref string NFe. string usuario.Nenhum certificado válido foi encontrado com o nome informado 28 .xml 25 . out string msgCabec.%[ ]n% 35 .Aplicação não licenciada para o CNPJ %CNPJEmissor% 33 .Erro: Time-out ao chamar o WS 30 . out string msgResultado.24 . out string msgDados. string licenca).Erro: inesperado ao tratar o código de retorno do WS -------------------------------------------------------------------------34 . nroRecibo: número do recibo fornecido pela SEFAZ.Message 29 . out string NFeAssinada.Nenhum Certificado Selecionado 27 . string proxy.Erro não tratado de abertura/tratamento Arquivo ws. out string nroRecibo.Erro Inesperado no acesso ao certificado digital: "+ex. Página 61 .%[ ]% ==================================================== 103 – se lote enviado com sucesso (não implica em autorização da NF-e.Erro: conectividade 32 .br – Todos os direitos reservados.Erro de validação de Schema 26 .Erro: O CNPJ informado tem tamanho diferente de 14 .FlexDocs. necessário buscar o resultado do processamento do lote) 2xx – se ocorrer alguma rejeição do lote (vide manual de integração). out string msgRetWS.

assim teríamos algo do tipo 'http://192. a porta padrão do https é 443.OK 1 – Erro: tipoXML %tipoXML%inválido (fora do intervalor 0-18) 2 .168.15. necessaário para ambiente de produção nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex. O=Teste Projeto NFe RS. Página 62 .br – Todos os direitos reservados. // verificar com o cliente qual é o endereço do servidor proxy e a porta https.8.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'.Erro: XML mal formado 4 .1:443' Retornos: BuscaNFe: 0 .Erro: arquivo de Schema XML %nome do arquivo% não localizado 3 .1.Erro: não previsto 6 .: "CN=NFe . L=PORTO ALEGRE. S=RS" proxy . OU=Teste Projeto NFe RS.Erro: XML não atende Schema XML 5 .FlexDocs.2 BuscaNFe – Busca resultado de processamento de uma única NF-e Funcionalidade complementar do EnviaNFe. C=BR. BuscaNFe: Envio de uma única NF-e Entradas: NFe Assinada: XML da NF-e assinada nroRecibo: número do recibo de envio do lote licenca: chave da licença de uso da aplicação.com. deve ser utilizado em conjunto com o EnviaNFe.Associacao NF-e:99999090910270.Erro: XML com caracteres de identificação de codificação UTF-8/16/32/7 © 2008-2009 – www.

Erro: exceção do biblioteca criptográfica 23 .7 .Erro: <DigestValue> da NF-e diverge do <digVal> do protocolo 33 .Erro: inesperado ao tratar o XML do retorno do WS 35 .Erro: não previsto 29 .Erro: a UF não oferece o serviço 15 .Erro: Time-out ao chamar o WS 22 .Erro: XML não atende Schema XML 28 .com.Erro: tag CNPJ do emitente não localizada no arquivo de entrada 12 . mas não existe protocolo para o a NF-e com chave de acesso %% 34 .Erro: tag cStat não localizado na mensagem de retorno 31 .Erro: conectividade 24 .br – Todos os direitos reservados.Erro: Nenhum Certificado Selecionado 19 .Erro: XML mal formado 27 .Erro: tag xMotivo não localizado na mensagem de retorno 32 .Erro: Arquivo com a URL do WS não localizados 16 .xml 17 .Erro: Tipo Ambiente informado %% diverge do tpAmb da NF-e entrada:%% 8 .Erro: codigo do ambiente inválido 13 .Erro: XML com caracteres de identificação de codificação UTF-8/16/32/7 30 .Erro Inesperado no acesso ao certificado digital: "+ex.FlexDocs.Erro: tag cUF do emitente inexistente no NF-e de entrada 11 . Página 63 .Erro: arquivo de Schema XML %nome do arquivo% não localizado 26 .Erro: UF informada (%%) diverge do cUF do emitente da NF-e entrada (%%) 10 .Erro: Nenhum certificado válido foi encontrado com o nome informado 20 .Erro: Busca do lote =%recibo%.Message 21 .Erro: tag tpAmb inexistente no NF-e de entrada 9 .Erro: tag xMotivo não localizado no Protocolo de retorno (protNFe) ==================================================== 105 – lote em processamento 106 – lote não localizado 100 – NF-e autorizada 2xx – motivo de rejeição do WS (vide tabela de mensagem de rejeição do Manual de Integração do Contribuinte – páginas 65 a 67) © 2008-2009 – www.Erro: tipoXML %tipoXML%inválido (fora do intervalor 0-18) 25 .Erro não tratado de abertura/tratamento Arquivo ws.Erro: tag cStat não localizado no Protocolo de retorno (protNFe) 36 .Erro: sigla da UF inválida 14 .Erro de validação de Schema 18 .

string licenca). out string procNFe. 8. out string msgCabec.procNFe: XML do procNFe (NFe + protocolo de autorização . ref string nroRecibo. string usuario. string nomeCertificado.2 Funcionalidade de segunda geração 8. out string msgResultado. out string msgDados.com. string proxy.FlexDocs.vide item 10 do manual de integração) msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS BuscaNFe int BuscaNFe(int tipoAmbiente. string senha. string siglaUF. ref string NFeAssinada.1 EnviaNFeSCAN – Envio de uma única NF-e O contribuinte deve criar a NF-e conforme o leiaute em vigor A função irá enviar a NF-e para o WS para a UF e ambiente que constam na NF-e EnviaNFeSCAN: Envio de uma única NF-e Entradas: © 2008-2009 – www. out string msgRetWS.2. Página 64 .br – Todos os direitos reservados.

Certificado digital não tem chave privada --------------Erro Assinatura Digital-------------------------13 . SE e TO) . RS. informar: . PR* e RN) NFe: XML da NF-e (não deve estar assinada) licenca: chave da licença de uso da aplicação. ES*. // verificar com o cliente qual é o endereço do servidor proxy e a porta https.Erro: arquivo de Schema XML %nome do arquivo% não localizado 3 . RO e SP) . SCAN – Sistema de Contingência do Ambiente Nacional .br – Todos os direitos reservados.Erro: tipoXML %tipoXML%inválido (fora do intervalor 0-18) 2 . SVAN – SEFAZ Virutal do Ambiente Nacional (CE*. sigla da UF para UF com WS próprio (AM. PR.usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'. MT. AL. PE. RR.Erro Inesperado: "+ex.Certificado digital inexistente para %nome% © 2008-2009 – www. BA. PB. GO. SC. MS*. C=BR. a porta padrão do https é 443.siglaWS: Sigla da WS chamado. RJ.Message 10 .Associacao NF-e:99999090910270.: "CN=NFe . MA.Nenhum Certificado Selecionado 8 .168.OK --------------Erros da validação do XML da NF-e-----------------1 . OU=Teste Projeto NFe RS.Certificado selecionado não tem CNPJ/CPF 12 . AP. SVRS – SEFAZ Virtual do Rio Grande do Sul (AC.Nenhum certificado válido foi encontrado com o nome informado 9 . MS. CE. S=RS" proxy . L=PORTO ALEGRE.com.15.FlexDocs.1:443' Retornos: EnviaNFeSCAN: código do resultado da chamada do WS 0 .Erro: não previsto 7 .Erro: Problema ao acessar o certificado digital . assim teríamos algo do tipo 'http://192. Página 65 . O=Teste Projeto NFe RS. DF.Erro: XML mal formado 4 . PA. MG.Erro: XML não atende Schema XML 5 . PI.%exceção% 14 . necessaário para ambiente de produção nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex.Selecionado um Certificado de PF 11 .

a UF não oferece o serviço 23 .Erro: A licença informada tem tamanho diferente de 128 .codigo do ambiente inválido 21 .A tag de assinatura %RefUri% inexiste 17 .com.FlexDocs.Erro: conectividade 32 .15 .xml 25 . ref string NFe. nroRecibo: número do recibo fornecido pela SEFAZ.Nenhum Certificado Selecionado 27 .%exceção% -----------------Erro Chamada WS ---------------------------------20 .ID deve ser string %RefUri(Atributo)% 19 .Erro: Ao assinar o documento .A tag de assinatura %RefUri% não é unica 18 .Aplicação não licenciada para o CNPJ %CNPJEmissor% 33 . deverá ser informado na busca do lote ou da NF-e NFeAssinada: XML da NF-e assinada msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS EnviaNFeSCAN int EnviaNFeSCAN(string siglaWS.Erro: O CNPJ informado tem tamanho diferente de 14 . necessário buscar o resultado do processamento do lote) 2xx – se ocorrer alguma rejeição do lote (vide manual de integração).Erro: Time-out ao chamar o WS 30 .sigla da UF inválida 22 .%[ ]% ==================================================== 103 – se lote enviado com sucesso (não implica em autorização da NF-e.Erro não tratado de abertura/tratamento Arquivo ws.XML mal formado + exceção 16 .Erro: exceção do biblioteca criptográfica 31 .Erro de validação de Schema 26 .br – Todos os direitos reservados.Erro Inesperado no acesso ao certificado digital: "+ex.Arquivo com a URL do WS não localizados 24 .Erro Ao assinar o documento .Erro: inesperado ao tratar o código de retorno do WS -------------------------------------------------------------------------34 .Nenhum certificado válido foi encontrado com o nome informado 28 . Página 66 . © 2008-2009 – www.Message 29 .%[ ]n% 35 .

SCAN – Sistema de Contingência do Ambiente Nacional . RS. PB. string usuario. MG.2. OU=Teste Projeto NFe RS. PE.FlexDocs. 8. RJ. L=PORTO ALEGRE. informar: . deve ser utilizado em conjunto com o EnviaNFeSCAN. SC.: "CN=NFe . ES*. string licenca). string proxy. MA. GO. CE. PA. MT. necessaário para ambiente de produção nomeCertificado: Nome do titular do certificado a ser utlizado na conexão SSL Ex. C=BR. out string msgDados. PR* e RN) NFe Assinada: XML da NF-e assinada nroRecibo: número do recibo de envio do lote licenca: chave da licença de uso da aplicação. sigla da UF para UF com WS próprio (AM. MS*. RR. PI. DF. Página 67 . out string msgRetWS. SVRS – SEFAZ Virtual do Rio Grande do Sul (AC.com. O=Teste Projeto NFe RS. SE e TO) . MS. S=RS" © 2008-2009 – www. out string msgResultado. out string msgCabec.out string nroRecibo. SVAN – SEFAZ Virutal do Ambiente Nacional (CE*. AP. out string NFeAssinada. string senha. BA.2 BuscaNFeSCAN – Busca resultado de processamento de uma única NF-e Funcionalidade complementar do EnviaNFeSCAN. PR. RO e SP) .br – Todos os direitos reservados. BuscaNFeSCAN: Envio de uma única NF-e Entradas: siglaWS: Sigla da WS chamado. string nomeCertificado.Associacao NF-e:99999090910270. AL.

Erro: Arquivo com a URL do WS não localizados 16 .Erro: Tipo Ambiente informado %% diverge do tpAmb da NF-e entrada:%% 8 .Erro: tipoXML %tipoXML%inválido (fora do intervalor 0-18) 25 .Erro: XML mal formado 4 .xml 17 .OK 1 – Erro: tipoXML %tipoXML%inválido (fora do intervalor 0-18) 2 .Erro: não previsto 6 .Erro não tratado de abertura/tratamento Arquivo ws.proxy .Erro Inesperado no acesso ao certificado digital: "+ex.Erro: tag tpAmb inexistente no NF-e de entrada 9 . Página 68 . a porta padrão do https é 443.Erro: conectividade 24 .usuario e senha: deve ser informado nos casos em que é necessário o uso de proxy 'https://proxyserver:port'.Erro: tag cUF do emitente inexistente no NF-e de entrada 11 .Erro: XML não atende Schema XML © 2008-2009 – www.Erro: Nenhum certificado válido foi encontrado com o nome informado 20 .Erro: exceção do biblioteca criptográfica 23 .Erro: sigla da UF inválida 14 .Message 21 .Erro: tag CNPJ do emitente não localizada no arquivo de entrada 12 .Erro: XML não atende Schema XML 5 .168. // verificar com o cliente qual é o endereço do servidor proxy e a porta https.Erro: codigo do ambiente inválido 13 .15. assim teríamos algo do tipo 'http://192.Erro: arquivo de Schema XML %nome do arquivo% não localizado 26 .FlexDocs.Erro: Nenhum Certificado Selecionado 19 .Erro: UF informada (%%) diverge do cUF do emitente da NF-e entrada (%%) 10 .Erro: XML com caracteres de identificação de codificação UTF-8/16/32/7 7 .Erro: arquivo de Schema XML %nome do arquivo% não localizado 3 .Erro de validação de Schema 18 .Erro: Time-out ao chamar o WS 22 .Erro: XML mal formado 27 .1:443' Retornos: BuscaNFe: 0 .br – Todos os direitos reservados.Erro: a UF não oferece o serviço 15 .com.

ref string NFeAssinada. mas não existe protocolo para o a NF-e com chave de acesso %% 34 .28 .Erro: não previsto 29 . out string msgRetWS. string nomeCertificado. ref string nroRecibo. string proxy. string senha. string siglaUF. int tipoAmbiente.Erro: XML com caracteres de identificação de codificação UTF-8/16/32/7 30 .com.Erro: tag xMotivo não localizado no Protocolo de retorno (protNFe) ==================================================== 105 – lote em processamento 106 – lote não localizado 100 – NF-e autorizada 2xx – motivo de rejeição do WS procNFe: XML do procNFe (NFe + protocolo de autorização . © 2008-2009 – www.Erro: tag cStat não localizado no Protocolo de retorno (protNFe) 36 . out string msgDados.Erro: <DigestValue> da NF-e diverge do <digVal> do protocolo 33 .vide item 10 do manual de integração) msgCabec: XML do cabeçalho enviado ao WS (útil para depuração) msgRetWS: XML de resposta do WS msgResultado: literal do resultado da chamada do WS BuscaNFeSCAN int BuscaNFeSCAN(string siglaWS. out string msgResultado.Erro: tag cStat não localizado na mensagem de retorno 31 . Página 69 . out string msgCabec.Erro: Busca do lote =%recibo%.FlexDocs.Erro: inesperado ao tratar o XML do retorno do WS 35 .br – Todos os direitos reservados.Erro: tag xMotivo não localizado na mensagem de retorno 32 . string licenca). string usuario. out string procNFe.

br – Todos os direitos reservados.FlexDocs.© 2008-2009 – www.com. Página 70 .

9. S=RS" Retornos: XMLAssinado : string com o XML Assinado msgResultado : 0 . Funcionalidades de apoio 9. Página 71 . O=Teste Projeto NFe RS.A tag de assinatura %RefUri% não é unica 6 .Certificado digital inexistente para %nome% 3 . Entradas: XMLString RefUri : string XML a ser assinada : Referência da URI a ser assinada (Ex.FlexDocs.Erro Ao assinar o documento . L=PORTO ALEGRE.Erro: Problema ao acessar o certificado digital .: "CN=NFe . C=BR.1 Assinar – Assinatura Digital XML no padrão do Projeto NF-e Descrição: Funcionalidade para realizar a assinatura digital XML no padrão previsto no projeto da NF-e.Associacao NF-e:99999090910270. infNFe) NomeCertificado : certificado digital a ser utilizado na assinatura digital Ex.br – Todos os direitos reservados.%exceção% 2 . © 2008-2009 – www.ID deve ser string %RefUri(Atributo)% 7 . OU=Teste Projeto NFe RS.XML mal formado + exceção 4 .Assinatura realizada com sucesso 1 .Erro: Ao assinar o documento .%exceção% int Assinar( string XMLString.A tag de assinatura %RefUri% inexiste 5 .com.

Associacao NF-e:99999090910270. string nomeCertificado.Seleciona ou confirma a existência de um certificado para o nome informado. Entrada: Nome do titular se não informado.string RefUri.FlexDocs. out string msgResultado).Message nomeCertificado : Nome do titular do Certificado Ex. se informado confirma a existência.: "CN=NFe . Retornos: PegaNomeCertificado: código do resultado 0-Selecinado um Certificado 1-Existe um Certificado com o nome informado 2-Nenhum Certificado Selecionado 3-Nenhum certificado válido foi encontrado com o nome informado 4-Erro Inesperado: "+ex. out string XMLAssinado. out string MsgResultado).com.br – Todos os direitos reservados. S=RS" msgResultado : Literal da mensagem do resultado int PegaNomeCertificado(ref string nomeCertificado.2 PegaNomeCertificado . 9. OU=Teste Projeto NFe RS. se não informado busca certificado do repositório. Página 72 . © 2008-2009 – www. O=Teste Projeto NFe RS. C=BR. L=PORTO ALEGRE. abre uma caixa de dialogo com os certificados disponíveis no repositório do usuário corrente do windows. 9.3 PegaDadosCertificado – Pega dados básicos do certificado digital. Entrada: Nome: Nome do titular. PegaDadosCertificado: Pega dados basicos do Certificado Digital.

Retornos: PegaNomeCertificado: código do resultado 0-Selecinado um Certificado 1-Existe um Certificado com o nome informado 2-Nenhum Certificado Selecionado 3-Nenhum certificado válido foi encontrado com o nome informado 4-Erro Inesperado: "+ex.FlexDocs. Página 73 . 9. out string FimValidade). out string Emissor. out string MsgResultado. out string InicioValidade.com. out string Titular. out string NroSerie.br – Todos os direitos reservados.Message Titular : Titular do Certificado Digital CNPJ : CNPJ do titular do Certificado NroSerie : Numero de serie do Certificado Emissor : Nome do emissor do Certificado InicioValidade : Data de inicio da validade Fimvalidade : Data de fim de validade msgResultado : Literal da mensagem do resultado int PegaDadosCertificado(ref string Nome. out string CNPJ.4 ValidaXML: Valida Schema XML ValidaXML: Valida Schema XML Entradas: © 2008-2009 – www.

Proc CancNF-e (procCancNFe_v1.Envio de Lote de NF-e (enviNFe_v1.xsd) 7 .07.Busca Resultado de NF-e (consReciNFe_v1.Retorno de Resultado de NF-e (retConsReciNFe_v1.xsd) 12 .Proc NF-e (procNFe_v1.10.10.xd) 6 .Consulta Status de Serviço (consStatServ_v1.Cancelamento de NF-e (cancNFe_v1.07.Erro: tipoXML %tipoXML%inválido (fora do intervalor 0-18) 2 .xsd) 17 .xsd) 4 .xsd) 16 .xsd) 10 .xsd) 5 .01.xsd) 15 .Retorno de Consulta Status de Serviço (retConsStatServ_v1.07.Retorno da Consulta Cadastro de Contribuintes (retConsCad_v1.xsd) 8 .mensagem XML válida 1 .xsd) 13 .FlexDocs.07.Retorno de Consulta Situação de NF-e (retConsSitNFe_v1.Retorno de Inutilização de NF-e (retInutNFe_v1.Erro: arquivo de Schema XML %nome do arquivo% não localizado 3 .xsd) Retornos: ValidaXML: código do resultado da chamada do WS 0 . Página 74 .07.Erro: XML mal formado 4 .07.02) 1 .10.Retorno de Cancelamento de NF-e (retCancNFe_v1.Consulta Cadastro de Contribuintes (consCad_v1.xsd) 18 .XML: Mensagem XML a ser validada tipoXML: 0 .xsd) 14 .Proc InutNFe (procInutNFe_v1.br – Todos os direitos reservados.07.10.cabeçalho (cabecMsg_v1.com.OK .Consulta Situação de NF-e (consSitNFe_v1.Erro: XML não atende Schema XML 5 .xsd) 9 .10.xsd) 3 .xsd) 2 .10.Retorno Lote de NF-e (retEnviNFe_v1.Erro: não previsto msgResultado: literal do resultado da chamada do ValidaXML qtdeErros: qtde de erros de validação erroXML: Erros de XML encontrados © 2008-2009 – www.07.07.07.01.NF-e (nfe_v1.xsd) 11 .Inutilizacao de Numeração de NF-e (inutNFe_v1.

com.cNF ) Retornos: CriaChaveNFe: código do resultado da Criação da Chave da NF-e 0 . o emissor deve adotar uma frase qualquer para dificultar que 3ºs descubram o Código Numérico que compõe a Chave de Acesso .Erro: número do documento fiscal inválido (1-999999999) © 2008-2009 – www. 9. out string erroXML).br – Todos os direitos reservados. int tipoXML. gerando o código Númerico que compõe a Chave de Acesso com base no código de segurança informado.Erro: modelo do documento fiscal inválido (55) 6 .int ValidaXML(string XML.Erro: mês %mes% inválido (1-12) 4 .Erro: ano %ano% inválido (0-99) 3 .Erro: CNPJ %% inválido 5 .Erro: série do documento fiscal inválido (0-999) 7 .Cria Chave de Acesso da NF-e CriaChaveNFe: Cria Chave de Acesso da NF-e.FlexDocs. out int qtdeErros.OK .Chave de Acesso da NF-e criada 1 .5 CriaChaveNFe . out string msgResultado. Página 75 . Entradas: cUF: Código da UF do emitente ano: ano de emissão (AA) mes: mes de emissão (MM) CNPJ: CNPJ do emissor modelo: modelo do documento fiscal (55) serie: serie do documento fiscal (0-999) numero: número do documento fiscal (1-999999999) codigoSeguranca: código de seguranca.Erro: cUF %tipoXML%inválida 2 .

string Versao(). string modelo.FlexDocs. out string cNF. string numero. string serie.6 Versao .com. Retornos: Literal com a versão da biblioteca chamada.Erro: código de segurança não informado msgResultado: literal do resultado da chamada do CriaChaveNFe cNF: Código Numérico que compõe a Chave de Acesso da NF-e cDV: Dígito Verificador da Chave de Acesso da NF-e chaveNFe: Chave de Acesso da NF-e int CriaChaveNFe(string cUF. out string chaveNFe).br – Todos os direitos reservados. © 2008-2009 – www. string Mes. 9. string Ano.8 .retorna a vesão atual da DLL. Versao: Consulta Versão da DLL Entradas: Nenhum. out string cDV. out string msgResultado. string CNPJ. Página 76 . string codigoSeguranca.

br – Todos os direitos reservados.1 Funções para montagem do XML da NF-e ' ' ' Exemplo de geração de uma NF-e com as funcionalidades oferecidas pela DLL ' ' A NF-e é formada por diversas grupos de tags e as grupos obrigatórios são: ' ' NFe ' +-----infNFe ' | +-----+--ide (identificação da NF-e) ' | | ' | +--emit (identificação do Dim emitente) ' | | ' | +--dest (identificação do Dim destinatário) ' | | ' | +--det ' | | +-------+--prod (detalhe do produto) ' | | | ' | | +--imposto ' | | +-------+--ICMS (informações do ICMS) ' | | | ' | | +--PIS (informações do PIS) ' | | | ' | | +--COFINS (informações do COFINS) ' | | ' | +--total (total da NF-e) ' | | ' | +--transp (Informações do Transporte) ' | | ' | +--infAdic (informações adicionais) © 2008-2009 – www.com.FlexDocs. Funções para geração do XML da NF-e 10.10. Página 77 .

' 8. criar o grupo de Dim total da NF-e (Dim total). ' 3. total e transp ' 9. criar o grupo de informações da NF-e (infNFe).' | ' +-----Signature (assinatura digital XML) ' ' Como este demo tem efeitos meramente didático.br – Todos os direitos reservados.com. ' Assim. emit. consolidar ICMS. ' 4. ' 4. dest.5 criar o detalhe do imposto (imposto). criar o grupo de informações do emitente (Dim emit). Página 78 . det. ' 4. PIS e COFINS. ' 5.FlexDocs. criar o grupo de informações adicionais (infAdic). vamos criar uma NF-e com os campos mínimos ' o usuário deverá informar os demais campos se necessário.2 criar o detalhe do ICMS (ICMS). uma boa ordem de criação dos grupos seria: ' ' 1. ' 4.6 criar o detalhe do item (det). sendo altamente recomendada a correta ' compressão do leiuate da NF-e e das regras de preenchimento dos respectivos campos. criar o grupo da NF-e ' ' Exemplo para criar o grupo da NF-e ' '=============consolida a NF-e================= ' ' Necessário ter todos os subgrupos já preenchidos © 2008-2009 – www. ' 6. ' ' A NF-e é uma estrutra de árvore com o elemento raiz chamada NF-e que tem diversos "galhos/folhas" ' Para criar a NF-e com a DLL. ' 7. a página 85 do Manual de integração tem diagrama simplificado da NF-e ' ' IMPORTANTE: O desenvolvedor deve ter familiaridade com os nomes dos campos da NF-e. criar o grupo de informações do destinatário (Dim dest). ou seja os itens mais internos. consolidar prod e imposto. consolidando ide.1 criar o detalhe do produto (prod).3 criar o detalhe do PIS (PIS). ' 2. criar o grupo de informações de identificação da NF-e (ide). criar o grupo de informações do transporte (transp). ' 4. ' 4.4 criar o detalhe do COFINS (COFINS). o usuário deve começar a criar os itens das extrDim emidadas.

string _ide.com.' ' versao = "1. string _Id.1. 10. string _compra).10" NFe = objNFeUtil. string _dest.pág. emi. string _emit.NFe(versao. string _avulsa. total. string _exporta. transp.1 emitente – cria grupo XML do emitente (C01. detalhes. string _total. string _detalhes. Página 79 . string _transp. entrega.br – Todos os direitos reservados. retirada. dest. cobr. exporta. string _retirada. chaveNFE. ide. infAdic. string _cobr. string _infAdic. "".FlexDocs. string _entrega. 90 – manual de integração) Exemplo de criação do grupo © 2008-2009 – www. compra) string NFe(string _versao.

..... ' ' Vale ressaltar que as aplicações das UF devem mostrar DIAS &amp. Dim objNFeUtil As NFe_Util.Util ' ' criação dos grupos ' '=====grupo de identificação do emitente (grupo B do Manual de integração .página 90)======================= ' ' <>&" são caracteres reservados do XML e devem ser evitados ou substituídos ' por &lt.FlexDocs. &gy..Util Set objNFeUtil = New NFe_Util..com. &amp. informar S/N quano inexistente para erro de Schema XML emi_xCpl = "10 andar" ' complemento do endereço.. ' emi_CNPJ = "99999999000191" ' CNPJ do emitente sem máscara de formatação emi_CPF = "" ' CPF do emitente.br – Todos os direitos reservados... o conteúdo pode ser omitido emi_xBairro = "CENTRO" ' bairro emi_cMun = "3550308" ' código do município (vide página 141 do manual)......... deve ser ' compatível com a UF emi_xMun = "SAO PAULO" ' nome do município emi_UF = "SP" ' sigla da UF emi_CEP = "01300000" ' CEP .. uso exclusivo do Fisco emi_xNome = "DIAS e DIAS TENTANDO S/A" ' Razão social do emitente. como &... evitar caracteres acentuados e & emi_xFant = "DDT" ' Nome fantasia emi_xLgr = "AV PRINCIPAL" ' logradouro emi_nro = "S/N" ' número.deve fixo em 1058 . DIAS TENTANDO S/A.......Brasil emi_xPais = "Brasil" ' nome do pais (Brasil ou BRASIL) emi_fone = "1133221234" ' número do telefone sem máscara emi_IE = "123456789011" ' Inscrição Estadual do emitente sem máscara © 2008-2009 – www.. assim talvez seja melhor substituir o & por e.......... Página 80 .....sem máscara emi_cPais = "1058" ' código do pais .. &quot...' inicializar variáveis '. ' pois não entedem &amp...

string _fone. emi_xLgr. emi_CEP.br – Todos os direitos reservados. string _xPais. emi_cMun. string _IM. string _xFant. emi_cPais. string _nro. string _UF. emi_IEST. emi_fone.com. emi_xFant. emi_xBairro. emi_xMun. string _IE. string _xLgr.pág. string _CPF. emi_IM. emi_xPais. string _xNome.emitente(emi_CNPJ. emi_xNome. 92 – manual de integração) Exemplo de criação do grupo ' inicializar variáveis © 2008-2009 – www. 10. string _CEP. string _cPais.2 destinatario – cria grupo XML do destinatario (E01. emi_CPF. emi_UF. emi_xCpl. string _xBairro. emi_nro. string _xMun. string _IEST. Página 81 .emi_IEST = "" ' Inscrição Estadual do ST emi_IM = "" ' Inscrição Municipal emi_CNAE = "" ' Código do CNAE ' ' gera grupo emi ' emi = objNFeUtil. emi_CNAE) string emitente(string _CNPJ.1. emi_IE. string _CNAE). string _xCpl.FlexDocs. string _cMun.

uso exclusivo do Fisco dest_xNome = "Banco do Brasil S/A" ' Razão social do destinatario.. informar S/N quano inexistente para erro de Schema XML dest_xCpl = "10 andar" ' complemento do endereço. dest_UF. dest_CEP.... dest_xMun. &quot.. dest_xNome..páginas 92)============== ' ' <>&" são caracteres reservados do XML e devem ser evitados ou substituídos ' por &lt. © 2008-2009 – www.br – Todos os direitos reservados... dest_IE.... como &.. &gy.. Página 82 ..... o conteúdo pode ser omitido dest_xBairro = "CENTRO" ' bairro dest_cMun = "3550308" ' código do município (vide página 141 do manual). dest_xCpl. &amp.......... ' dest_CNPJ = "00000000000191" ' CNPJ do destinatario sem máscara de formatação dest_CPF = "" ' CPF do destinatario.deve fixo em 1058 . dest_cMun.... dest_xPais.'.....sem máscara dest_cPais = "1058" ' código do pais .. dest_xLgr.destinatario(dest_CNPJ. dest_fone....... dest_xBairro. string _CPF. dest_cPais. dest_nro. DIAS TENTANDO S/A.com.Brasil dest_xPais = "Brasil" ' nome do pais (Brasil ou BRASIL) dest_fone = "1133221234" ' número do telefone sem máscara dest_IE = "123456789011" ' Inscrição Estadual do destinatario sem máscara dest_IESUF = "" ' Inscrição SUFRAMA ' ' gera grupo do destinatário ' dest = objNFeUtil. dest_IESUF) string emitente(string _CNPJ.. '==========grupo de identificação do destinatario (grupo E do Manual de integração . dest_CPF. evitar caracteres acentuados e & dest_xFant = "BB" ' Nome fantasia dest_xLgr = "Rua Libero Badaro" ' logradouro dest_nro = "280" ' número. deve ser compatível com a UF dest_xMun = "SAO PAULO" ' nome do município dest_UF = "SP" ' sigla da UF dest_CEP = "01315000" ' CEP . ' pois não entedem &amp.. ' ' Vale ressaltar que as aplicações das UF devem mostrar DIAS &amp.. assim talvez seja melhor substituir o & por e....FlexDocs.

... (vide página 141 do ' manual) ide_natOp = "Venda" ' naturez da operação ide_indPag = 0 ' 0=pagamento à vista ide_mode = 55 ' modelo da nota fiscal eletronica ide_serie = 0 ' série única = 0 ide_nNF = 1 ' número da NF-e ide_dEmi = #11/28/2008# ' data de emissão ide_dSaiEnt = #30/12/1899# ' data em branco = 30/12/1899 ide_tpNF = 1 ' número da nota fiscal de saída © 2008-2009 – www.com..tabela do IBGE: 35 ..string _xNome.. string _xCpl.. string _UF... string _xPais.RS.. string _CEP.pág. 43 .. string _fone.. Página 83 . 10. string _cMun... string _xMun.. string _cPais.páginas 86 a 89 ' ide_cUF = 35 ' código da UF ...grupo B do Manual de integração ...FlexDocs. string _xLgr.. ' '========grupo de identificação da NF-e .......1.... string _xBairro.... string _IESUF)..... etc..SP. 86 – manual de integração) Exemplo de criação do grupo ' inicializar variáveis '. string _IE....br – Todos os direitos reservados.. string _nro..3 identificador – cria grupo XML do identificador da NF-e (B01.....

modelo. ano. mes. ide_procEmi = 0 ' identificação do processo de emissão da NF-e 0 .br – Todos os direitos reservados.normal.ide_cMunFG = 3550308 ' código do município do IBGE de ocorrência do FG do ICMS (vide pág. etc. "mm") modelo = Trim(Str(ide_mode)) serie = Trim(Str(ide_serie)) numero = Trim(Str(ide_nNF)) msgResul = "" codigoseguranca = "segredo" cNF = "" cDV = "" chaveNFE = "" © 2008-2009 – www. Página 84 .141 do ' manual) ide_tpImp = 1 ' orientação da impressão 1-retrato/2-paisagem ide_tpAmb = 2 ' ambiente de envio da NF-e 1-produção / 2 .FlexDocs. código da NF-e e DV ' '=========variáveis de trabalho ' ' Dim resultado As Long Dim cUF. codigoseguranca As String Dim msgResul As String Dim cNF As String Dim cDV As String cUF = Trim(Str(ide_cUF)) ano = Format(ide_dEmi.4" ' identificação da vesão do processo de emissão ide_NFref = "" ' NF referenciada ' ' gera a chave de acesso da NF-e ' ' utilizar a função criaChaveNFe para gerar a chave de acesso.contingência FS.homologação ide_finNFe = 1 ' finalidade da emissão da NF-e 1.NF-e normal ide_tpEmis = 1 ' forma de emissão da NF-e 1.contingência ' SCAN. numero. 3 . 2 .aplicação do contribuinte ide_verProc = "NFe_Util_v1. serie. "YY") mes = Format(ide_dEmi.com.

ide_tpNF. ide_indPag. cDV. string _verProc). int _nNF.If objNFeUtil. numero. int _serie. emi_CNPJ. int _tpAmb. ide_verProc) string identificador(int _cUF. int _cDV. ide_mode. ide_finNFe.com. string _NFref. int _procEmi.br – Todos os direitos reservados. int _finNFe. DateTime _dEmi. string _natOp. msgResul. codigoseguranca.identificador(ide_cUF. ide_cMunFG. ide_cDV. "Resultado" End If ide_cNF = Val(cNF) ' código numérico que compõe a chave de acesso ide_cDV = Val(cDV) ' DV da chave de acesso da NF-e ' ' gera grupo ide ' ide = objNFeUtil. ide_tpEmis. chaveNFE) <> 0 Then MsgBox "Ocorreu um erro ao gerar a chave de acesso " + msgResult. ide_dEmi. ide_natOp. Página 85 . DateTime _dSaiEnt. mes. int _indPag. int _tpEmis.CriaChaveNFe(cUF. modelo. © 2008-2009 – www. ide_dSaiEnt. int _tpNF. ide_tpImp. ide_cNF. ide_procEmi. int _mod. vbInformation. ide_nNF. int _cNF. ano. serie. ide_serie. ide_NFref. string _cMunFG. cNF.FlexDocs. int _tpImp. ide_tpAmb.

.....12.... ' ' ‘ As informações de detalhamento específico devem ser criadas antes para serem concatenas no produto: ‘ ‘ 1... espaços em branco consecutivos ou no início ou ' fim do campo podem gerar erro de Schema XML....... pode ser omitido se não sujeito ao IPI Prod_ExTIPI = "" ' ExTipi. ‘ ‘ '===========grupo de detalhe do produto (grupo I01 do Manual de integração .... 95 – manual de integração) Exemplo de criação do grupo ' inicializar variáveis '.... será necessário criar as informações da DI e adicoes da DI ‘ para serem concatenadas para cada detalhe de produto.. veicProd – informações específicas de veículos novos ‘ 3... o conteúdo pode ser omitido se não tiver EAN Prod_xProd = "Cola Especial para EPS" ' código do produto.4 produto – cria grupo XML do produto da NF-e (I01.páginas 95)======================= ' ' Prod_cProd = "001152" ' código do produto Prod_cEAN = "7897844200115" ' código EAN (0... especialização do código NCM.10.. comb – informações específicas de combustíveis ‘ ‘ Estes grupos são mutuamente exclusivos e devem ser informados em _detEspecifico ‘ ‘ Em se tratatando de importação.. 8..br – Todos os direitos reservados...FlexDocs.... causa erro de XML se informado um código ' inexistente Prod_uCOM = "UN" ' unidade de comercialização © 2008-2009 – www.com....1. arma – informações específicas de armamentos ‘ 4.pág.... 13 ou 14 caracteres). além de caracteres ' reservados do XML <>&"' Prod_NCM = "" ' código NCM..... informar apenas se existir Prod_genero = 0 ' informar as duas primeiras posições do NCM Prod_CFOP = "5102" ' CFOP do operação.. med – informações específicas de mediacamento ‘ 2. Página 86 .

campo de mera demonstração deve ' ser o resultado da divisão do vProd / qCom Prod_vProd = 10 ' valor do total do item Prod_cEANTrib = "7897844200115" ' código EAN (0. Prod_vFrete. prod_detestpecifico) Prod_qCom = 10 Prod_vUnCom = 1 string produto(string _cProd. prod_gernero. Prod_cEAN.' quantidade de comercialização ' valor unitário de comercialização. em geral é o mesmo código do EAN de ' comercialização Prod_uTrib = "UN" ' unidade de tributação.FlexDocs.com. informar para medicamento. Prod_uCOM. Prod_NCM.br – Todos os direitos reservados. 13 ou 14 caracteres). o conteúdo pode ser ' omitido se não tiver EAN. Prod_DI. Prod_vUnTrib. prod_Vdesc. se cobrado do cliente deve ser rateado entre os ' itens de produto Prod_vSeguro = 0 ' valor do seguro. Prod_vUnCom. Prod_infAdProd = "" ' informações adicionais do produto ' ' ' gera grupo do produto ' prod = objNFeUtil. Prod_uTrib. ' pode diferente nos casos de produtos sujeitos a ST em que a ' unidade de pauta é diferente da unidade de comercialização ' Ex. Prod_ExTIPI. Prod_qTrib. informar apenas no caso de NF de entrada ' (montar grupo de importação) Prod_DetEspecifico = "" ' dados específicos. ' armamentos e combustíveis – montar os grupos respecitovs. unidade de comercialização = 1 pack de lata de cerveja => ' unidade de tributação = 1 lata (preço de pauta) Prod_qTrib = 10 ' quantidade de comercialização Prod_vUnTrib = 1 ' valor unitário de tributação. 8. Prod_cEANTrib. Prod_CFOP. Prod_qCom. campo de mera demonstração deve ser ' o resultado da divisão do vProd / qTrib Prod_vFrete = 0 ' valor do frete. Página 87 .produto(Prod_cProd. veículos novos. © 2008-2009 – www. Prod_vProd. prod_vSeg. Prod_xProd. na maioria dos casos é idêntico ao vUnCom.12. string _cEAN. se cobrado do cliente deve ser rateado entre os ' itens de produto prod_Vdesc = 0 ' valor do desconto concedido Prod_DI = "" ' dados da importação.

1.5 Outras funções relacionadas com o detalhamento do produto string veicProd(int _tpOp. string _DetEspecifico). string _chassi. string _xCor. string _pesoB.br – Todos os direitos reservados.com. string _NCM. double _vFrete. double _qTrib. string _nSerie. string _uCom. string _cCor. int _genero. double _qCom.string _xProd. string _EXTIPI. Página 88 . string _uTrib. string _tpComb. double _vSeg. double _vDesc. 10. string _peloL. © 2008-2009 – www. string _cEANTrib. string _nMotor. int _CFOP. string _CM3. double _vUnCom.FlexDocs. string _pot. double _vProd. string _DI. double _vUnTrib.

string _nSerie. double _vPMC). string _RENAVAM. string _cMod). DateTime _dDesemb. string _tpPint. DateTime _dDi. string _nCano. string _condVeic. string _dist. string _anoFab. string _xLocDesemb. string _UFDesemb.br – Todos os direitos reservados. double _vDescDI).string _CMKG. string _anoMod. string adi(int _nAdicao. string med(string _nLote. Página 89 . DateTime _dFab. string _descr). string _tpVeic. string _VIN. double _qLote. DateTime _dVal. string _espVeic. string _cFabricante.FlexDocs. string arma(int _tpArma. string DI(string _nDI. © 2008-2009 – www.com. int _nSeqAdic.

.. double _vICMSSTDest. double _vICMS..1. 95 – manual de integração) Exemplo de criação do grupo ' inicializar variáveis '.... double _vICMSSTCons.. ' ' ' ' '=========dados do ICMS (grupo N01 do Manual de integração . double _qTemp.FlexDocs..... double _vBCICMSSTCons... string comb(string _cProdANP. double _vBCICMSST.. double _vAliqProd.......com.....6 ICMS – cria grupo XML do ICMS do item da NF-e (I01.pág.string _cExportador. string _UFCons)... string _CODIF. double _vICMSST. string _adi)....... double _vBCICMS.páginas 100)===================== ' icms_orig = "0" ' Tabela A .... double _qBCProd.br – Todos os direitos reservados.....origem da mercadoria 0=nacional © 2008-2009 – www. 10. Página 90 ...... double _vCIDE. double _vBCICMSSTDest...

double _pICMS. double _pICMSST. double _vICMS.br – Todos os direitos reservados. double _vICMSST).8 ' valor do ICMS icms_modBCST = 0 ' modalidade de determinação da BC ICMS ST icms_pmVAST = 0 ' percentual de valor de margem e valor adicionado icms_pRedBCST = 0 ' percentual de redução da BC do ICMS ST icms_BCST = 0 ' BC do ICMS ST icms_pICMSST = 0 ' percentual do ICMSST icms_vICMSST = 0 ' valor do ICMS ST devido ' ' gera grupo do ICMS ' icms = objNFeUtil. icms_vBC. int _modBCST.com. string _CST. icms_CST. double _vBC. icms_vmodbcst. icms_vICMSST) string icms(string _orig. double _pRedBC. icms_pICMS. icms_pICMSST.icms_CST = "00" ' Tabela B . icms_pRedBCST. Página 91 .CST=00-tributação normal icms_modBC = 3 ' modalidade de determinação da BC = 3-valor da operação icms_pRedBC = 0 ' percentual de redução da BC icms_vBC = 10 ' valor da BC do ICMS = vProd + vFrete + vSeguro icms_pICMS = 18 ' alíquota do ICMS icms_vICMS = 1. int _modBC.FlexDocs. double _pRedBCST. icms_pRedBC. © 2008-2009 – www. double _vBCST. icms_modBC. icms_vBCST.icms(icms_orig. icms_vICMS. icms_pmVAST. double _pMVAST.

double _vBC.PIS(pis_CST. pis_vPIS. double _qBCProd.10... ' ' ' '=========dados do PIS (grupo Q do Manual de Integração .........16 pis_qBCProd = 0 pis_vAliqProd = 0 ' ' gera grupo do PIS ' PIS = objNFeUtil.. Página 92 ......7 PIS – cria grupo XML do PIS do item da NF-e (Q01.0165 pis_vPIS = 0....pág.. double _vPIS..... pis_qBCProd.1..FlexDocs... 113 – manual de integração) © 2008-2009 – www. 10.com.. PIS_AliqProd) string PIS(string _CST.. 110 – manual de integração) Exemplo de criação do grupo ' inicializar variáveis '.br – Todos os direitos reservados.. pis_pPIS.... double _pPIS.8 COFINS – cria grupo XML do COFINS do item da NF-e (S01...... double _vAliqProd).1. pis_vBC..páginas 110) ============= ' pis_CST = "01" pis_vBC = 10 pis_pPIS = 0........pág.

cofins_vBC...... double _pCOFINS.. double _vCOFINS..3 cofins_qBCProd = 0 cofins_vAliqProd = 0 ' ' gera grupo do COFINS ' COFINS = objNFeUtil........ cofins_pCOFINS. 10.br – Todos os direitos reservados. cofins_qBCProd....Exemplo de criação do grupo ' inicializar variáveis '..COFINS(cofins_CST... double _vBC. ' ' ' '========dados do COFINS (grupo S do Manual de Integração . Página 93 ... double _vAliqProd). cofins_vCOFINS.. double _pCOFINS. © 2008-2009 – www.1..FlexDocs. cofins_AliqProd)) string COFINS(string _CST....com.páginas 113) ============ ' cofins_CST = "01" cofins_vBC = 10 cofins_pCOFINS = 0.......03 cofins_vCOFINS = 0........... double _qBCProd..9 Outras funções relacionadas com o imposto do item string COFINSST(double _vBC...

double _qSelo. double _vIPI. double _vII.br – Todos os direitos reservados. string _CST. string PISST(double _vBC. string _cEnq. © 2008-2009 – www. double _vBC. string IPI(string _clEnq. int _cListServ). string ISSQN(double _vBC. double _vAliqProd).com. string _CNPJProd. double _vAliq. double _vIOF). double _pIPI. string _cSelo. double _vAliqProd). string II(double _vBC. double _qBCProd. double _vPIS. double _qUnid. double _qBCProd. double _pPIS. double _vDespAdu. Página 94 . string _cMunFG. double _vUnid).FlexDocs. double _vISSQN.double _vCOFINS.

.... "") ' ' atualização de total ' totICMS_vBC = totICMS_vBC + icms_vBC © 2008-2009 – www. COFINS.. ' 5.FlexDocs.. ' 7.1.... "". ' 8.. PIS ..informações do II.br – Todos os direitos reservados.......pág.... icms – informarções do ICMS ' 2. "".informações do IPI... Página 95 .. COFINS – informações do COFINS ' ' INFORMAÇÃO DEPENDE DA OPERAÇÃO E DO CONTRIBUINTE: ' ' 4.. IPI ... ' ' '========dados do IMPOSTO (grupo M do Manual de Integração . IPI ....informações do PIS ' 3..informações do PISST.informações do ISSQN. "". 100 – manual de integração) Exemplo de criação do grupo ' inicializar variáveis '.10. COFINSST – informações do COFINSST. ' 6..... II ... PISST ..10 IMPOSTO – cria grupo XML do IMPOSTO do item da NF-e (M01. ' imposto = objNFeUtil..páginas 100) ============ ' ' “consolidar” os grupos de tributos que foram criados nos passos anteriores ' ' INFORMAÇÃO OBRIGATÓRIA ' ' 1....com.. PIS.imposto(icms. "".....

© 2008-2009 – www.pág.. 10..... string _cofinsst.... ' ' _infAdprod = “Informacoes adcionais do produto) infAdProd = objNFeUtil........ string _pisst.11 InfAdProduto – cria grupo XML das informações adicionais do produto da NF-e (V01.....totICMS_vICMS = totICMS_vICMS + icms_vICMS totICMS_vBCST = totICMS_vBCST + icms_vBCST totICMS_vST = totICMS_vST + icms_vST totICMS_vProd = totICMS_vProd + Prod_vProd totICMS_vFrete = totICMS_vFrete + Prod_vFrete totICMS_vSeg = totICMS_vSeg + prod_vSeg totICMS_vDesc = totICMS_vDesc + prod_Vdesc string imposto(string _icms........br – Todos os direitos reservados...... string _cofins..... string _produto.....com. string _ipi..1. Página 96 ...... 116 – manual de integração) Exemplo de criação do grupo de detalhe ' inicializar variáveis '.FlexDocs. string _pis. string _issqn).infAdProd(_infAdProd) string detalhe(int _nItem.. string _ii.

os dados do imposto (imposto) ' 3. 118 – manual de integração) © 2008-2009 – www.13 Transportador – cria grupo XML do Transportador da NF-e (X01. informaçõea adiconais do produto (infAdprod) ' ' em caso de mais de um item de detalhe na NF-e e necessário concacater os detalhes ' detalhes = detalhes + objNFeUtil....1.. 10... prod.... imposto. ' ' necessário criar antes: ' 1.FlexDocs... prod. string _infAdProd)...com.... Página 97 .....12 DETALHE – cria grupo XML do item de DETALHE do produto da NF-e (H01.pág..... 10..pág.. 95 – manual de integração) Exemplo de criação do grupo de informações adicionais do produto ' inicializar variáveis '..detalhe(1.detalhe(1.. imposto......1..br – Todos os direitos reservados..........string _imposto.... infAdProd) string infAdProd(string _infAdProd). infAdProd) ' detalhes = objNFeUtil. os dados do produto (prod) ' 2.

... os dados do veicTransp (veicTransp) – dados dos veículos utilizados no transporte ' 2.... os dados do reboque (reboque) – dados do reboque utilizados no transporte ' 3.... os dados do lacres (lacres) – os dados do lacre se existentes ' 5..vol(qvol. lacres ) ' ' em caso de existência de mais de um lacre por volume: ' ' lacres = lacres + objNFeUtil.reboque(placa1. os dados do transportador (transporta) – dados do transportador ' ' em caso de existência de mais um item de reboque ou volume: ' ' vol = vol + objNFeUtil.com. marca.. os dados dos vol (vol) – dados dos volumes das mercardorias transportadas ' 4. RNTC1) + objNFeUtil. se existente: ' 6. RNTC2) ' ' '====== Dados do Transportador========= ' Dim transporte As String ' grupo de informações do transporte ' ' ' Dim transpModFrete As String ' indicador da responsabilidade do pagamento do frete 0-emitente/1-destinatário ' '===== grupo de informações do transportador ======== ' Dim transporta As String ' grupo de informações do transportador © 2008-2009 – www...lacre( lacre ) ' ' reboque = objNFeUtil.... nVol..FlexDocs... esp. os dados da retTransp (retTransp) – retenção de tributo incidente na prestação ' 1...... ' ' necessário criar antes.... UF1.... UF2...... pesoB.....br – Todos os direitos reservados. Página 98 ...Exemplo de criação do grupo do transportador ' inicializar variáveis '... pesoL.reboque(placa2....

FlexDocs. ' Dim retTransp_vServ As Currency ' Valor do Serviço de Transporte Dim retTransp_vBCRet As Currency ' Valor da BC do Serviço de Transporte Dim retTransp_pICMSRet As Currency ' Alíquota do ICMS incidente no Serviço de Transporte Dim retTransp_vICMSRet As Currency ' Valor do ICMS devido no Serviço de Transporte Dim retTransp_CFOP As Long ' CFOP do Serviço de Transporte Dim retTransp_cMunFG As Currency ' Código do Município de ocorrência do FG. local o início da prestação do serviço ' '======= dados do veículo do transporte ======================== ' Dim veicTransp As String ' dados do veículo do transporte ' Dim veicTransp_placa As String ' placa do veículo Dim veicTransp_UF As String ' Sigla da UF de registro do veículo Dim veicTransp_RNTC As String ' RNTC da transportadora © 2008-2009 – www.' Dim transporta_CNPJ As String ' CNPJ do transportador Dim transporta_CPF As String ' CPF do transportador autonomo Dim transporta_xNome As String ' nome ou razão social do transportador Dim transporta_IE As String ' IE do transportador Dim transporta_xEnder As String ' Endereço do transportador Dim transporta_xMun As String ' Município do endereço do transportador Dim transporta_UF As String ' Sigla da UF do endereço do transportador ' '====== grupo de informações do ICMS do transporte retido ====== ' Dim reTransp As String ' grupo de informações do ICMS do transporte retido ' este grupo só deverá ser informado nas situações ' em que a legislação atribui a resposabilidade pela ' retenção ou recolhimento do ICMS devido no transporte ' ao tomador do serviço de transporte como é o caso ' quando o tranportador é autonônomo e não faz o recolhimento ' por guia de recolhimento ou o transportador não é contribuinte ' do ICMS inscrito na UF de início da prestação do serviço de ' transporte e não faz o recolhimento por GNRE.br – Todos os direitos reservados.com. Página 99 .

os dados da retTransp (retTransp) – retenção de tributo incidente na prestação © 2008-2009 – www.com.FlexDocs. os dados dos vol (vol) – dados dos volumes das mercardorias transportadas ' 3. se existente: ' ' 1. os dados do reboque (reboque) – dados do reboque utilizados no transporte ' 4. Página 100 .br – Todos os direitos reservados. os dados do lacres (lacres) – os dados do lacre se existentes ' 2. os dados do veicTransp (veicTransp) – dados dos veículos utilizados no transporte ' 5.' '======= dados do veículo do transporte ======================== ' Dim reboque As String ' dados do reboque ' Dim reboque_placa As String ' placa do reboque Dim reboque_UF As String ' Sigla da UF de registro do reboque Dim reboque_RNTC As String ' RNTC da transportadora ' '======= dados dos volumes transportados ======================== ' Dim vol As String ' dados dos volumes transportados ' Dim vol_qVol As Double ' quantidade de volumes Dim vol_esp As String ' espécie dos volumes Dim vol_marca As String ' marca dos volumes Dim vol_nVol As String ' numeração dos volumes Dim vol_pesoL As Double ' peso líquido dos volumes Dim vol_pesoB As Double ' peso bruto dos volumes Dim vol_lacres As String ' informações dos lacres ' '======= informação dos lacre =========================== ' Dim lacres As String ' informação dos lacres ' Dim lacres_lacre As String ' lacre ' ' ' ordem de informação dos campos.

com. pesoL. RNTC2) ' ' ============== criação dos lacres do volume ' lacres = "" ' ' grupo não obrigatório ' lacres_lacre = "123456789" ' dados do 1º lacre lacres = lacres + objNFeUtil. lacres ) ' ' em caso de existência de mais de um lacre por volume: ' ' lacres = lacres + objNFeUtil.br – Todos os direitos reservados. pesoB.lacres( lacres_lacre) ' monta o grupo lacres ' ' (. esp.reboque(placa1.' 6.lacres( lacre ) ' ' reboque = objNFeUtil. RNTC1) + objNFeUtil. Página 101 .reboque(placa2.) etc. ' ' ' ============== criação dos lacres do volume ' vol = "" vol_qVol = 2 ' quantidade de volumes vol_esp = "caixa" ' espécie dos volumes vol_marca = "FlexDocs" ' marca dos volumes vol_nvol = "100.. UF1.FlexDocs. UF2.lacres( lacres_lacre) ' monta o grupo lacres ' lacres_lacre = "2345678902" ' dados do 2º lacre lacres = lacres + objNFeUtil. marca. nVol. 101" ' numeração dos volumes vol_pesoL = 10 ' peso líquido © 2008-2009 – www.vol(qvol. os dados do transportador (transporta) – dados do transportador ' ' em caso de existência de mais um item de reboque ou volume: ' ' vol = vol + objNFeUtil.

vol_marca. Página 102 .vol(vol_qvol. vol_pesoB.vol(vol_qvol. vol_nVol. vol_esp.vol_pesoB = 12 ' peso bruto ' ' cria grupo do volume ' vol = vol + objeNFeUtil. vol_pesoL.br – Todos os direitos reservados. vol_pesoL.lacres( lacres_lacre) ' monta o grupo lacres ' ' ' ============== criação dos lacres do volume ' vol = "" vol_qVol = 1 ' quantidade de volumes vol_esp = "fardo" ' espécie dos volumes vol_marca = "FlexDocs" ' marca dos volumes vol_nvol = "fardo1" ' numeração dos volumes vol_pesoL = 15 ' peso líquido vol_pesoB = 18 ' peso bruto ' ' cria grupo de volume ' vol = vol + objeNFeUtil. vol_esp.FlexDocs. vol_pesoB. lacres) ' ' repetir tantas vezes quantos forem os volumes ' ' ' ============== criação dos lacres do volume ' lacres = "" ' ' grupo não obrigatório ' lacres_lacre = "34567891" ' dados do 1º lacre lacres = lacres + objNFeUtil. vol_nVol.com. lacres) ' ' =============== cria informação do reboque ================= ' © 2008-2009 – www. vol_marca.

FlexDocs. veicTransp_UF.br – Todos os direitos reservados.com.reboque(reboque_placa. grupo não obrigatório ' reboque_placa = "AAA7890" reboque_UF = "PR" reboque_RNTC = "123456789012" ' ' cria grupo do reboque ' reboque = reboque + objeNFeUtil.reboque = "" ' ' reboque 1. reboque_UF. reboque_RNTC) ' ' ================ cria informação do veículo =================== ' veicTransp = "" ' veicTransp_placa = "AAA5555" veicTransp_UF = "PR" veicTransp_RNTC = "123456789012" ' veicTransp = veicTransp + objeNFeUtil. reboque_UF. grupo não obrigatório ' reboque_placa = "AAA1234" reboque_UF = "PR" reboque_RNTC = "123456789012" ' ' cria grupo do reboque ' reboque = reboque + objeNFeUtil.reboque(reboque_placa. reboque_RNTC) ' ' reboque 2. Página 103 . veicTransp_RNTC) ' ' ' ================ cria informação do tributo retido do transporte =================== ' © 2008-2009 – www.veicTransp(veicTransp_placa.

retTransp = "" ' ' grupo não obrigatório, só informar se houve retenção do ICMS ' retTransp_vServ = 500 ' valor do Serviço de transporte retTransp_vBCRet = 500 ' BC do valor do Serviço de transporte retTransp_pICMSRet = 12 ' alíquota do Serviço de transporte retTransp_vICMSRet = 60 ' valor do ICMS do Serviço de transporte retTransp_CFOP = 5353 ' CFOP do Serviço de transporte retTransp_cMun = 3550308 ' código do município do IBGE do local de início da prestação Serviço de transporte ' retTransp = objeNFeUtil.retTransp(retTransp_vServ, retTransp_vBCRet, retTransp_pICMSRet, retTransp_vIMCSRet, retTransp_CFOP, retTransp_cMun) ' ' ' ' ================ cria informação de identificação do transportador =================== ' transporta = "" ' transporta_CNPJ = "" ' CNPJ do transportador - mutuamento exclusivo - não informar se informado CPF transporta_CPF = "12345678901" ' CPF do transportador autonomo - mutuamento exclusivo - não informar se informado CNPJ transporta_xNome= "Joao da Silva" ' nome ou razão social do transportador transporta_IE ="" ' IE do transportador transporta_xEnder = "Av. Colombo, 1500" ' Endereço do transportador transporta_xMun = "Maringa" ' Município do endereço do transportador transporta_UF = "PR" ' Sigla da UF do endereço do transportador ' transporta = objeNFeUtil.transporta(transporta_CNPJ, transporta_CPF, transporta_xNome, transporta_IE, transporta_xEnder, transporta_xMun, transporta_UF) ' ' transpModFrete = "0" ' responsabilidade do frete 0-emitente, 1-destinatário ' ' transporte = objNFeUtil.transportador(transpModFrete, transporta, retTransp, veicTransp, reboque, vol)

© 2008-2009 – www.FlexDocs.com.br – Todos os direitos reservados.

Página 104

string transportador(string _modFrete, string _transporta, string _retTransp, string _veicTransp, string _reboque, string _vol); string transporta(string _CNPJ, string _CPF, string _xNome, string _IE, string _xEnder, string _xMun, string _UF);

string retTransp(double _vServ, double _vBCRet, double _pICMSRet, double _vICMSRet, int _CFOP, string _cMunFG);

string veicTransp(string _placa, string _UF, string _RNTC); string reboque(string _placa, string _UF, string _RNTC);

string vol(double _qVol, string _esp, © 2008-2009 – www.FlexDocs.com.br – Todos os direitos reservados. Página 105

string _marca, string _nVol, double _pesoL, double _pesoB, string _lacres); string lacres(string _lacre);

10.1.14

Outras funções relacionadas com o local de entrega e loal de retirada

string localRetirada(string _CNPJ, string _xLgr, string _nro, string _xCpl, string _xBairro, string _cMun, string _xMun, string _UF);

string localEntrega(string _CNPJ, string _xLgr, string _nro, string _xCpl, string _xBairro, string _cMun, string _xMun, string _UF);

© 2008-2009 – www.FlexDocs.com.br – Todos os direitos reservados.

Página 106

string NFRef(int _cUF. 10.1.17 Outras funções para criação de informações complementares/adicionais string compra(string _xNEmp.16 Funções de nota fiscal referenciada string NFeRef(string _NFe). int _mod.com. string _xPed. 10. string dup(string _nDup.1. string _CNPJ.1.br – Todos os direitos reservados. int _nNF). string _AAMM.10. © 2008-2009 – www. double _vLiq. Página 107 . double _vDup). int _serie.FlexDocs. DateTime _dVenc.15 Funções de cobrança/fatura string cobr(string _nfat. string _dup). double _vOrig. double _vDesc.

string exporta(string _UFEmbarq. string _nDAR.br – Todos os direitos reservados. DateTime _dEmi. string obsFisco(string _xCampo. © 2008-2009 – www. string _infCpl. string _matr. string infAdic(string _infAdFisco. Página 108 . string _xTexto). string _xAgente. string obsCont(string _xCampo. int _indProc). string _xOrgao.string _xCont). double _vDAR. string _xLocEmbarq). string _obsFisco. string _fone.com. string avulsa(string _CNPJ. string _UF.FlexDocs. DateTime _dPag). string _repEmi. string procRef(string _nProc. string _xTexto). string _obsCont. string _procRef).

double _vIPI. "") ' total da NF-e sem os valors de ISSQN e RetTributos totICMS_vFrete. © 2008-2009 – www.10. double _vCOFINS. Página 109 . totICMS_vDesc. totICMS = objNFeUtil. totICMS_vPIS.1. double _vProd. totICMS_vSeg. apenas cria os grupos XML de valors totais. que responsabilidade do usuário.totalICMS(totICMS_vBC. totICMS_vICMS. Apenas o grupo de totais do ICMS é obrigatório. double _vPIS. totICMS_vProd. totICMS_vBCST. "". totICMS_vST. double _vST.br – Todos os direitos reservados.FlexDocs. double _vFrete. double _vII.18 Funções para consolidação de valores da NF-e A DLL não consolida valores. totICMS_vOutro. totICMS_vII. double _vICMS.com. totICMS_vIPI. double _vBCST. totICMS_vNF) total = objNFeUtil. os valores do ISS e tributos retidos devem ser informados só quando existentes.total(totICMS. string totalICMS(double _vBC. double _vDesc. totICMS_vCOFINS. double _vSeg.

double _vPIS. string _retTrib). string _ISSQNtot. double _vNF).com. string total(string _ICMSTot. double _vRetCSLL. double _vBC. string tributoRetido(double _vRetPIS. double _vBCIRRF. double _vIRRF. string totalISS(double _vServ. 10.double _vOutro.2 Conversão de um arquivo TXT em XML © 2008-2009 – www. double _vRetPrev). double _vRetCOFINS. Página 110 . double _vBCRetPrev.br – Todos os direitos reservados. double _vISS. double _vCOFINS).FlexDocs.

não / 1 . int geraChaveNFe.conversão realizada com sucesso 1 .FlexDocs. © 2008-2009 – www.cNF Retorno: Txt2XML: código do resultado da chamada da função 0 .falha na conversão do TXT em XML txtNumerado: NF-e em formato txt com número de linha para facilitar a localização de eventual erro XML: NF-e em padrão XML erros: relatório de erros encontrados no arquivo XML qtErros: quantidade de erro msgResultado: literal da mensagem de resultado da chamada da função int Txt2XML(string txt.fazenda.erro inexperado no tratamento do txt de entrada 5 .br – Todos os direitos reservados.br/manuais.sim codigoSeguranca: código de seguranca.código de segurança deve ser informado para geraChaveNFe=1 4 .html A conversão é limitada a uma NF-e por vez. O leiaute do TXT está disponível em: http://www.falha no preenchimento dos campos txt .com. o emissor deve adotar uma frase qualquer para dificultar que 3ºs descubram o Código Numérico que compõe a Chave de Acesso .txt informado tem mais 1 nota fiscal 8 .Funcionalidade para converter um arquivo TXT elaborado de acordo com o padrão adotado pelo Emissor de NF-e da SEFAZ/SP. Página 111 .txt informado não tem nennhuma nota fiscal válida 7 .sp.emissornfe. Entradas: txt: NF-e em formato txt do emissor da NF-e da SEFAZ/SP geraChaveNFe: 0 .txt informado sem conteúdo 2 .qtde: 6 .geraChaveNFe com valor inválido 3 .gov.

out string txtNumerado.com.string codigoSeguranca. out string msgResultado). Página 112 . out string XML. out int qtErros.br – Todos os direitos reservados.FlexDocs. out string erros. © 2008-2009 – www.