FONTE NFE VB.NET
Teste aqui e enviou o lote a nota validou no SEFAZ mas função:
StrRetorno = WebS.EnviaLote4(....
não trouxe nada, sera que teria que alterar a função?
Alguem tem ideia, obrigado.
StrRetorno = WebS.EnviaLote4(....
não trouxe nada, sera que teria que alterar a função?
Alguem tem ideia, obrigado.
Na verdade eu enviei
'ENVIA LOTE DE NOTAS VERSÃO 2.00
StrRetorno = WebS.EnviaLote4(strCaminho & "\" & strNomeXml, Me.txt_CertDigital.Text)
Mas por agora ser sincrono ele me trouxe
StrRetorno.xMotivo = "Lote processado"
Ai nesse caso por ser sincrono eu não tenho mais que consultar certo
Dim RetonoConsulta As New RetRetorno
RetonoConsulta = WebS.ConsultaRecLote4(StrRetorno.nRec, Me.txt_CertDigital.Text)
Mas antes eu tinha aconsulta ao lote com o recibo e buscava no retorno RetC.xMotivo = "Autorizado o uso da NF-e"
e gerava a nota
GerarNotaProcessada(SepararNota(XmlNota.OuterXml), RetC.XmlRecibo, strCaminho & "\" & strNomeXml)
Como fica agora?
'ENVIA LOTE DE NOTAS VERSÃO 2.00
StrRetorno = WebS.EnviaLote4(strCaminho & "\" & strNomeXml, Me.txt_CertDigital.Text)
Mas por agora ser sincrono ele me trouxe
StrRetorno.xMotivo = "Lote processado"
Ai nesse caso por ser sincrono eu não tenho mais que consultar certo
Dim RetonoConsulta As New RetRetorno
RetonoConsulta = WebS.ConsultaRecLote4(StrRetorno.nRec, Me.txt_CertDigital.Text)
Mas antes eu tinha aconsulta ao lote com o recibo e buscava no retorno RetC.xMotivo = "Autorizado o uso da NF-e"
e gerava a nota
GerarNotaProcessada(SepararNota(XmlNota.OuterXml), RetC.XmlRecibo, strCaminho & "\" & strNomeXml)
Como fica agora?
Boa Tarde a todos
Depois que mudei o IndSinc=1 e atualizei os arquivos SchemaNfe acontece o seguinte erro:
System.Xml.Schema.XmlSchemaException: 'Tipo 'TTpCredPresIBSZFM' é não declarado.'
Depois que mudei o IndSinc=1 e atualizei os arquivos SchemaNfe acontece o seguinte erro:
System.Xml.Schema.XmlSchemaException: 'Tipo 'TTpCredPresIBSZFM' é não declarado.'
MITSUEDA2025,
Além da mudança do indSinc para 1, criei 2 novas funções para envio síncrono:
Seguem. Parece que deu certo.
e
Além da mudança do indSinc para 1, criei 2 novas funções para envio síncrono:
Seguem. Parece que deu certo.
Private Sub enviar2() '****** Modo Síncrono
' *** Modo de envio da nfe Síncrono - enviar2
' ******************************
' Versão: NFe 4.00 - Enviar NF-e - Modo Síncrono - 1 Nf-e por vez
' ******************************
Dim WebS As New C_WebService(UrlAcesso)
Dim StrRetorno As RetEnvio_Sincrono
MsgBox("Por favor, não desplugar o Certificado Digital!", MsgBoxStyle.Exclamation, "Certificado")
textBox1.Text = ""
ProgB1.Value = 0
ProgB1.Minimum = 0
ProgB1.Maximum = 4
ProgB1.Visible = True
Label14.Text = ""
Label14.Visible = True
'ENVIA LOTE DE NOTAS VERSÃO 4.00
StrRetorno = WebS.EnviaLote2("seu.xml")
ProgB1.Value += 1
System.Threading.Thread.Sleep(2500)
textBox1.Text += StrRetorno.xMotivo & vbNewLine
If StrRetorno.protNFE.cStat = 100 Then
Label14.Text = "Retorno concluído."
ProgB1.Value += 1
Dim sqly As String
Dim cmdy As New FbCommand
RetonoConsultaENVIO = 1
sqly = ""
sqly += " Update SAIDAS"
sqly += " SET NFE_STATUS = 'XML Enviado', NPROT = '" & StrRetorno.protNFE.nProt & "', XMOTIVO = '" & StrRetorno.protNFE.xMotivo & "'"
sqly += ", VERAPLIC = '" & StrRetorno.protNFE.verAplic & "', DHRECBTO = '" & StrRetorno.protNFE.dhRecbto & "'"
sqly += ", DIGVAL = '" & StrRetorno.protNFE.digVal & "', CSTAT = '" & StrRetorno.protNFE.cStat & "'"
sqly += " WHERE IDSAIDA = " & vr_nfeid
cmdy.Connection = conn_aux
cmdy.Parameters.Clear()
cmdy.CommandType = CommandType.Text
cmdy.CommandText = sqly
cmdy.ExecuteNonQuery()
cmdy.Dispose()
Pesquisar()
TextBox5.Text = StrRetorno.protNFE.nProt
' **** processando a NF-e - criando NFE Proc
System.Threading.Thread.Sleep(1000)
Label14.Text = "Gerando NF-e Processada..."
ProgB1.Value += 1
Gerar_ProNFe()
ProgB1.Value += 1
Label14.Text = "Envio, retorno e processamento realizados."
textBox1.Text += "Chave: " & (StrRetorno.protNFE.chNFe) & vbNewLine
textBox1.Text += "Status - Motivo: " & (StrRetorno.protNFE.cStat) & " - " & (StrRetorno.protNFE.xMotivo) & vbNewLine
textBox1.Text += "Protocolo: " & (StrRetorno.protNFE.nProt) & vbNewLine
textBox1.Text += "Ambiente (1-Prod. / 2-Homol.): " & (StrRetorno.protNFE.tpAmb) & vbNewLine
textBox1.Text += "Dígito Validador: " & (StrRetorno.protNFE.digVal)
Else
textBox1.Text += "ERRO NA NOTA!" & vbNewLine
textBox1.Text += "Motivo: " & StrRetorno.cStat & " - " & StrRetorno.xMotivo
End If
End Sub
e
Public Function EnviaLote2(ByVal EndArquivoXml As String) As RetEnvio_Sincrono
Try
Dim strRetorno As XmlElement
Dim xmldoc = New XmlDocument()
xmldoc.Load(EndArquivoXml) 'Carrega o arquivo XML
Dim CERT As X509Certificate2
CERT = SelecionarCertificado(SerieCert)
Static wsMsg As NFEAutorizacao.Autorizacao
wsMsg = New NFEAutorizacao.Autorizacao(S_Url.UrlNfeAutorizacao)
wsMsg.Timeout = 100000
wsMsg.ClientCertificates.Add(CERT)
System.Net.ServicePointManager.SecurityProtocol = DirectCast(3072, System.Net.SecurityProtocolType)
Dim Notas As String
Notas = xmldoc.OuterXml
'RETORNO DA SEFAZ
strRetorno = wsMsg.nfeAutorizacaoLote(xmldoc) 'wsMsg.nfeRecepcaoLote2(xmldoc)
'DESMEMBRA RETORNO XML
Dim StrRetNota As RetEnvio_Sincrono = Nothing
Dim XmlText As XmlDocument = New XmlDocument
For Each outerNode As XmlNode In strRetorno
For Each InnerNode As XmlNode In outerNode.ChildNodes
If (InnerNode.Name = "verAplic" Or outerNode.Name = "verAplic") Then
StrRetNota.verAplic = InnerNode.InnerText
End If
If (InnerNode.Name = "cStat" Or outerNode.Name = "cStat") Then
StrRetNota.cStat = InnerNode.InnerText
End If
If (InnerNode.Name = "xMotivo" Or outerNode.Name = "xMotivo") Then
StrRetNota.xMotivo = InnerNode.InnerText
End If
If (InnerNode.Name = "cUF" Or outerNode.Name = "cUF") Then
StrRetNota.cUF = InnerNode.InnerText
End If
If (InnerNode.Name = "nRec" Or outerNode.Name = "nRec") Then
StrRetNota.nRec = InnerNode.InnerText
End If
If (InnerNode.Name = "dhRecbto" Or outerNode.Name = "dhRecbto") Then
StrRetNota.dhRecbto = InnerNode.InnerText
End If
If (InnerNode.Name = "tMed" Or outerNode.Name = "tMed") Then
StrRetNota.tMed = InnerNode.InnerText
End If
If (InnerNode.Name = "protNFe" Or outerNode.Name = "protNFe") Then
For Each n As XmlNode In InnerNode
If (n.Name = "infProt" Or InnerNode.Name = "infProt") Then
For Each n2 As XmlNode In n
If (n2.Name = "tpAmb" Or n.Name = "tpAmb") Then
StrRetNota.protNFE.tpAmb = n.InnerText
End If
If (n2.Name = "verAplic" Or n.Name = "verAplic") Then
StrRetNota.protNFE.verAplic = n.InnerText
End If
If (n2.Name = "cStat" Or n.Name = "cStat") Then
StrRetNota.protNFE.cStat = n.InnerText
End If
If (n2.Name = "xMotivo" Or n.Name = "xMotivo") Then
StrRetNota.protNFE.xMotivo = n.InnerText
End If
If (n2.Name = "chNFe" Or n.Name = "chNFe") Then
StrRetNota.protNFE.chNFe = n.InnerText
End If
If (n2.Name = "digVal" Or n.Name = "digVal") Then
StrRetNota.protNFE.digVal = n.InnerText
End If
If (n2.Name = "dhRecbto" Or n.Name = "dhRecbto") Then
StrRetNota.protNFE.dhRecbto = n.InnerText
End If
If (n2.Name = "nProt" Or n.Name = "nProt") Then
StrRetNota.protNFE.nProt = n.InnerText
End If
Next
End If
Next
End If
Next
Next
'MsgBox(StrRetNota.protNFE.cStat & " - " & StrRetNota.protNFE.xMotivo & " - " & StrRetNota.protNFE.tpAmb)
Return StrRetNota
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "")
Return Nothing
End Try
End Function
RICABU,
Obrigado por compartilhar, eu ajustei a rotina de envio alterando a estrutura para RetRetorno inves de RetEnvio... Gambiarra, mas pra mim funcionou rs.
Quero aproveitar para agradecer a todos aqui do forum, eu não sou programador, sou contador e gosto muito da area de tecnologia, mas atuo mais na contabilidade e como key user SAP FI/CO.
Em um passado eu montei um escritorio e queria elaborar um programa para implantar nos clientes, e comecei a estudar VB.NET, tinha familiaridade porque usava VBA, e achei esse forum aqui.
Fiz um piloto de emissão de nota, e como case implantei na empresa do meu irmão kkkk, e ele usa ate hoje, eu descontinuei o projeto, foquei na contabilidade e no ERP SAP como key-user e funcional, mas sempre gostei muito de programação.
Pega algo e ficar horas ali quebrando a cabeça, qd vc ve o dia já foi embora e vc ainda ta no pique, ai qd funciona é top, muito boa a sensação, e com pessoas como vcs que sempre estão dispostos a compartilhar ajuda demais.
Obrigado a todos que compartilham seus conhecimentos e colaboram com o crescimento profissional, vcs estão de parabens.
Abraço
Obrigado por compartilhar, eu ajustei a rotina de envio alterando a estrutura para RetRetorno inves de RetEnvio... Gambiarra, mas pra mim funcionou rs.
Quero aproveitar para agradecer a todos aqui do forum, eu não sou programador, sou contador e gosto muito da area de tecnologia, mas atuo mais na contabilidade e como key user SAP FI/CO.
Em um passado eu montei um escritorio e queria elaborar um programa para implantar nos clientes, e comecei a estudar VB.NET, tinha familiaridade porque usava VBA, e achei esse forum aqui.
Fiz um piloto de emissão de nota, e como case implantei na empresa do meu irmão kkkk, e ele usa ate hoje, eu descontinuei o projeto, foquei na contabilidade e no ERP SAP como key-user e funcional, mas sempre gostei muito de programação.
Pega algo e ficar horas ali quebrando a cabeça, qd vc ve o dia já foi embora e vc ainda ta no pique, ai qd funciona é top, muito boa a sensação, e com pessoas como vcs que sempre estão dispostos a compartilhar ajuda demais.
Obrigado a todos que compartilham seus conhecimentos e colaboram com o crescimento profissional, vcs estão de parabens.
Abraço
Ola Gente Bonita Boa tarde
Alguem ja conseguiu implementer o IBS / CBS?
estou tentando validar um XML mas da erro justamente falando que nao esperava pela TAG IBS /CBS
o XML que gerei foi esse (claro que os dados do cliente eu altrei direto no XML para ficar um Modelo tá (desconsiderem as informações do cliente/emissor)
quando tento validar da esse retorno
"NFe35250999999999000199550010000000011000000010
XML Contem os seguintes erros:
Falha de Esquema: O elemento pai: 'imposto' não estava esperando o elemento 'IBS'. O elemento esperado é: 'ICMS, IPI, ou ISSQN...'.
Falha de Esquema: O elemento 'vBC' existe mas não pertence ao elemento pai que está contido."
Alguém pode me da um Help onde estou errando
Alguem ja conseguiu implementer o IBS / CBS?
estou tentando validar um XML mas da erro justamente falando que nao esperava pela TAG IBS /CBS
o XML que gerei foi esse (claro que os dados do cliente eu altrei direto no XML para ficar um Modelo tá (desconsiderem as informações do cliente/emissor)
<?xml version="1.0" encoding="UTF-8"?>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe Id="NFe35250999999999000199550010000000011000000010" versao="4.00">
<ide>
<cUF>35</cUF>
<cNF>00000001</cNF>
<natOp>VENDA DE MERCADORIA</natOp>
<mod>55</mod>
<serie>1</serie>
<nNF>1</nNF>
<dhEmi>2025-09-17T10:00:00-03:00</dhEmi>
<tpNF>1</tpNF>
<idDest>1</idDest>
<cMunFG>3550308</cMunFG>
<tpImp>1</tpImp>
<tpEmis>1</tpEmis>
<cDV>0</cDV>
<tpAmb>2</tpAmb>
<finNFe>1</finNFe>
<indFinal>1</indFinal>
<indPres>1</indPres>
<procEmi>0</procEmi>
<verProc>ERP_MAB_1.0</verProc>
</ide>
<emit>
<CNPJ>99999999000199</CNPJ>
<xNome>EMPRESA DE TESTE LTDA</xNome>
<enderEmit>
<xLgr>Rua Exemplo</xLgr>
<nro>100</nro>
<xBairro>Centro</xBairro>
<cMun>3550308</cMun>
<xMun>SAO PAULO</xMun>
<UF>SP</UF>
<CEP>01000000</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
</enderEmit>
<IE>123456789</IE>
<CRT>1</CRT>
</emit>
<dest>
<CNPJ>12345678000195</CNPJ>
<xNome>CLIENTE FICTICIO LTDA</xNome>
<enderDest>
<xLgr>Avenida Cliente</xLgr>
<nro>200</nro>
<xBairro>Bairro</xBairro>
<cMun>3550308</cMun>
<xMun>SAO PAULO</xMun>
<UF>SP</UF>
<CEP>02000000</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
</enderDest>
<indIEDest>1</indIEDest>
</dest>
<det nItem="1">
<prod>
<cProd>001</cProd>
<cEAN>SEM GTIN</cEAN>
<xProd>PRODUTO 1 COM IBS</xProd>
<NCM>10059010</NCM>
<CFOP>5102</CFOP>
<uCom>UN</uCom>
<qCom>10.0000</qCom>
<vUnCom>50.00</vUnCom>
<vProd>500.00</vProd>
<cEANTrib>SEM GTIN</cEANTrib>
<uTrib>UN</uTrib>
<qTrib>10.0000</qTrib>
<vUnTrib>50.00</vUnTrib>
<indTot>1</indTot>
</prod>
<imposto>
<vTotTrib>100.00</vTotTrib>
<IBS>
<vBC>500.00</vBC>
<pIBS>1.00</pIBS>
<vIBS>5.00</vIBS>
<cIBS>1</cIBS>
</IBS>
<CBS>
<vBC>500.00</vBC>
<pCBS>2.00</pCBS>
<vCBS>10.00</vCBS>
<cCBS>101</cCBS>
</CBS>
</imposto>
</det>
<total>
<ICMSTot>
<vBC>500.00</vBC>
<vICMS>0.00</vICMS>
<vICMSDeson>0.00</vICMSDeson>
<vFCP>0.00</vFCP>
<vBCST>0.00</vBCST>
<vST>0.00</vST>
<vFCPST>0.00</vFCPST>
<vFCPSTRet>0.00</vFCPSTRet>
<vProd>500.00</vProd>
<vFrete>0.00</vFrete>
<vSeg>0.00</vSeg>
<vDesc>0.00</vDesc>
<vII>0.00</vII>
<vIPI>0.00</vIPI>
<vIPIDevol>0.00</vIPIDevol>
<vPIS>0.00</vPIS>
<vCOFINS>0.00</vCOFINS>
<vIBS>5.00</vIBS>
<vCBS>10.00</vCBS>
<vOutro>0.00</vOutro>
<vNF>500.00</vNF>
</ICMSTot>
</total>
<transp>
<modFrete>9</modFrete>
</transp>
<pag>
<detPag>
<tPag>01</tPag>
<vPag>500.00</vPag>
</detPag>
</pag>
<infAdic>
<infCpl>Teste 21 do IBS - CBS</infCpl>
</infAdic>
</infNFe>
</NFe>
quando tento validar da esse retorno
"NFe35250999999999000199550010000000011000000010
XML Contem os seguintes erros:
Falha de Esquema: O elemento pai: 'imposto' não estava esperando o elemento 'IBS'. O elemento esperado é: 'ICMS, IPI, ou ISSQN...'.
Falha de Esquema: O elemento 'vBC' existe mas não pertence ao elemento pai que está contido."
Alguém pode me da um Help onde estou errando
MFLAVIO você eliminou os outros impostos ICMS, IPI, PIS, COFINS, eles continuam, a remoção vai ser gradual
abaixo parte de um xml meu já autorizado.
abaixo parte de um xml meu já autorizado.
<imposto>
<ICMS>
<ICMS00>
<orig>0</orig>
<CST>00</CST>
<modBC>3</modBC>
<vBC>2300.00</vBC>
<pICMS>7.0000</pICMS>
<vICMS>161.00</vICMS>
</ICMS00>
</ICMS>
<IPI>
<cEnq>999</cEnq>
<IPITrib>
<CST>50</CST>
<vBC>2300.00</vBC>
<pIPI>6.5000</pIPI>
<vIPI>149.50</vIPI>
</IPITrib>
</IPI>
<PIS>
<PISAliq>
<CST>01</CST>
<vBC>2139.00</vBC>
<pPIS>1.6500</pPIS>
<vPIS>35.29</vPIS>
</PISAliq>
</PIS>
<COFINS>
<COFINSAliq>
<CST>01</CST>
<vBC>2139.00</vBC>
<pCOFINS>7.6000</pCOFINS>
<vCOFINS>162.56</vCOFINS>
</COFINSAliq>
</COFINS>
<IBSCBS>
<CST>352</CST>
<cClassTrib>000001</cClassTrib>
<gIBSCBS>
<vBC>0.00</vBC>
<gIBSUF>
<pIBSUF>0.0000</pIBSUF>
<gDif>
<pDif>0.0000</pDif>
<vDif>0.00</vDif>
</gDif>
<gDevTrib>
<vDevTrib>0.00</vDevTrib>
</gDevTrib>
<gRed>
<pRedAliq>0.0000</pRedAliq>
<pAliqEfet>0.0000</pAliqEfet>
</gRed>
<vIBSUF>0.00</vIBSUF>
</gIBSUF>
<gIBSMun>
<pIBSMun>0.0000</pIBSMun>
<gDif>
<pDif>0.0000</pDif>
<vDif>0.00</vDif>
</gDif>
<gDevTrib>
<vDevTrib>0.00</vDevTrib>
</gDevTrib>
<gRed>
<pRedAliq>0.0000</pRedAliq>
<pAliqEfet>0.0000</pAliqEfet>
</gRed>
<vIBSMun>0.00</vIBSMun>
</gIBSMun>
<gCBS>
<pCBS>0.0000</pCBS>
<gDif>
<pDif>0.0000</pDif>
<vDif>0.00</vDif>
</gDif>
<gDevTrib>
<vDevTrib>0.00</vDevTrib>
</gDevTrib>
<gRed>
<pRedAliq>0.0000</pRedAliq>
<pAliqEfet>0.0000</pAliqEfet>
</gRed>
<vCBS>0.00</vCBS>
</gCBS>
</gIBSCBS>
</IBSCBS>
</imposto>
Pessoal,
Acompanhem as Lives do pessoal da Unimake, tem ajudado bastante a entender os Bugs da própria SEFAZ que existem ainda, por exemplo se vc envias a tag vibs da erro, vai ser corrigido logo mais, não lembro a data.
Além disso a Unimake esta disponibilizando tabelas em json com ncm formatado mais as clastrib, muito bom.
Acompanhem as Lives do pessoal da Unimake, tem ajudado bastante a entender os Bugs da própria SEFAZ que existem ainda, por exemplo se vc envias a tag vibs da erro, vai ser corrigido logo mais, não lembro a data.
Além disso a Unimake esta disponibilizando tabelas em json com ncm formatado mais as clastrib, muito bom.
Faça seu login para responder