- 10.6. WS de Consulta
10.6.1. ConsultaCT [v3.00] - 10.6. WS de Consulta
« Anterior - 10.6.2. ConsultaStatus [v3.00]
Próximo »
10.6.1. ConsultaCT [v3.00]
Consulta o status de um CT-e
Assinatura
int ConsultaCT(string siglaWS, string siglaUF, int tipoAmbiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out string msgResultado, string chaveCTe, string proxy, string usuario, string senha)
Descrição:
Consulta o status de um CT-e no Web Services onde foi autorizado.
A identificação do WS consultado será informada no parâmetro siglaWS, veja Tabela de siglaWS
Consulta status CT-e
Esta funcionalidade não deve ser utilizada para verificar se o CT-e foi autorizado. Após o envio do Lote/CT-e, o usuário deve utilizar a funcionalidade buscaLote ou buscaCTe que são as funcionalidades adequadas para obter o resultado do processamento do Lote/CT-e.
Parâmetros:
nome | tipo | fluxo | descrição |
---|---|---|---|
siglaWS | string | entrada | informar a sigla do WS de envio, veja Tabela de siglaWS |
siglaUF | string | entrada | informar a sigla da UF |
tipoAmbiente | inteiro | entrada | informar o código do ambiente a ser consultado: 1- produção ou 2-homologação |
nomeCertificado | string | entrada | informar nome do titular do certificado a ser utilizado na assinatura e conexão SSL |
versao | string | entrada | informar a versão do Evento: 3.00 (o valor 2.00 pode ser informado até o fim da vigência da versão 2.00 previsto para 04/12/17). |
msgDados | string | saída | retorna a mensagem XML enviada para o WS |
msgRetWS | string | saída | retorna a mensagem XML de resposta do WS |
msgResultado | string | saída | retorna a literal do resultado da chamada do WS |
chaveCTe | string | entrada | informar a chave de acesso do CT-e que se deseja consultar |
proxy | string | entrada | informar 'http://proxyserver:port' quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo 'http://192.168.15.1:443' |
usuario | string | entrada | informar o usuário para autenticação no proxy, se necessário |
senha | string | entrada | informar a senha de autenticação no proxy, se necessário |
Retorno:
O resultado da chamada da Consulta Status de um CT-e é o código numérico com os seguintes significados:
código | Mensagem | origem | regra |
---|---|---|---|
1 | código do ambiente inválido | DLL | - |
2 | sigla da UF inválida | DLL | - |
3 | a UF não oferece o serviço | DLL | - |
4 | Arquivo com a URL do WS não localizado | DLL | - |
5 | Erro não tratado | DLL | - |
6 | Erro de validação de Schema | DLL | - |
7 | Nenhum Certificado Selecionado | DLL | - |
8 | Nenhum certificado válido foi encontrado com o nome informado | DLL | - |
9 | Erro Inesperado: [Mensagem] | DLL | - |
10 | Erro: Time-out ao chamar o WS | DLL | - |
11 | Erro: exceção da biblioteca criptográfica | DLL | - |
12 | Erro: conexão | DLL | - |
13 | Versao informada é inválida: [versao] é inválida | DLL | - |
108 | Serviço Paralisado Momentaneamente (curto prazo) | WS | B03 |
109 | Serviço Paralisado sem Previsão | WS | B04 |
214 | Rejeição: Tamanho da mensagem excedeu o limite estabelecido | WS | B01 |
215 | Rejeição: Falha no schema XML | WS | D01 |
216 | Rejeição: Chave de Acesso difere da cadastrada | WS | J05 |
217 | Rejeição: CT-e não consta na base de dados da SEFAZ | WS | J04 |
226 | Rejeição: Código da UF do Emitente diverge da UF autorizadora | WS | G002 |
236 | Rejeição: Chave de Acesso com dígito verificador inválido | WS | H03 |
238 | Rejeição: Cabeçalho - Versão do arquivo XML superior a Versão vigente | WS | C05 |
239 | Rejeição: Cabeçalho - Versão do arquivo XML não suportada | WS | C06 |
242 | Rejeição: Elemento cteCabecMsg inexistente no SOAP Header | WS | C01 |
243 | Rejeição: XML Mal Formado | WS | B02 |
252 | Rejeição: Ambiente informado diverge do Ambiente de recebimento | WS | G001 |
280 | Rejeição: Certificado Transmissor inválido | WS | A01 |
281 | Rejeição: Certificado Transmissor Data Validade | WS | A02 |
282 | Rejeição: Certificado Transmissor sem CNPJ | WS | A07 |
283 | Rejeição: Certificado Transmissor - erro Cadeia de Certificação | WS | A03 |
284 | Rejeição: Certificado Transmissor revogado | WS | A05 |
285 | Rejeição: Certificado Transmissor difere ICP-Brasil | WS | A06 |
286 | Rejeição: Certificado Transmissor erro no acesso a LCR | WS | A04 |
402 | Rejeição: XML da área de dados com codificação diferente de UTF-8 | WS | D03 |
404 | Rejeição: Uso de prefixo de namespace não permitido | WS | D02 |
409 | Rejeição: Campo cUF inexistente no elemento cteCabecMsg do SOAP Header | WS | C02 |
410 | Rejeição: UF informada no campo cUF não é atendida pelo WebService | WS | C03 |
411 | Rejeição: Campo versaoDados inexistente no elemento cteCabecMsg do SOAP Header | WS | C04 |
Histórico de atualização:
- Versão inicial.
- 2011-12-16 - Acréscimo do código exemplo em VB 6.0.
- 2013-01-16 - Revisão de texto da siglaWS
- 2013-12-11 - Revisão de texto do parâmetro versao.
- 2017-01-12 - Alteração para suportar a versão 3.00 (CT-e e CT-e OS)
XML:
Exemplo de XML da Consulta o status de um CT-e
<retConsSitCTe versao="1.04" xmlns="http://www.portalfiscal.inf.br/cte"> <tpAmb>2</tpAmb> <verAplic>SP_PL_CTe_104a</verAplic> <cStat>100</cStat> <xMotivo>Autorizado o uso do CT-e</xMotivo> <cUF>35</cUF> <protCTe versao="1.04"> <infProt> <tpAmb>2</tpAmb> <verAplic>SP_PL_CTe_104</verAplic> <chCTe>35110803911545000148570010000001061000001017</chCTe> <dhRecbto>2011-08-26T18:24:22</dhRecbto> <nProt>135110002038337</nProt> <digVal>nBkh9p2OT/dDA3jTw/4DuLfzdZM=</digVal> <cStat>100</cStat> <xMotivo>Autorizado o uso do CT-e</xMotivo> </infProt> </protCTe> </retConsSitCTe>
Importante
O trecho do XML foi formatado para uma melhor visualização, a mensagem original não tem formatação.
Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e sendo desnecessária, pois os browser exibem formatado.
Exemplos de uso:
Visual Basic 6.0
' ' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL ' Dim msgDados As String ' retorna a mensagem XML enviada para o WS Dim siglaUF As String ' string siglaUF Dim msgRetWS As String ' retorna a mensagem XML de resposta do WS Dim msgResultado As String ' retorna a literal do resultado da chamada do WS Dim siglaWS As String ' informar a sigla do WS de envio: ' . sigla da UF, caso a UF tenha aplicação própria (MG, MS, MT, PR, RS e SP). ' . RS, caso a UF seja usuária da SVRS - SEFAZ Virtual do RS (AM, BA, CE, DF, ES, ' GO, MA, RJ, RN, RO, SC, SE, e TO); ' . SP, caso a UF seja usuária da SVSP - SEFAZ Virtual de SP (AP, PE e RR); ' . RS quando desejar acessar a SVC-RS (AP, MT, MS, PE, RR e SP); ' . SP quando desejar acessar a SVC-SP (AM, BA, CE, DF, ES, GO, MA, MG, PA, RJ, ' RN, RO, RS, SC, SE, e TO); Dim nomeCertificado As String ' informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL. Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS" Dim resultado As Long ' retorna o código do resultado da chamada do WS ' ' importante: indicar aqui assunto do certificado digital válido, este da associacao trata-se apenas de um exemplo para testes ' Dim chaveCTe As String ' informar a chave de acesso do CT-e que se deseja consultar ' ' As variáveis do proxy devem ser informadas se necessário ' ' proxy deve ser informado com o endereço da url : porta, ex: 192.168.15.1:443 ' Dim proxy As String ' informar 'http://proxyserver:port' quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo 'http://192.168.15.1:443' Dim usuario As String ' informar o usuário para autenticação no proxy, se necessário Dim senha As String ' informar a senha de autenticação no proxy, se necessário ' Dim tipoAmbiente As Long ' informar o código do ambiente a ser consultado: 1- produção ou 2-homologação Dim versao As String ' informar a versão da mensagem do WS 1.04 / 1.03 ' proxy = "" ' informar 'http://proxyserver:port' quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo 'http://192.168.15.1:443' usuario = "" ' informar o usuário para autenticação no proxy, se necessário senha = "" ' informar a senha de autenticação no proxy, se necessário msgDados = "" ' retorna a mensagem XML enviada para o WS msgRetWS = "" ' retorna a mensagem XML de resposta do WS msgResultado = "" ' retorna a literal do resultado da chamada do WS nomeCertificado = "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS" ' informar com o assunto da certificado digital ' Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS" siglaWS = "RS" ' informar a sigla do WS de envio siglaUF = "RS" ' informar a sigla da UF de envio versao = "1.04" ' informar a versão da mensagem do WS 1.04 ou 1.03 chaveCTe = "35080600000000000000570000000000010000000000" ' informar a chave para consulta do CTe tipoAmbiente = 2 ' informar o tipo de ambiente a ser consultado: 1- produção ou 2-homologação resultado = 0 ' retorna o código do resultado da chamada do WS ' ' referenciando a DLL em late binding ' não é necessário fazer o reference da DLL ' o intelisense não funciona ' Dim objCTeUtil As Object Set objCTeUtil = CreateObject("CTe_Util.Util") ' ' ' ' Screen.MousePointer = vbHourglass ' ampulheta ' ' resultado = objCTeUtil.ConsultaCT(siglaWS, siglaUF, tipoAmbiente, nomeCertificado, versao, msgDados, msgRetWS, msgResultado, chaveCTe, proxy, usuario, senha) ' ' Screen.MousePointer = vbDefault ' normal If resultado = 100 Then ' ' grava o retConsSitCTe ' nomeArquivo = "retConsSitCTe.xml" Open nomeArquivo For Output As #1 Print #1, msgRetWS Close #1 ' ' MsgBox msgResultado + Chr(13) + Chr(13) + msgRetWS , "Atenção: Consulta Status do CT-e" Else MsgBox resultado + Chr(13) + Chr(13) + msgResultado , "Atenção: Consulta Status do CT-e" End If ' ' libera classe ' Set objCTeUtil = Nothing
- 10.6.1. ConsultaCT [v3.00]
10.6. WS de Consulta - « Anterior
10.6. WS de Consulta - Próximo »
10.6.2. ConsultaStatus [v3.00]