Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 4719 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Caro senhores,

Primeiramente, gostaria de agradecer a todos os responsáveis e participantes deste projeto.

Vamos esclarecer meu problema.

Possuo um cliente que roda um sistema antigo em clipper ainda q funciona perfeitamente. Porém agora preciso fornecer um módulo a parte complementar com a função de gerar o CTe(conhecimento de transporte eletronico). Para tal, utilizei o componente da ACBr q no caso da NFe funciona perfeitamente, já o tenho implantado em vários clientes. No caso do CTe não obtive o mesmo sucesso, tipo quando mando gerar e validar o XML o mesmo é criado perfeitamente, mas quando mando criar e enviar me parece que o arquivo que é enviado é outro sem informação nenhuma contida, já fiz vários debug, mas não consigo identificar o problema.

Antecipadamente agradecido,

Josemar

Postado

verifiquei, mas me parece q não ocorre como consta o código abaixo.

botão para gerar:

procedure TfrmDemo_ACBrCTe.btnGerarCTeClick(Sender: TObject);

var

vAux : String;

begin

if not(InputQuery('WebServices Enviar', 'Numero do Conhecimento', vAux))

then exit;

vAux := fmtzero(vAux,6);

gerou := false;

GerarCTe(vAux);

if not gerou then

exit;

ACBrCTe1.Conhecimentos.Items[0].SaveToFile;

ShowMessage('Arquivo gerado em: '+ACBrCTe1.Conhecimentos.Items[0].NomeArq);

MemoDados.Lines.Add('Arquivo gerado em: '+ACBrCTe1.Conhecimentos.Items[0].NomeArq);

MemoResp.Lines.LoadFromFile(ACBrCTe1.Conhecimentos.Items[0].NomeArq);

LoadXML(MemoResp, WBResposta);

PageControl2.ActivePageIndex := 1;

end;

função gerarCTe

procedure TfrmDemo_ACBrCTe.GerarCTe(NumCTe: String);

var

i, j, CodigoMunicipio, Tomador: Integer;

nota1, nota2, xcgcreme, xcgcdest, xcgc, xnummov, xserie, xciffob, xcpfreme, xcpfdest, xcancela, telreme, teldest, dcarga, ciffob : string;

xvalormov, xbasecalc, xicms, xaliquota, vcarga : real;

xdatamov : tdate;

begin

ACBrCTe1.Conhecimentos.Clear;

VKDBFNTX1.Active := true;

VKDBFNTX2.Active := true;

VKDBFNTX3.Active := true;

VKDBFNTX4.Active := true;

VKDBFNTX1.Filtered := false;

VKDBFNTX1.Filter := 'cgc = ' + QuotedStr('10.745.668/0001-11') + ' and numcon = ' + QuotedStr(NumCTe + '/ ');

VKDBFNTX1.Filtered := true;

if VKDBFNTX1.IsEmpty then

begin

showmessage('CTR não encontrado.');

gerou := false;

exit;

end;

VKDBFNTX1.First;

while not VKDBFNTX1.Eof do

begin

VKDBFNTX2.Filtered := false;

VKDBFNTX2.Filter := 'cgc = ' + QuotedStr('10.745.668/0001-11') + ' and numcon = ' + QuotedStr(NumCTe + '/ ');

VKDBFNTX2.Filtered := true;

VKDBFNTX3.Filtered := false;

VKDBFNTX3.Filter := 'cgc = ' + QuotedStr('10.745.668/0001-11') + ' and numcon = ' + QuotedStr(NumCTe + '/ ');

VKDBFNTX3.Filtered := true;

with ACBrCTe1.Conhecimentos.Add.CTe do

begin

xcancela := VKDBFNTX1.fieldbyname('cancela').AsString;

xnummov := '00'+VKDBFNTX2.fieldbyname('conhece').AsString;

xdatamov := VKDBFNTX2.fieldbyname('datacon').AsDateTime;

xvalormov := VKDBFNTX2.fieldbyname('totprest').AsFloat;

xbasecalc := VKDBFNTX2.fieldbyname('basecalc').AsFloat;

xicms := VKDBFNTX2.fieldbyname('icms').AsFloat;

xaliquota := VKDBFNTX2.fieldbyname('aliquota').AsFloat;

xciffob := VKDBFNTX2.fieldbyname('cgcreme').AsString;

