10. Web Service do CT-e [v3.00]
10.4. InutilizaNroCT [v3.00]
10.3. Envia CT-e OS [v3.00]
« Anterior
10.5. WS de Consulta
Próximo »

10.4. InutilizaNroCT [v3.00]

Inutilização de Numeração de CT-e

Assinatura

int InutilizaNroCT(string siglaWS, string siglaUF, int tipoAmbiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out string msgResultado, out string procInut, string cUF, string ano, string CNPJ, string modelo, string serie, string nroCTeInicial, string nroCTeFinal, string justificativa, string proxy, string usuario, string senha, string licenca)

Descrição:

Funcionalidade para Inutilização de numeração de CT-e.

Esta funcionalidade serve para inutilizar um número ou faixa de numeração de CT-e que não foi utilizado.

As causas mais comuns de não utilização de número são a quebra de sequência da numeração em razão da rejeição do CT-e ou perda de conhecimentos de transporte eletrônicos por alguma falha do ambiente de recepção ou de comunicação ou até mesmo a falha no uso de números da aplicação de faturamento.

Os parâmetros da Inutilização de Numeração são:

Condições de Inutilização

  • O número de CT-e não pode ter sido utilizado, a providência correta para um CT-e autorizado é o cancelamento de CT-e;
  • A inutilização de faixa é limitada a 2.000 números por pedido, caso a faixa de inutilização seja superior será necessário dividir o pedido em diversos pedidos;
  • Uma faixa de inutilização não pode conter números já inutilizados ou utilizados.

Prazo para inutilização

Até o 10º dia do mês subsequente da quebra da numeração.


Dica

Os pedidos de inutilização de numeração homologados podem ser consultados no Portal Nacional.

Algumas SEFAZ também oferecem a consulta Web dos pedidos de inutilização homologados.

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 desejado: 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 do pedido de inutilização criado pela DLL que foi enviado ao 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.
procInut string saída retorna o XML do procInutCTe que é composto pelo pedido de inutilização da numeração de CT-e e respectivo do protocolo da homologação da inutilização da numeração do CT-e.
O emissor deve manter o arquivo deste XML.
cUF string entrada informar o código da UF (Tabela IBGE) de localização do emissor, a informação da sigla da UF vai resultar em falha de preenchimento da mensagem (Falha de Schema).
ano string entrada informar o ano, considerar o ano em que tenha ocorrido a quebrada da sequência, se o problema ocorreu em dezembro/2009, mesmo que a inutilização seja solicitada em 2010, o ano deve ser 2009.
CNPJ string entrada informar o CNPJ do emissor.
modelo string entrada informar o modelo do documento fiscal, informar 57 (CT-e) ou 67 (CT-e OS).
serie string entrada informar a série, a informação da serie com zeros não significativos provoca Falha de Schema, assim informe 1 ao invés de 001.
nroCTeInicial string entrada informar o número do CT-e inicial a ser inutilizado, a informação do número com zeros não significativos provoca Falha de Schema, assim informe 1 ao invés de 000000001. No caso de inutilização de um único número, o número inicial e final devem ser iguais.
nroCTeFinal string entrada informar o número do CT-e final a ser inutilizado, a informação do número com zeros não significativos provoca Falha de Schema, assim informe 1 ao invés de 000000001.
justificativa string entrada informar a justificativa de inutilização com pelo menos 15 caracteres.
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.
licenca string entrada informar a chave da licença de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as condições de uso.

Retorno:

O resultado da chamada do InutilizaNroCT é um 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 de abertura/tratamento Arquivo ws.xml 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 no acesso ao certificado digital: [Mensagem] DLL -
10 Erro: Time-out ao chamar o WS DLL -
11 Erro: exceção da biblioteca criptográfica DLL -
12 Erro: conectividade DLL -
13 Aplicação não licenciada DLL -
14 Erro: Problema ao acessar o certificado digital: [exceção] DLL -
15 Certificado digital inexistente para ,nome, DLL -
16 XML mal formado + exceção DLL -
17 A tag de assinatura [RefUri] inexiste DLL -
18 A tag de assinatura [RefUri] não é unica DLL -
19 Erro Ao assinar o documento - ID deve ser string [RefUri(Atributo)] DLL -
20 Erro: Ao assinar o documento - [exceção] DLL -
21 Erro: O ano deve ter 2 posições DLL -
22 Erro: CNPJ informado inválido DLL -
23 Erro: Modelo inválido diferente de 57 DLL -
24 Erro: Serie inválida DLL -
25 Erro: Número inicial da faixa inválido DLL -
26 Erro: Número Final da faixa inválido DLL -
27 Erro: Número Final menor que número inicial da faixa DLL -
28 Erro: A justificativa deve ter pelo menos 15 posições DLL -
29 Erro: O nome do titular do certificado deve ser informado DLL -
30 Erro: O CNPJ informado tem tamanho diferente de 14 : [CNPJ] DLL -
31 Erro: A licença informada tem tamanho diferente de 128 - [ chave informada] DLL -
32 Erro: Número inicial [número] inválido - zeros a esquerda 2009/01/28 DLL -
33 Erro: Número final [número] inválido - zeros a esquerda 2009/01/28 DLL -
34 Erro: Versao informada é inválida - versao 2009/09/01 DLL -
102 Inutilização de número homologado WS -
108 Serviço Paralisado Momentaneamente (curto prazo) WS B03
109 Serviço Paralisado sem Previsão WS B04
201 Rejeição: O numero máximo de numeração de CT-e a inutilizar ultrapassou o limite WS I04
203 Rejeição: Emissor não habilitado para emissão do CT-e WS G062
213 Rejeição: CNPJ-Base do Emitente difere do CNPJ-Base do Certificado Digital WS F03
214 Rejeição: Tamanho da mensagem excedeu o limite estabelecido WS B01
215 Rejeição: Falha no schema XML WS D01
224 Rejeição: A faixa inicial é maior que a faixa final WS I03
227 Rejeição: Erro na composição do Campo ID WS G005
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
240 Rejeição: Cancelamento/Inutilização - Irregularidade Fiscal do Emitente WS H05
241 Rejeição: Um número da faixa já foi utilizado WS I08
242 Rejeição: Elemento cteCabecMsg inexistente no SOAP Header WS C01
243 Rejeição: XML Mal Formado WS B02
244 Rejeição: CNPJ do Certificado Digital difere do CNPJ da Matriz e do CNPJ do Emitente WS F04
250 Rejeição: UF diverge da UF autorizadora WS I02
252 Rejeição: Ambiente informado diverge do Ambiente de recebimento WS G001
256 Rejeição: Um número de CT-e da faixa já está inutilizado na Base de dados da SEFAZ WS I07
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
290 Rejeição: Certificado Assinatura inválido WS E01
291 Rejeição: Certificado Assinatura Data Validade WS E02
292 Rejeição: Certificado Assinatura sem CNPJ WS E03
293 Rejeição: Certificado Assinatura - erro Cadeia de Certificação WS E04
294 Rejeição: Certificado Assinatura revogado WS E06
295 Rejeição: Certificado Assinatura difere ICP-Brasil WS E07
296 Rejeição: Certificado Assinatura erro no acesso a LCR WS E05
297 Rejeição: Assinatura difere do calculado WS F02
298 Rejeição: Assinatura difere do padrão do Projeto WS F01
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
471 Rejeição: Ano de inutilização não pode ser superior ao Ano atual WS I02a
472 Rejeição: Ano de inutilização não pode ser inferior a 2008 WS I02b

Histórico de atualização:

Mensagens XML - versão 1.04:


Exemplo de Mensagem de Pedido de Inutilização

<?xml version="1.0" encoding="UTF-8"?>
<inutCTe xmlns="http://www.portalfiscal.inf.br/cte" versao="1.04">
    <infInut Id="ID310000000000019157000000001234000001234">
        <tpAmb>2</tpAmb>
        <xServ>INUTILIZAR</xServ>
        <cUF>31</cUF>
        <ano>13</ano>
        <CNPJ>00000000000191</CNPJ>
        <mod>57</mod>
        <serie>0</serie>
        <nCTIni>1234</nCTIni>
        <nCTFin>1234</nCTFin>
        <xJust>TESTE DE INUTILIZACAO</xJust>
    </infInut>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
       (...)
    </Signature>
