CTeConsultar

A função CTeConsultar é usada para consultar a situação de um CT-e na SEFAZ.

Tipo de Retorno

Integer

Pacote

A função CTeConsultar está definida no pacote CTeConsultar.pkg.

Sintaxe

Move (CTeConsultar(&{vtCTeConsultar_Parametros})) to {iRetorno}

Onde:

  • &{vtCTeConsultar_Parametros} é uma variável do tipo tCTeConsultar_Parametros que deve ser passada por referência. Cada campo desta variável corresponde a um parâmetro que será enviado para a função ou um retorno que será devolvido por ela. Abaixo está a definição dos campos que estão dentro da estrutura:
// Parâmetros de entrada
String  sSiglaWS   // informar a sigla do WS que será consultado. Veja detalhes aqui
String  sSiglaUF   // informar a sigla da UF
Integer iAmbiente  // informar o código do ambiente a ser consultado:
                   // 1. produção ou 2. homologação
String  sVersao    // informar a versão da mensagem do WS. Caso não seja informado, será utilizado
                   // como padrão "3.00" para versões anteriores a 2024/01 e a partir da versão 2024/01 
                   // o padrão passa a ser "4.00". 
String  sChaveCTe  // informar a chave de acesso do CT-e que se 
                   // deseja consultar
String  sProxy     // 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’
String  sUsuario   // informar o usuário para autenticação no proxy, se
                   // necessário
String  sSenha     // informar a senha de autenticação no proxy, se
                   // necessário
Boolean bExibeErro // indica se a função deve exibir os erros que
                   // encontrar

// Parâmetros de entrada/saída

String sRetNomeCertificado // informar a string que representa o
// certificado digital que será usado na
// consulta. Se não for informado, uma tela
// será exibida para escolha do certificado.
// O certificado escolhido será devolvido
// nesta variável

// Parâmetros de saída

String sRetMsgDados // retorna a mensagem XML enviada para o WS
// (informação útil para depuração)
String sRetMsgRetWS // retorna a mensagem XML de resposta do WS
// (informação útil para depuração)
String sRetMsgResultado // retorna o literal do resultado da chamada do WS

  • {iRetorno} é o retorno da chamada da função. O retorno será o código cStat devolvido pela SEFAZ ou um dos seguintes códigos de erro:
    • -3 – Nenhum certificado digital válido selecionado para a consulta.
    • -2 – CTeLibrary.dll não está corretamente instalada.
    • -1 – CTeLibrary.dll não está corretamente instalada.
    • 1 – Código do ambiente inválido.
    • 2 – Sigla da UF inválida.
    • 3 – A UF não oferece o serviço.
    • 4 – Arquivo com a URL do WS não localizado.
    • 5 – Erro não tratado.
    • 6 – Erro de validação de Schema.
    • 7 – Nenhum Certificado Selecionado.
    • 8 – Nenhum certificado válido foi encontrado com o nome informado.
    • 9 – Erro Inesperado: [Mensagem].
    • 10 – Erro: Time-out ao chamar o WS.
    • 11 – Erro: exceção da biblioteca criptográfica.
    • 12 – Erro: conexão.
    • 13 – Versao informada é inválida: [versao] é inválida.
    • 100 – Autorizado o uso do CT-e.
    • 108 – Serviço Paralisado Momentaneamente (curto prazo).
    • 109 – Serviço Paralisado sem Previsão.
    • 214 – Rejeição: Tamanho da mensagem excedeu o limite estabelecido.
    • 215 – Rejeição: Falha no schema XML.
    • 216 – Rejeição: Chave de Acesso difere da cadastrada.
    • 217 – Rejeição: CT-e não consta na base de dados da SEFAZ.
    • 226 – Rejeição: Código da UF do Emitente diverge da UF autorizadora.
    • 236 – Rejeição: Chave de Acesso com dígito verificador inválido.
    • 238 – Rejeição: Cabeçalho – Versão do arquivo XML superior a Versão vigente.
    • 239 – Rejeição: Cabeçalho – Versão do arquivo XML não suportada.
    • 242 – Rejeição: Elemento cteCabecMsg inexistente no SOAP Header.
    • 243 – Rejeição: XML Mal Formado.
    • 252 – Rejeição: Ambiente informado diverge do Ambiente de recebimento.
    • 280 – Rejeição: Certificado Transmissor inválido.
    • 281 – Rejeição: Certificado Transmissor Data Validade.
    • 282 – Rejeição: Certificado Transmissor sem CNPJ.
    • 283 – Rejeição: Certificado Transmissor – erro Cadeia de Certificação.
    • 284 – Rejeição: Certificado Transmissor revogado.
    • 285 – Rejeição: Certificado Transmissor difere ICP-Brasil.
    • 286 – Rejeição: Certificado Transmissor erro no acesso a LCR.
    • 402 – Rejeição: XML da área de dados com codificação diferente de UTF-8.
    • 404 – Rejeição: Uso de prefixo de namespace não permitido.
    • 409 – Rejeição: Campo cUF inexistente no elemento cteCabecMsg do SOAP Header.
    • 410 – Rejeição: UF informada no campo cUF não é atendida pelo WebService.
    • 411 – Rejeição: Campo versaoDados inexistente no elemento cteCabecMsg do SOAP Header.

Exemplo

Procedure TesteConsultarCTe String sChave
    Integer iRetorno
    tCTeConsultar_Parametros vtParametros

Move True to vtParametros.bExibeErro
Move 1 to vtParametros.iAmbiente
Move “SP” to vtParametros.sSiglaWS
Move “SP” to vtParametros.sSiglaUF
Move sChave to vtParametros.sChaveCTe

Move (CTeConsultar(&vtParametros)) to iRetorno

If (iRetorno = 100) Send Info_Box “CT-e está autorizado na SEFAZ!”
End_Procedure

Observações

  • A função CTeConsultar está disponível a partir da versão 2013/02 da CTeLibrary.
  • Esta função também está disponível na edição Ready-Only.
  • Esta função não deve ser utilizada para verificar se o CT-e enviado foi autorizado. Após o envio do CT-e, o desenvolvedor deve utilizar a função CTeBuscar para verificar o resultado do processamento do CT-e enviado. A função CTeConsultar é indicada para verificar a situação de CT-e’s recebidos de terceiros.