FONTE NFE VB.NET
Entrei no portal nacional da nfe, e somente Mato Grosso tem os webservices da versão 4.0
Boa noite galera.
Alguém poderia ajudar com uma dica como eu faço para incluir a sub tag obsCont [Ô]TAG de grupo do campo de uso livre do contribuinte[Ô] dentro do XML da danfe.
Abaixo tenho a situação ipotetica.
-<infAdic>
<infCpl>-A VISTA 43 V65008 MEGA USADOS Vlr.tot.Aprox.Trib.Fed.Est.Mun.: R$ 6963,85 (32,39 %) - FONTE: IBPT. 5oi7eW Veiculo Vendido
sem Reserva de Dominio e sem Alienacao Fiduciaria Vlr.tot.Aprox.Trib.Fed.Est.Mun.: R$ 6963,85 (32,39 %) - FONTE: IBPT. 5oi7eW BASE
DE CALCULO REDUZIDO EMITIDO NOS TERMOS DO ARTIGO 53. ITEM 16 TABELA I ANEXO II DO DEC.33118/91 DO RICMS
</infCpl>
-<obsCont xCampo=[Ô]destEmail[Ô]>
<xTexto>email@automoveis.com.br</xTexto>
</obsCont>
-<obsCont xCampo=[Ô]tipoVei[Ô]>
<xTexto>U</xTexto>
</obsCont>
-<obsCont xCampo=[Ô]RENAVAM[Ô]>
<xTexto>0591907143</xTexto>
</obsCont>
</infAdic>
Agradeço a ajuda.
Alguém poderia ajudar com uma dica como eu faço para incluir a sub tag obsCont [Ô]TAG de grupo do campo de uso livre do contribuinte[Ô] dentro do XML da danfe.
Abaixo tenho a situação ipotetica.
-<infAdic>
<infCpl>-A VISTA 43 V65008 MEGA USADOS Vlr.tot.Aprox.Trib.Fed.Est.Mun.: R$ 6963,85 (32,39 %) - FONTE: IBPT. 5oi7eW Veiculo Vendido
sem Reserva de Dominio e sem Alienacao Fiduciaria Vlr.tot.Aprox.Trib.Fed.Est.Mun.: R$ 6963,85 (32,39 %) - FONTE: IBPT. 5oi7eW BASE
DE CALCULO REDUZIDO EMITIDO NOS TERMOS DO ARTIGO 53. ITEM 16 TABELA I ANEXO II DO DEC.33118/91 DO RICMS
</infCpl>
-<obsCont xCampo=[Ô]destEmail[Ô]>
<xTexto>email@automoveis.com.br</xTexto>
</obsCont>
-<obsCont xCampo=[Ô]tipoVei[Ô]>
<xTexto>U</xTexto>
</obsCont>
-<obsCont xCampo=[Ô]RENAVAM[Ô]>
<xTexto>0591907143</xTexto>
</obsCont>
</infAdic>
Agradeço a ajuda.
Pessoal uma pergunta em alguns casos eu gero NF-e a partir de cupom Fiscal de ECF. até ai tudo bem tudo funcionando
uso da seguinte forma
a questão e que agora mudamos o ECF para SAT o que devo alterar ? só u numero serial do ecf que devo mudar para o numero serial do SAT?
uso da seguinte forma
Dim NFre As NFref
NFre = New NFref
Dim refEcf As refECF
refEcf = New refECF
NFre.refECF.[mod] = [Ô]2B[Ô]
NFre.refECF.nECF = [Ô]326[Ô]
NFre.refECF.nCOO = [Ô]1220[Ô]
Vnfe.infNFE.Ide.finNFe = [Ô]1[Ô] [ô]emito apartir de Cupom Fiscal
Vnfe.infNFE.Ide.NFRef.Add(NFre)
a questão e que agora mudamos o ECF para SAT o que devo alterar ? só u numero serial do ecf que devo mudar para o numero serial do SAT?
O SAT ainda não esta integrado com a NFE. Inclusive se tiver que fazer uma Nfe de devolução, caso ultrapasse os 30 minutos para o cancelamento de um sat, vc deve fazer no cfop de outras entradas, porque se for cfop de devolução a nfe ira exigir a chave e não vai reconhecer a de sat.
Citação::
O SAT ainda não esta integrado com a NFE. Inclusive se tiver que fazer uma Nfe de devolução, caso ultrapasse os 30 minutos para o cancelamento de um sat, vc deve fazer no cfop de outras entradas, porque se for cfop de devolução a nfe ira exigir a chave e não vai reconhecer a de sat.
que coisa, e por isso que pagamos os impostos mais caros do mundo.
Aproveitando o TOPIC. alguém já esta atualizando a NFe 4.0?
Ola pessoal, eu baixe esta funcao aqui no vbmania neste mesmo topico.
Funciona muito bem, gostaria de saber para o envio com o novo layout, o que muda nesta funcao.
Pois agora temos que usar o protocolo tsl no lugar do soap e nao precisa mais do cabecalho.
Nao sei se ja tem alguem trabalhando para modificar este projeto do 3.10 para o 4.
Mas isto ajudou demais, sendo que não sou um expert em VB.net como a maioria aqui.
Obrigado.
Public Function EnviaLote310(ByVal cArquivoEnviar_xml_texto As String, Optional ByVal cSerieCertificado As String = [Ô][Ô], Optional ByRef lSucesso As Boolean = False) As RetEnvio
[ô]System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 [ô] .Tls11 [ô] | System.Net.SecurityProtocolType.Tls12;
[ô]var req = (HttpWebRequest)WebRequest.Create(url);
[ô]req.Method = [Ô]GET[Ô];
[ô]...
[ô]Agora você verá TLS 1.2 no Fiddler.
[ô]Resposta na Web do TLS 1.2
[ô]NOTA: é bom incluir TLS 1.0 juntamente com TLS1.1 e TLS1.2 em muitos casos, uma vez que o cliente irá negociar com o servidor e receber o protocolo mais alto que o servidor fornece. Enquanto o servidor fornecer TLS 1.1 ou TLS 1.2, o cliente usará o TLS 1.1 ou 1.2.
Dim strRetorno As XmlElement
Dim XMLDocumentoEnviarReceita = New XmlDocument()
XMLDocumentoEnviarReceita.Load(cArquivoEnviar_xml_texto) [ô]Carrega o arquivo XML.
Dim CERT As X509Certificate2
CERT = SelecionarCertificado(cSerieCertificado)
Try
Dim wsMsg As New AutorizacaoNFe.NfeAutorizacao(S_Url.UrlNFeAutorizacao310)
Dim cab As New AutorizacaoNFe.nfeCabecMsg
[ô]UF E VERSÃO DO CABEÇALHO
cab.cUF = S_Url.CodigoUF
cab.versaoDados = VersaoAtualNfe
Dim Notas As String
[ô]CABEÇALHO USADA PARA ENVIO DE LOTE
[ô]wsMsg = New NFeAutorizacao.NfeAutorizacao(S_Url.UrlNFeAutorizacao310)
wsMsg.nfeCabecMsgValue = cab
wsMsg.Timeout = 100000
wsMsg.ClientCertificates.Add(CERT)
wsMsg.SoapVersion = SoapProtocolVersion.Soap12
[ô]wsMsg.SoapVersion = SoapProtocolVersion.Default
[ô]wsMsg.SoapVersion = SoapProtocolVersion.Default
Notas = XMLDocumentoEnviarReceita.OuterXml
[ô]RETORNO DA SEFAZ
strRetorno = wsMsg.nfeAutorizacaoLote(XMLDocumentoEnviarReceita)
[ô]DESMEMBRA RETORNO XML
Dim StrRetNota As RetEnvio = 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 = [Ô]tMed[Ô] Or outerNode.Name = [Ô]tMed[Ô]) Then
StrRetNota.tMed = 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
[ô] Dim verAplic As String
[ô] Dim cStat As String
[ô] Dim xMotivo As String
[ô] Dim cUF As String
[ô] Dim nRec As String
[ô] Dim dhRecbto As String
[ô] Dim tMed As String
[ô] Dim XmlRecibo As String
lSucesso = True
Next
Next
Return StrRetNota
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, [Ô][Ô])
lSucesso = False
Return Nothing
End Try
End Function
Funciona muito bem, gostaria de saber para o envio com o novo layout, o que muda nesta funcao.
Pois agora temos que usar o protocolo tsl no lugar do soap e nao precisa mais do cabecalho.
Nao sei se ja tem alguem trabalhando para modificar este projeto do 3.10 para o 4.
Mas isto ajudou demais, sendo que não sou um expert em VB.net como a maioria aqui.
Obrigado.
Public Function EnviaLote310(ByVal cArquivoEnviar_xml_texto As String, Optional ByVal cSerieCertificado As String = [Ô][Ô], Optional ByRef lSucesso As Boolean = False) As RetEnvio
[ô]System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 [ô] .Tls11 [ô] | System.Net.SecurityProtocolType.Tls12;
[ô]var req = (HttpWebRequest)WebRequest.Create(url);
[ô]req.Method = [Ô]GET[Ô];
[ô]...
[ô]Agora você verá TLS 1.2 no Fiddler.
[ô]Resposta na Web do TLS 1.2
[ô]NOTA: é bom incluir TLS 1.0 juntamente com TLS1.1 e TLS1.2 em muitos casos, uma vez que o cliente irá negociar com o servidor e receber o protocolo mais alto que o servidor fornece. Enquanto o servidor fornecer TLS 1.1 ou TLS 1.2, o cliente usará o TLS 1.1 ou 1.2.
Dim strRetorno As XmlElement
Dim XMLDocumentoEnviarReceita = New XmlDocument()
XMLDocumentoEnviarReceita.Load(cArquivoEnviar_xml_texto) [ô]Carrega o arquivo XML.
Dim CERT As X509Certificate2
CERT = SelecionarCertificado(cSerieCertificado)
Try
Dim wsMsg As New AutorizacaoNFe.NfeAutorizacao(S_Url.UrlNFeAutorizacao310)
Dim cab As New AutorizacaoNFe.nfeCabecMsg
[ô]UF E VERSÃO DO CABEÇALHO
cab.cUF = S_Url.CodigoUF
cab.versaoDados = VersaoAtualNfe
Dim Notas As String
[ô]CABEÇALHO USADA PARA ENVIO DE LOTE
[ô]wsMsg = New NFeAutorizacao.NfeAutorizacao(S_Url.UrlNFeAutorizacao310)
wsMsg.nfeCabecMsgValue = cab
wsMsg.Timeout = 100000
wsMsg.ClientCertificates.Add(CERT)
wsMsg.SoapVersion = SoapProtocolVersion.Soap12
[ô]wsMsg.SoapVersion = SoapProtocolVersion.Default
[ô]wsMsg.SoapVersion = SoapProtocolVersion.Default
Notas = XMLDocumentoEnviarReceita.OuterXml
[ô]RETORNO DA SEFAZ
strRetorno = wsMsg.nfeAutorizacaoLote(XMLDocumentoEnviarReceita)
[ô]DESMEMBRA RETORNO XML
Dim StrRetNota As RetEnvio = 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 = [Ô]tMed[Ô] Or outerNode.Name = [Ô]tMed[Ô]) Then
StrRetNota.tMed = 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
[ô] Dim verAplic As String
[ô] Dim cStat As String
[ô] Dim xMotivo As String
[ô] Dim cUF As String
[ô] Dim nRec As String
[ô] Dim dhRecbto As String
[ô] Dim tMed As String
[ô] Dim XmlRecibo As String
lSucesso = True
Next
Next
Return StrRetNota
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, [Ô][Ô])
lSucesso = False
Return Nothing
End Try
End Function
Angelo eu também vou começar a 4.0 e tenho muitas duvidas, o manual do Sefaz como sempre deixa mais em Duvida ainda
Citação::
Angelo eu também vou começar a 4.0 e tenho muitas duvidas, o manual do Sefaz como sempre deixa mais em Duvida ainda
vou começas aqui e o que for conseguindo vou postar aqui então, pois usei no passado um exemplo postado aqui, e foi o que me salvou.
Citação::
:
Angelo eu também vou começar a 4.0 e tenho muitas duvidas, o manual do Sefaz como sempre deixa mais em Duvida ainda
vou começas aqui e o que for conseguindo vou postar aqui então, pois usei no passado um exemplo postado aqui, e foi o que me salvou.
Muito bom
assim vamos ajudando uns aos outros
ANGELOSCARPIN
voce conseguiu testar este seu exemplo e ficou correto com o novo formato 4.0 ?
voce conseguiu testar este seu exemplo e ficou correto com o novo formato 4.0 ?
Faça seu login para responder