</inutCTe>

Exemplo de Mensagem de Retorno do WS de pedido homologado

<retInutCTe xmlns="http://www.portalfiscal.inf.br/cte" versao="1.04">
    <infInut Id="ID131130000863123">
        <tpAmb>2</tpAmb>
        <verAplic>0_2_06</verAplic>
        <cStat>102</cStat>
        <xMotivo>Inutilizacao de numero homologado</xMotivo>
        <cUF>31</cUF>
        <ano>13</ano>
        <CNPJ>00000000000191</CNPJ>
        <mod>57</mod>
        <serie>0</serie>
        <nCTIni>1234</nCTIni>
        <nCTFin>1234</nCTFin>
        <dhRecbto>2013-06-20T14:10:43</dhRecbto>
        <nProt>131130000863123</nProt>
    </infInut>
</retInutCTe>

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 msgRetWS As String  ' retorna a mensagem XML de resposta do WS
Dim msgResultado As String  ' retorna o resultado da chamada da funcionalidade, se o WS acessado com sucesso será devolvido o cStat da resposta do WS
Dim siglaUF As String   ' informar a sigla da UF do emissor
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 nome do titular do certificado a ser utilizado na assinatura e conexão SSL
'
'  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 licenca As String   ' informar a chave da licença de uso, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as [condições de uso](http://www.flexdocs.com.br/cte_util.htm "condições de uso")
Dim tipoAmbiente As Long    ' informar o código do ambiente desejado: 1- produção ou 2-homologação
'
' define as variáveis que passam/recebem informações importantes
'
Dim cUF As String               ' código da UF do solicitante - Tabela IBGE
Dim Ano As String               ' ano de inutilizalção da numeração
Dim CNPJ As String              ' CNPJ do emitente
Dim modelo As String            ' modelo da CT-e (sempre 57)
Dim serie As String             ' serie do CT-e (sem zeros a esquerda)
Dim nroCTeInicial As String     ' número inicial da faixa a ser inutilizada (sem zeros a esquerda)
Dim nroCTeFinal As String       ' número final da faixa a ser inutilizada (sem zeros a esquerda)
                                ' Observações
                                ' só é permitida a inutilização de até 1000 números por vez
                                ' se a inutilização for de um único número nroCTeInicial e nroCTeFinal devem
                                ' ser iguais
Dim justificativa As String     ' justificativa de cancelamento
Dim procInut As String          ' estrturura XML que contém o pedido de inutilização e a homologação da inutilização,
                                ' que deve ser mantido pelo emissor.
Dim versao As String            ' utilizado para escolha da versão do WS - 1.03 / 1.04
Dim cStat As Long       ' retorna o código do resultado da chamada do WS
'
'
'  IMPORTANTE: todas as variáveis utilizadas como parâmetro da DLL devem ser inicializadas
'
'
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
licenca = ""    ' informar a chave da licença de uso, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as [condições de uso](http://www.flexdocs.com.br/cte_util.htm "condições de uso")
msgDados = ""   ' retorna a mensagem XML enviada para o WS
msgRetWS = ""   ' retorna a mensagem XML de resposta do WS
msgResultado = ""   ' retorna o resultado da chamada da funcionalidade, se o WS acessado com sucesso será devolvido o cStat da resposta do WS
procInut = ""   ' retorna o XML do ***procInutCTe*** que é composto pelo pedido de inutilização da numeração de CT-e e respectivo do protocolo da homologação da inutilização da numeração do CT-e.<BR> O emissor deve manter o arquivo deste XML.

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" ' SEFFAZ/RS
siglaUF = "RS" ' informar a sigla da UF
'
'  Solicita os parâmetros da inutilização
'
' o modelo da CT-e é sempre fixo em 57
modelo = "57"
'
' converte a sigla da UF no código da UF da tabela do IBGE
'
cUF = "35"
'
'
CNPJ = "99999090910270" ' informar o CNPJ do emissor

Ano = "11" ' informar o ano, considerar o ano em tenha ocorrida a quebrada da sequência, se o problema ocorreu em dezembro/2009, mesmo que a inutilização seja solicitada em 2010, o ano deve ser 2009, importante: informar o ano no formato aa, ex. 2010 = 10

serie = "1" ' informar a série, a informação da serie com zeros não significativos provoca Falha de Schema, assim informe 1 ao invés de 001

 
nroCTeInicial = "1" ' informar o número do CT-e inicial a ser inutilizada, a informação do número com zeros não significativos provoca Falha de Schema, assim informe 1 ao invés de 000000001. No caso de inutilização de um único número, o número inicial e final devem ser iguais

nroCTeFinal = "1"   ' informar o número do CT-e final a ser inutilizada, a informação do número com zeros não significativos provoca Falha de Schema, assim informe 1 ao invés de 000000001. No caso de inutilização de um único número, o número inicial e final devem ser iguais

 
justificativa = "Quebra de sequencia da numeracao" ' informar a justificativa de inutilização com pelo menos 15 caracteres

 
versao = "1.04" ' versão do Web Service, a versão anterior é 1.03, a versão nova é 1.04

tipoAmbiente = 2  'informar o código do ambiente desejado: 1- produção ou 2-homologação
cStat = 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
'
'
cStat = objCTeUtil.InutilizaNroCT(siglaWS, siglaUF, tipoAmbiente, nomeCertificado, versao, msgDados, msgRetWS, msgResultado, procInut, cUF, Ano, CNPJ, modelo, serie, nroCTeInicial, nroCTeFinal, justificativa, proxy, usuario, senha, licenca)
'
'
'
'
Screen.MousePointer = vbDefault ' normal
'
If cStat = 102 Then
   '
   '  grava InutilizaCT
   '
   '
   nomeArquivo = "InutilizaCT.xml"
   Open nomeArquivo For Output As #1
   Print #1, procInut
   Close #1
 
'
' Pega o conteúdo das tag nProt e dhRecbto da resposta do WS
'
Dim nProtocoloInut As String    ' número do protocolo de homomologação de Inutilização de numeraçãp devolvido pela SEFA
Dim dProtocoloInut As String    ' data e hora de homologação da Inutilização de numeração   
Dim Posicao As Integer          ' posicao inicial a ser considerada no pegaConteudoTag

Posicao = 1
 
nProtocoloInut = pegaConteudoTag("nProt", Posicao, msgRetWS)
dProtocoloInut = pegaConteudoTag("dhRecbto", Posicao, msgRetWS)
 
'
'
' mostra mensagem XML enviada
'
MsgBox msgDados, vbInformation, "Mensagem XML do Pedido de Inutilização de numeração do CT-e"
'
' mostra mensagem XML da mensagem de retorno do WS
'
MsgBox msgResultado + Chr(13) + Chr(13) + msgRetWS, vbInformation, "Resultado da chamada do WS"
 
Else
 
MsgBox cStat + Chr(13) + Chr(13) + msgResultado, vbInformation, "Falha na Inutilização de numeração"
 
'
End If
'
' libera classe
'
Set objNFeUtil = Nothing
 
 
Function pegaConteudoTag(tag As String, Posicao As Integer, XML As String) As String
 
' posicao = a partir de onde deve procurar a tag , vai ser util no caso de existir mais de uma tag com o mesmo nome

Dim posIni As Integer
Dim posFim As Integer
Dim tamTag As Integer
Dim tagIni As String
Dim tagVaz As String
Dim tagFim As String
 
tagIni = "<" + Trim(tag) + ">"
tagFim = "</" + Trim(tag) + ">"
tagVaz = "<" + Trim(tag) + "/>"
 
pegaConteudoTag = ""
 
posIni = InStr(Posicao, XML, tagIni)
posFim = InStr(Posicao, XML, tagFim)
 
If InStr(Posicao, XML, tagVaz) > 0 Then ' tag sem conteudo
   Exit Function
End If
 
If posIni = 0 Then ' nao existe tag de inicio
   Exit Function
End If
 
If posFim = 0 Then  ' nao existe tag de fim
   Exit Function
End If
 
pegaConteudoTag = Mid(XML, posIni + Len(tagIni), posFim - posIni - Len(tagIni))
 
End Function
10.4. InutilizaNroCT [v3.00]
10. Web Service do CT-e [v3.00]
« Anterior
10.3. Envia CT-e OS [v3.00]
Próximo »
10.5. WS de Consulta