xcgcreme := VKDBFNTX2.fieldbyname('cgcreme').AsString;

xcpfreme := VKDBFNTX2.fieldbyname('cpfreme').AsString;

xcgcdest := VKDBFNTX2.fieldbyname('cgcdest').AsString;

xcpfdest := VKDBFNTX2.fieldbyname('cpfdest').AsString;

ciffob := VKDBFNTX2.fieldbyname('ciffob').AsString;

Ide.cUF := CTeUtil.UFtoCUF(edtEmitUF.Text);

Ide.cCT := StrToInt(VKDBFNTX2.fieldbyname('conhece').AsString); //Caso não seja preenchido será gerado um número aleatório pelo componente

Ide.CFOP := StrToInt(copy(VKDBFNTX2.fieldbyname('cfo').AsString,1,1) + copy(VKDBFNTX2.fieldbyname('cfo').AsString,3,3));

Ide.natOp := 'PRESTAÇÃO DE SERVIÇO';

if VKDBFNTX1.fieldbyname('fpago').AsString = 'P' then

Ide.forPag := fpPago // ou Pago

else

Ide.forPag := fpAPagar; // ou APagar

Ide.modelo := '57';

Ide.serie := 0;

Ide.nCT := StrToInt(VKDBFNTX2.fieldbyname('conhece').AsString);

Ide.dhEmi := Now;

Ide.tpImp := tiRetrato;

case rgFormaEmissao.ItemIndex of

0: Ide.tpEmis:=teNormal;

1: Ide.tpEmis:=teContingencia;

2: Ide.tpEmis:=teSCAN;

3: Ide.tpEmis:=teDPEC;

4: Ide.tpEmis:=teFSDA;

end;

if rgTipoAmb.ItemIndex = 0 then

Ide.tpAmb := taProducao //Lembre-se de trocar esta variável quando for para ambiente de produção

else

Ide.tpAmb := taHomologacao; //Lembre-se de trocar esta variável quando for para ambiente de produção

Ide.tpCTe := tcNormal;

Ide.procEmi := peAplicativoContribuinte;

Ide.verProc := '1.0'; //Versão do seu sistema

Ide.modal := mdRodoviario;

Ide.tpServ := tsNormal;

VKDBFNTX4.Filtered := false;

VKDBFNTX4.Filter := 'cgccli = ' + quotedstr(VKDBFNTX2.fieldbyname('cgcreme').AsString) + ' and ' +

'cpfcli = ' + quotedstr(VKDBFNTX2.fieldbyname('cpfreme').AsString);

VKDBFNTX4.Filtered := true;

Ide.cMunIni := VKDBFNTX4.fieldbyname('ibgecli').AsInteger;

Ide.xMunIni := VKDBFNTX4.fieldbyname('cidcli').AsString;

Ide.UFIni := VKDBFNTX4.fieldbyname('ufcli').AsString;

VKDBFNTX4.Filtered := false;

VKDBFNTX4.Filter := 'cgccli = ' + quotedstr(VKDBFNTX2.fieldbyname('cgcdest').AsString) + ' and ' +

'cpfcli = ' + quotedstr(VKDBFNTX2.fieldbyname('cpfdest').AsString);

VKDBFNTX4.Filtered := true;

Ide.cMunFim := VKDBFNTX4.fieldbyname('ibgecli').AsInteger;

Ide.xMunFim := VKDBFNTX4.fieldbyname('cidcli').AsString;

Ide.UFFim := VKDBFNTX4.fieldbyname('ufcli').AsString;

Ide.cMunEnv := 3136702;

Ide.xMunEnv := 'Juiz de Fora';

Ide.UFEnv := 'MG';

Ide.retira := rtSim;

Ide.xdetretira := '';

Tomador := 0;

if ciffob = 'C' then

begin

Ide.Toma03.Toma := tmRemetente;

if trim(xcgcreme) = '' then

xcgcreme := copy(xcpfreme,1,3)+copy(xcpfreme,5,3)+copy(xcpfreme,9,3)+copy(xcpfreme,13,2)

else

xcgcreme := copy(xcgcreme,1,2)+copy(xcgcreme,4,3)+copy(xcgcreme,8,3)+copy(xcgcreme,12,4)+copy(xcgcreme,17,2);

