Pessoal, preciso de ajuda urgente.
Estou terminando a implementação da NFSe de Vitoria, e está voltado como rejeitada com a seguinte mensagem :
<Codigo>E183</Codigo>
<Mensagem>A mensagem XML do cabeçalho do arquivo enviado está fora do padrão especificado. There is an error in XML document (1, 40).</Mensagem>
<Correcao>Consulte o Manual da NFS-e para saber quais são as versões de XML Schema suportadas pelo sistema</Correcao>
Eu já pesquisei e parece não localizei onde relacionar o cabeçalho:
<?xml version='1.0' encoding='UTF-8'?><cabecalho xmlns='http://www.abrasf.org.br/nfse.xsd' versao='2.01'><versaoDados>2.01</versaoDados></cabecalho>
Veja o XML:
<?xml version="1.0" encoding="utf-8"?>
<EnviarLoteRpsEnvio xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.abrasf.org.br/nfse.xsd">
<LoteRps Id="Lote" versao="2.01">
Junio Cesarino
luizvaz
Fevereiro 8, 2018, 9:12pm
2
Para Vitória e Vila Velha, não se usa cabeçalho.
O endereço do webservice é esse:
https://issonline.vilavelha.es.gov.br/SistemaIss/WebService/NotaFiscalService.asmx
Documentação do Método GerarNfse:
https://issonline.vilavelha.es.gov.br/SistemaIss/WebService/NotaFiscalService.asmx?op=GerarNfse
SOAP:
POST /SistemaIss/WebService/NotaFiscalService.asmx HTTP/1.1
Host: issonline.vilavelha.es.gov.br
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.abrasf.org.br/nfse.xsd/GerarNfse"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GerarNfse xmlns="http://www.abrasf.org.br/nfse.xsd">
<mensagemXML>{0}</mensagemXML>
</GerarNfse>
</soap:Body>
</soap:Envelope>
Abaixo exemplo do NF pelo GerarNfseEnvio:
01-GerarNfseEnvio.xml (5,6 KB)
Lembre-se de converter seu XML para string.
Bom dia Luiz,
continuo com o mesmo problema, deve ser algum detalhe, veja o meu codigo:
VitoriaHomologacao.NotaFiscalService nfe = new VitoriaHomologacao.NotaFiscalService();
string vNFeDadosMsg = this.XmlToString(this.vXmlNfeDadosMsg);
nfe.ClientCertificates.Add(oCertificado);
this.vStrXmlRetorno = (string)nfe.GerarNfse(vNFeDadosMsg);
e retornar o seginte erro :
E183
A mensagem XML do cabeçalho do arquivo enviado está fora do padrão especificado. There is an error in XML document (1, 237).
Consulte o Manual da NFS-e para saber quais são as versões de XML Schema suportadas pelo sistema
e o Xml usei o seu.
luizvaz
Fevereiro 16, 2018, 12:44am
4
Talvez seja isso, Eu usei Web References para mapear o WSDL de Vitória, ao invés de usar o novo Service References .
Basta clicar em Referências do seu projeto e em Adicionar Referência de Serviço… :
Depois clique em avançado na tela abaixo:
E clique em Adicionar Referência Web na tela abaixo:
Informe a URL na tela abaixo e clique no ícone da seta para processar:
https://issonline.vilavelha.es.gov.br/SistemaIss/WebService/NotaFiscalService.asmx?wsdl
OBS.: Você vai precisar de um certificado digital para poder acessar o WSDL.
Dessa forma você pode chamar o método assim:
es_vilavelha ws1 = new es_vilavelha();
ws1.PreAuthenticate = true;
ws1.ClientCertificates.Add(oCertificado);
string vNFeDadosMsg = this.XmlToString(this.vXmlNfeDadosMsg);
string s = ws1.GerarNfse(vNFeDadosMsg):
XDocument doc = XDocument.Parse(s);
var e = from AnyElement in doc.Descendants() where (AnyElement.Name.LocalName == "MensagemRetorno") select AnyElement; //Ignora Namescape
foreach (XElement c in e)
{
string Codigo = c.Element(XName.Get("Codigo", "http://www.abrasf.org.br/nfse.xsd")).Value;
string Descricao = c.Element(XName.Get("Mensagem", "http://www.abrasf.org.br/nfse.xsd")).Value;
string Correcao = c.Element(XName.Get("Correcao", "http://www.abrasf.org.br/nfse.xsd")).Value;
break;
}
Mas caso você já tenha usado esse método de importação, o erro pode estar na definição:
VitoriaHomologacao.NotaFiscalService nfe = new VitoriaHomologacao.NotaFiscalService();
Mude para:
VitoriaHomologacao nfe = new VitoriaHomologacao();
string vNFeDadosMsg = this.XmlToString(this.vXmlNfeDadosMsg);
nfe.ClientCertificates.Add(oCertificado);
this.vStrXmlRetorno = nfe.GerarNfse(vNFeDadosMsg);
Obrigado Luiz, Deu certinho!!! Valeu mesmo.