NFSe Vitoria

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

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.

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…:

image

Depois clique em avançado na tela abaixo:
image

E clique em Adicionar Referência Web na tela abaixo:
image

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

image

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.