VKDBFNTX4.Filtered := false;

VKDBFNTX4.Filter := 'cgccli = ' + quotedstr(VKDBFNTX2.fieldbyname('cgcreme').AsString) + ' and ' +

'cpfcli = ' + quotedstr(VKDBFNTX2.fieldbyname('cpfreme').AsString);

VKDBFNTX4.Filtered := true;

Ide.Toma4.CNPJCPF := xcgcreme;

end

else

begin

Ide.Toma03.Toma := tmDestinatario;

if trim(xcgcdest) = '' then

xcgcdest := copy(xcpfdest,1,3)+copy(xcpfdest,5,3)+copy(xcpfdest,9,3)+copy(xcpfdest,13,2)

else

xcgcdest := copy(xcgcdest,1,2)+copy(xcgcdest,4,3)+copy(xcgcdest,8,3)+copy(xcgcdest,12,4)+copy(xcgcdest,17,2);

VKDBFNTX4.Filtered := false;

VKDBFNTX4.Filter := 'cgccli = ' + quotedstr(VKDBFNTX2.fieldbyname('cgcdest').AsString) + ' and ' +

'cpfcli = ' + quotedstr(VKDBFNTX2.fieldbyname('cpfdest').AsString);

VKDBFNTX4.Filtered := true;

end;

telreme :=EliminaCaracteres(VKDBFNTX4.fieldbyname('telecli').AsString,'(');

telreme :=EliminaCaracteres(telreme,')');

telreme :=EliminaCaracteres(telreme,'-');

telreme :=EliminaCaracteres(telreme,' ');

Ide.Toma4.Toma :=tmOutros;

Ide.Toma4.IE:=VKDBFNTX4.fieldbyname('inscest').AsString;

Ide.Toma4.xNome:=VKDBFNTX4.fieldbyname('nomecli').AsString;

Ide.Toma4.xFant:=VKDBFNTX4.fieldbyname('nomecli').AsString;

Ide.Toma4.fone:=telreme;

Ide.Toma4.EnderToma.xLgr:=VKDBFNTX4.fieldbyname('endcli').AsString;

Ide.Toma4.EnderToma.nro:=VKDBFNTX4.fieldbyname('numcli').AsString;

Ide.Toma4.EnderToma.xCpl:=VKDBFNTX4.fieldbyname('compcli').AsString;

Ide.Toma4.EnderToma.xBairro:=VKDBFNTX4.fieldbyname('bairrocli').AsString;

Ide.Toma4.EnderToma.cMun:=VKDBFNTX4.fieldbyname('ibgecli').AsInteger;;

Ide.Toma4.EnderToma.xMun:=VKDBFNTX4.fieldbyname('cidcli').AsString;

Ide.Toma4.EnderToma.CEP:=strtoint(copy(VKDBFNTX4.fieldbyname('cepcli').AsString,1,5)+copy(VKDBFNTX4.fieldbyname('cepcli').AsString,7,3));

Ide.Toma4.EnderToma.UF:=VKDBFNTX4.fieldbyname('ufcli').AsString;

Ide.Toma4.EnderToma.cPais:=1058;

Ide.Toma4.EnderToma.xPais:='Brasil';

compl.xCaracAd := '';

compl.xCaracSer := '';

compl.xEmi := '';

compl.fluxo.xOrig := '';

compl.fluxo.xDest := '';

compl.fluxo.xRota := '';

compl.xObs := 'DOCUMENTO EMITIDO POR ME OU EPP OPTANTE PELO SIMPLES NACINAL NAO GERA DIREITO A CREDITO FISCAL - ' +

trim(VKDBFNTX2.fieldbyname('obscon').AsString) + ' ' + trim(VKDBFNTX2.fieldbyname('obscon1').AsString);

Emit.CNPJ := copy(VKDBFNTX2.fieldbyname('cgc').AsString,1,2)+copy(VKDBFNTX2.fieldbyname('cgc').AsString,4,3)+

copy(VKDBFNTX2.fieldbyname('cgc').AsString,8,3)+copy(VKDBFNTX2.fieldbyname('cgc').AsString,12,4)+

copy(VKDBFNTX2.fieldbyname('cgc').AsString,17,2);

Emit.IE:=edtEmitIE.Text;

Emit.xNome:=edtEmitRazao.Text;

