Problema de envio de CT-e 4.0 - erro de compactação do XML

3 respostas Resolvido
xmljavaprogramação
R

Boa tarde, referente à atualização no projeto de emissão de CT-e, estou trabalhando com o projeto em Java para fazer o processo de envio do CT-e. De acordo com o manual, o erro está ocorrendo ao descompactar o XML enviado. Gostaria de saber se há erro com o XML que estou enviando, ou se este erro pode ser causado por outra coisa.

o XML que está sendo compactado e transformado em base 64 segue o padrão disposto no anexo 1 do manual: (informações incompletas)

<?xml version="1.0" encoding="utf-8"?> ...

XML de envio (compactado):

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope

xmlns:xsi=“…”

xmlns:xsd=“…”

xmlns:soap12=“…”>

<a>soap12:Body</a>



(string em base64)



</soap12:Body>

</soap12:Envelope>

XML de retorno:
135SP-CTe-2024-01-31-2244Rejeição: Falha na descompactação da área de dados.1SP-CTe-2024-01-31-22024-02-02T16:18:23-03:00244Rejeição: Falha na descompactação da área de dados.

3 Respostas

S

Como está fazendo para compactar o XML?

R

Estava fazendo a compactação em um programa separado em Python da seguinte forma:

import gzip
import base64

def compress_and_encode(xml_string):
    compressed_data = gzip.compress(xml_string.encode("utf-8"))
    encoded_data = base64.b64encode(compressed_data).decode("utf-8")

    return encoded_data

xml_string = "<xml...>"

encoded_result = compress_and_encode(xml_string)
print(f'{encoded_result}\n')
R
Solucao aceita

O problema foi resolvido, no meu caso alterei para fazer o processo de compactação para base64 dentro do programa em Java, além de um erro no dígito verificador localizado no final da chave de acesso que acredito ter sido o que estava causando o erro.
(como calcular este valor é explicado no tópico 7.3 do manual geral)

Criado 2 de fevereiro de 2024
Ultima resposta 5 de fev. de 2024
Respostas 3
Participantes 2