FONTE NFE VB.NET

MITSUEDA2025 02/09/2025 09:47:31
#505054
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.
MITSUEDA2025 02/09/2025 12:28:34
#505056
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?
SANDRAMACHADO 02/09/2025 16:41:01
#505057
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.'


RICABU 03/09/2025 14:31:50
#505062
MITSUEDA2025,

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
MITSUEDA2025 03/09/2025 19:52:53
#505064
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
MFLAVIO 17/09/2025 14:46:16
#505072
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)
 <?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
3SLUIS 18/09/2025 10:01:56
#505074
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.

  <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>
NILSONTRES 18/09/2025 11:07:28
#505075
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.
Página 229 de 229 [2288 registro(s)]
Faça seu login para responder