Emit.xFant:=edtEmitRazao.Text;

Emit.EnderEmit.xLgr:=edtEmitLogradouro.Text;

Emit.EnderEmit.nro:=edtEmitNumero.Text;

Emit.EnderEmit.xCpl:=edtEmitComp.Text;

Emit.EnderEmit.xBairro:=edtEmitBairro.Text;

Emit.EnderEmit.cMun:=strtoint(edtEmitCodCidade.Text);

Emit.EnderEmit.xMun:=edtEmitCidade.Text;

Emit.EnderEmit.CEP:=strtoint(edtEmitCEP.Text);

Emit.EnderEmit.UF:=edtEmitUF.Text;

Emit.EnderEmit.fone:=edtEmitFone.Text;

VKDBFNTX4.Filtered := false;

VKDBFNTX4.Filter := 'cgccli = ' + quotedstr(VKDBFNTX2.fieldbyname('cgcreme').AsString) + ' and ' +

'cpfcli = ' + quotedstr(VKDBFNTX2.fieldbyname('cpfreme').AsString);

VKDBFNTX4.Filtered := true;

Rem.CNPJCPF:=xcgcreme;

Rem.xNome:=VKDBFNTX4.fieldbyname('nomecli').AsString;

Rem.xFant:=VKDBFNTX4.fieldbyname('nomecli').AsString;

Rem.EnderReme.xLgr:=VKDBFNTX4.fieldbyname('endcli').AsString;

Rem.EnderReme.nro:=VKDBFNTX4.fieldbyname('numcli').AsString;

Rem.EnderReme.xCpl:=VKDBFNTX4.fieldbyname('compcli').AsString;

Rem.EnderReme.xBairro:=VKDBFNTX4.fieldbyname('bairrocli').AsString;

Rem.EnderReme.cMun:=VKDBFNTX4.fieldbyname('ibgecli').AsInteger;

Rem.EnderReme.xMun:=VKDBFNTX4.fieldbyname('cidcli').AsString;

Rem.EnderReme.CEP:=strtoint(copy(VKDBFNTX4.fieldbyname('cepcli').AsString,1,5)+copy(VKDBFNTX4.fieldbyname('cepcli').AsString,7,3));

Rem.EnderReme.UF:=VKDBFNTX4.fieldbyname('ufcli').AsString;

Rem.EnderReme.cPais:=1058;

Rem.EnderReme.xPais:='Brasil';

Rem.CNPJCPF := xcgcreme;

Rem.IE:=VKDBFNTX4.fieldbyname('inscest').AsString;

telreme :=EliminaCaracteres(VKDBFNTX4.fieldbyname('telecli').AsString,'(');

telreme :=EliminaCaracteres(telreme,')');

telreme :=EliminaCaracteres(telreme,'-');

telreme :=EliminaCaracteres(telreme,' ');

Rem.fone:=telreme;

if trim(xcgcdest) = '' then

xcgcdest := copy(xcpfdest,1,3)+copy(xcpfdest,5,3)+copy(xcpfdest,9,3)+copy(xcpfdest,13,2)

else

xcgcdest := copy(xcgcdest,1,2)+copy(xcgcdest,4,3)+copy(xcgcdest,8,3)+copy(xcgcdest,12,4)+copy(xcgcdest,17,2);

VKDBFNTX4.Filtered := false;

VKDBFNTX4.Filter := 'cgccli = ' + quotedstr(VKDBFNTX2.fieldbyname('cgcdest').AsString) + ' and ' +

'cpfcli = ' + quotedstr(VKDBFNTX2.fieldbyname('cpfdest').AsString);

VKDBFNTX4.Filtered := true;

Dest.CNPJCPF:=xcgcdest;

Dest.xNome:=VKDBFNTX4.fieldbyname('nomecli').AsString;

Dest.EnderDest.xLgr:=VKDBFNTX4.fieldbyname('endcli').AsString;

Dest.EnderDest.nro:=VKDBFNTX4.fieldbyname('numcli').AsString;

Dest.EnderDest.xCpl:=VKDBFNTX4.fieldbyname('compcli').AsString;

Dest.EnderDest.xBairro:=VKDBFNTX4.fieldbyname('bairrocli').AsString;

Dest.EnderDest.cMun:=VKDBFNTX4.fieldbyname('ibgecli').AsInteger;

Dest.EnderDest.xMun:=VKDBFNTX4.fieldbyname('cidcli').AsString;

Dest.EnderDest.CEP:=strtoint(copy(VKDBFNTX4.fieldbyname('cepcli').AsString,1,5)+copy(VKDBFNTX4.fieldbyname('cepcli').AsString,7,3));

Dest.EnderDest.UF:=VKDBFNTX4.fieldbyname('ufcli').AsString;

Dest.EnderDest.cPais:=1058;

Dest.EnderDest.xPais:='Brasil';

Dest.CNPJCPF := xcgcdest;

Dest.IE:=VKDBFNTX4.fieldbyname('inscest').AsString;

teldest :=EliminaCaracteres(VKDBFNTX4.fieldbyname('telecli').AsString,'(');

teldest :=EliminaCaracteres(teldest,')');

teldest :=EliminaCaracteres(teldest,'-');

teldest :=EliminaCaracteres(teldest,' ');

Dest.fone:=teldest;

Dest.locEnt.CNPJCPF := xcgcdest;

Dest.locEnt.xNome:=VKDBFNTX4.fieldbyname('nomecli').AsString;

Dest.locEnt.xLgr:=VKDBFNTX4.fieldbyname('endcli').AsString;

Dest.locEnt.nro:=VKDBFNTX4.fieldbyname('numcli').AsString;

Dest.locEnt.xCpl:=VKDBFNTX4.fieldbyname('compcli').AsString;

Dest.locEnt.xBairro:=VKDBFNTX4.fieldbyname('bairrocli').AsString;

Dest.locEnt.cMun:=VKDBFNTX4.fieldbyname('ibgecli').AsInteger;

Dest.locEnt.xMun:=VKDBFNTX4.fieldbyname('cidcli').AsString;

Dest.locEnt.UF:=VKDBFNTX4.fieldbyname('ufcli').AsString;

vcarga := 0;

dcarga := '';

VKDBFNTX3.First;

while not VKDBFNTX3.Eof do

begin

with Rem.InfNF.Add do

begin

dcarga := VKDBFNTX3.fieldbyname('natureza').AsString;

serie := VKDBFNTX3.fieldbyname('snf').AsString;

nDoc := VKDBFNTX3.fieldbyname('nf').AsString;

dEmi := VKDBFNTX3.fieldbyname('dtnf').AsDateTime;

nCFOP := VKDBFNTX3.fieldbyname('cfop').AsInteger;

vNF := RoundTo(VKDBFNTX3.fieldbyname('valor').AsFloat, -2);

vProd := RoundTo(VKDBFNTX3.fieldbyname('valor').AsFloat, -2);

nPeso := RoundTo(VKDBFNTX3.fieldbyname('pesocon').AsFloat, -2);

vcarga := RoundTo(VKDBFNTX3.fieldbyname('valor').AsFloat, -2);

end;

VKDBFNTX3.Next;

end;

vPrest.vTPrest := RoundTo(VKDBFNTX2.fieldbyname('totprest').AsFloat, -2);

vPrest.vRec := RoundTo(VKDBFNTX2.fieldbyname('totprest').AsFloat, -2);

with vPrest.comp.Add do

begin

xNome:='Frete Peso';

vComp:=RoundTo(VKDBFNTX2.fieldbyname('fretepes').AsFloat, -2);

end;

with vPrest.comp.Add do

begin

xNome:='Frete Valor';

vComp:=RoundTo(VKDBFNTX2.fieldbyname('freteval').AsFloat, -2);

end;

with vPrest.comp.Add do

begin

xNome:='Frete Volume';

vComp:=RoundTo(VKDBFNTX2.fieldbyname('fretevol').AsFloat, -2);

end;

ACBrCTe1.Conhecimentos.Add.CTe.Imp.ICMS.ICMSSN.indSN := 1;

Imp.ICMS.SituTrib := cst41;

Imp.ICMS.ICMS45.CST := cst41;

infCarga.vCarga := vcarga;

infCarga.proPred := dcarga;

with infCarga.InfQ.Add do

begin

cUnid := uKg;

tpMed := 'Kg';

qCarga := RoundTo(VKDBFNTX2.fieldbyname('peso').AsFloat, -2);

end;

Rodo.RNTRC:='12365109' ;

Rodo.dPrev:=(Date+1);

Rodo.Lota:=ltNao;

end;

VKDBFNTX1.Next;

end;

gerou := true;

end;

Grato a todos.

Postado

UBERLÂNDIA-MG, 21 de dezembro de 2011.

Prezado Josemar,

Faça um teste simples, substituindo:

// ACBrCTe1.Conhecimentos.Items[0].SaveToFile;

por

ACBrCTe1.Conhecimentos.Valida; // Assina e Valida o XML

ACBrCTe1.Enviar(1); // Número do Lote

Atenciosamente,

Janis Peters Grants.

Postado

fiz assim e funcionou

ACBrCTe1.Conhecimentos.Items[0].SaveToFile;

s := ACBrCTe1.Conhecimentos.Items[0].NomeArq;

acbrcte1.Conhecimentos.Clear;

Acbrcte1.Conhecimentos.LoadFromFile(s);

acbrcte1.Enviar(StrToInt(vAux));

porém estou ainda com uma mensagem de erro

585 Rejeição: IE Emitente não autorizada a emitir CT-e para o modal informado.

sendo q esta tudo liberado para a fase de testes, homologação como pode ver no email recebido

Prezados,

Boa tarde.

Informamos o credenciamento como emissor de CT-E do estabelecimento informado no formulário encaminhado, e que o ambiente de homologação já foi liberado para o mesmo.

Seguem os endereços dos WebService de homologação do CT-e de MG:

https://hcte.fazenda.mg.gov.br/cte/serv ... ncelamento

https://hcte.fazenda.mg.gov.br/cte/serv ... utilizacao

https://hcte.fazenda.mg.gov.br/cte/services/CteRecepcao

https://hcte.fazenda.mg.gov.br/cte/serv ... etRecepcao

https://hcte.fazenda.mg.gov.br/cte/serv ... tusServico

https://hcte.fazenda.mg.gov.br/cte/services/CteConsulta

Caso queiram liberar o ambiente de produção para os estabelecimentos já cadastrados e em fase de testes no ambiente de homologação, favor encaminhar um e-mail solicitando a liberação e informando os dados dos estabelecimentos (Razão Social, Inscrição Estadual e CNPJ) pelo menos 24h antes da data prevista para início da emissão do CT-e em produção.

Att.

Equipe SPED

Secretaria de Estado de Fazenda de Minas Gerais

SRE/SAIF/DIEF/Divisão de Escrituração Digital

-------------------------

vou testar sua sugestão e retorno o resultado

valeu, []

Agradecidamente,

Josemar

Postado

Caro gransoft,

sua sugetão não funcionou.

de qualquer forma muito obrigado, vale salientar q aquela forma q passei esta funcionando, um amigo meu programador comentou até que poderia ser um bug do compenente.

Abraço a todos.

  • Consultores
Postado

Bom dia Josemar,

Estude os fragmentos de código disponibilizados juntamente com o programa exemplo, pasta: ...\Exemplos\ACBrCTe

Você vai notar que a procedure para envio de Lote é a mesma proposta pelo Janis, e esta funcionando.

São fragmentos da minha aplicação que esta rodando em ambiente de produção a mais de 1 ano.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

UBERLÂNDIA-MG, 22 de dezembro de 2011.

Prezado Josemar,

Conforme sugestão anterior, esqueça temporariamente nos testes a linha:

// ACBrCTe1.Conhecimentos.Items[0].SaveToFile;

e substitua por:

ACBrCTe1.Conhecimentos.Valida; // Que cria o arquivo XML, Assina e Valida !!!

ACBrCTe1.Enviar(1); // Número do Lote ( use sempre 1, e não necessariamente o Número do CTe Ide.nCTe

No algorítmo que você postou, onde você está ASSINANDO o XML ?!

Lembrando que o método Valida CRIA, ASSINA e VALIDA o XML...

Estou com mais de 100.000 CTes Autorizados com o ACBrCTe. Pode ficar tranquilo quanto aos algorítmos para o Schema 1.03, e estamos aguardando a SEFAZ-MG entrar em sintonia com o 1.04, que ainda apresenta problemas com alteração na chave e retornos de Protocolos.

Atenciosamente,

Janis Peters Grants.

  • Este tópico foi criado há 4719 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.