Ir para conteúdo
  • Cadastre-se

MarceloPeron

Membros
  • Total de ítens

    58
  • Registro em

  • Última visita

Posts postados por MarceloPeron

  1. Boa tarde, estou com uma dificuldade na consulta do boleto pela API ITAU, estou conseguindo registrar normal, mas na colsulta só me retorno http 400

    '{"error":{"codigo":"400","mensagem":"Erro na validação de Campos","campos":[{"campo":"view","mensagem":"View inválida","valor":"full"}]}}'

    procedure TfrmFfat003a.RetornoAPIItau;
    VAR
      vTitulo : TACBrTitulo;
      vDvAge  : String;
    begin
      Try
        DmHfat003a.qAPI.First;
        UniProgressBarAPI.Visible  := True;
        UniProgressBarAPI.Min      := 0;
        UniProgressBarAPI.Max      := DmHfat003a.qAPI.RecordCount;
        UniSession.Synchronize;
        UniProgressBarAPI.Position := 0;
        Application.ProcessMessages;
        While DmHfat003a.qAPI.Eof = False do Begin
          ACBrBoleto.Banco.TipoCobranca                          := cobItau;
          ACBrBoleto.Configuracoes.WebService.VersaoDF           := 'V2';
          ACBrBoleto.Configuracoes.WebService.Ambiente           := taHomologacao;
          ACBrBoleto.Configuracoes.WebService.SSLCryptLib        := cryOpenSSL;
          ACBrBoleto.Configuracoes.WebService.SSLHttpLib         := TSSLHttpLib.httpOpenSSL;
          ACBrBoleto.Configuracoes.WebService.SSLType            := TSSLType.LT_TLSv1_2;
          ACBrBoleto.Configuracoes.WebService.UseCertificateHTTP := True;
          ACBrBoleto.Configuracoes.WebService.Operacao           := tpConsultaDetalhe;
          ACBrBoleto.Configuracoes.WebService.Filtro.Clear;
          ACBrBoleto.Configuracoes.WebService.Filtro.indicadorSituacao        := isbNenhum;
          ACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio := Now - 30;
          ACBrBoleto.Configuracoes.WebService.Filtro.dataVencimento.DataFinal := Now;
          ACBrBoleto.Cedente.CedenteWS.ClientID                  := DmHfat003a.Parametros.ClientID;
          ACBrBoleto.Cedente.CedenteWS.ClientSecret              := DmHfat003a.Parametros.ClientSecret;
          ACBrBoleto.Cedente.CedenteWS.KeyUser                   := DmHfat003a.Parametros.DeveloperKey;
          ACBrBoleto.Cedente.CedenteWS.Scope                     := DmHfat003a.Scope.Itau;
          ACBrBoleto.Cedente.CedenteWS.IndicadorPix              := False;
          If ACBrBoleto.Configuracoes.WebService.Ambiente = taProducao Then Begin
            ACBrBoleto.Configuracoes.WebService.Certificado        := DmHfat003a.Parametros.CertificadoChavePem;
            ACBrBoleto.Configuracoes.WebService.ChavePrivada       := DmHfat003a.Parametros.CertificadoChavePrivada;
          End;
          ACBrBoleto.ListadeBoletos.Clear;
          ACBrBoleto.Cedente.Conta         := DmHfat003a.qAPICONTA.AsString;
          ACBrBoleto.Cedente.ContaDigito   := DmHfat003a.qAPIDV_CONTA.AsString;
          ACBrBoleto.Cedente.Agencia       := DmHfat003a.qAPIAGENCIA.AsString;
          ACBrBoleto.Cedente.AgenciaDigito := '0';
          ACBrBoleto.Cedente.Modalidade    := '';
          ACBrBoleto.Cedente.CodigoCedente := DmHfat003a.qAPIAGENCIA.AsString + DmHfat003a.qAPICONTA.AsString + DmHfat003a.qAPIDV_CONTA.AsString;
          vTitulo := ACBrBoleto.CriarTituloNaLista;
          With vTitulo do Begin
            Vencimento        := StrToDateTimeDef(DmHfat003a.qAPIVENCIMENTO.AsString,0);
            DataDocumento     := StrToDateTimeDef(DmHfat003a.qAPIFATURAMENTO.AsString,0);
            NumeroDocumento   := DmHfat003a.qAPINUMERO_INTERNO.AsString;
            EspecieDoc        := 'DM';
            Aceite            := atNao;
            DataProcessamento := Now;
            Carteira          := DmHfat003a.qAPICARTEIRA.AsString;
            NossoNumero       := DmHfat003a.qAPINUMERO_BOLETO.AsString;
            ValorDocumento    := DmHfat003a.qAPIVALOR.AsFloat;
            Sacado.NomeSacado := DmHfat003a.qAPIPAGADOR.AsString;
            Sacado.Logradouro := DmHfat003a.qAPILOGRADOURO.AsString;
            Sacado.Numero     := DmHfat003a.qAPINUMERO.AsString;
            Sacado.Bairro     := DmHfat003a.qAPIBAIRRO.AsString;
            Sacado.CEP        := DmHfat003a.qAPICEP.AsString;
            Sacado.Cidade     := DmHfat003a.qAPICIDADE.AsString;
            Sacado.UF         := DmHfat003a.qAPIESTADO.AsString;
            Sacado.CNPJCPF    := DmHfat003a.qAPICNPJ.AsString;
            ValorDesconto     := DmHfat003a.qAPIDESCONTO.AsFloat;
            PercentualMulta   := DmHfat003a.qAPIMULTA_ATRASO.AsFloat;
            CodigoMoraJuros   := cjValorDia;
          End;
          ACBrBoleto.Cedente.Nome    := DmHfat003a.Parametros.NomeEmpresa;
          ACBrBoleto.Cedente.CNPJCPF := DmHfat003a.Parametros.CNPJEmpresa;
          ACBrBoleto.Enviar;
          dm_rc.rc_ShowSweetAlert('Erro',IntToStr(ACBrBoleto.ListaRetornoWeb[0].HTTPResultCode) + ' - ' +
                                                  ACBrBoleto.ListaRetornoWeb[0].DadosRet.TituloRet.CodigoEstadoTituloCobranca + ' - ' +
                                                  ACBrBoleto.ListaRetornoWeb[0].DadosRet.TituloRet.EstadoTituloCobranca,
                                                  'error');
          UniSession.Synchronize;
          UniProgressBarAPI.Position := UniProgressBarAPI.Position + 1;
          Application.ProcessMessages;
          DmHfat003a.qAPI.Next;
        End;
      Except On E : Exception do
        dm_rc.rc_ShowSweetAlert('Erro',E.Message,'error');
      End;
    end;

  2. Bom dia a todos,

    Um dos nossos clientes está solicitando um QRCode de chave PIX na impressão do CTe, para CTe a vista.

    Minha dúvida é: se fizermos isso, estaremos alterando o layout de impressão de uma forma que fique fora do padrão ? Será que poderemos ter problemas com a fiscalização por termos incluído uma informação que não está prevista no layout normal ?

  3. Bom dia,

    Desde ontem estou tendo dificuldades na consulta de disponibilidade da sefaz  com clientes de MG, está havendo alguma intermitência ? Ora tenho o status 107 ora não me retorna nada.

  4. Boa tarde,

    Fomos informados por um cliente que desde o dia 03/04/23, é possível substituir um CTe sem Nota Fiscal ou CTe de anulação (Ajuste SINIEF N. 31 de 23/09/22).

    Porém, quando fazemos o envio, o ACBrCTe monta as tags "tomaICMS e refCTe, que no caso não tem valores, e assim cai na validação do componente. Segue abaixo trecho do meu código da montagem da informação do CTe substituto. de que forma eu devo montar o trecho ?

            If qCTeNUM_ID_CTE_44_SUB.AsString <> '' Then Begin
              If qCTeFJ_CONSIG.AsString <> 'J' Then
                vChCteAnu := qCTeCHV_ANU_CTE_SUB.AsString
              Else
                vChCteAnu := '';
              With infCTeNorm.infCteSub do Begin
                chCte     := qCTeNUM_ID_CTE_44_SUB.AsString;
                refCteAnu := vChCteAnu;
                If qCTeFJ_CONSIG.AsString = 'J' Then Begin
                  If qCTeTP_CHV_ANU_CTE_SUB.AsString = 'NFE' Then
                    tomaICMS.refNFe := qCTeCHV_ANU_CTE_SUB.AsString
                  Else Begin
                    tomaICMS.refCte := qCTeCHV_ANU_CTE_SUB.AsString;
                    Case StrToIntDef(qCTeAJUTOMACTESUB.AsString,0) Of
                      0 : indAlteraToma := tiNao;
                      1 : indAlteraToma := tiSim;
                    End;
                  End;
                End;
              End;
            End;

  5. Boa tarde,

    Um dos clientes está solicitando o QR Code da chave pix na impressão do CTe (isso é para os casos de conhecimentos a vista). Uso ACBr para transmissão, mas o PDF eu tenho meu próprio layout. Já tenho o QR Code da sefaz e estou com receio de por outro e isso dar algum problema com fiscalização, devido ao layout sair do habitual.

    Será que poderemos ter problemas se aceitarmos esta solicitação ?

    Obrigado

  6. boa tarde a todos,

    A minha rotina de envio do CTe / MDFe está funcionando muito bem. Porém, um dos nossos clientes reclamou do tempo do processo ( eles enviam de 400 a 600 CTes no final da tarde). Estou enviando de forma síncrona (um CTe por lote) e o tempo médio por CTe foi de 3s (isso incluso todos os updates que faço no banco do cliente depois da resposta da sefaz). Alterei para enviar em lote e testei com 5 CTes e o tempo baixou mas não muito, (cerca de 2,5 s por CTe). Alguém mais já fez esta comparação ? O tempo entre um método e outro é tão pequeno assim como apontou os meus testes ?

  7. consegui resolver, bastou copiar o trecho abaixo do arquivo cteTiposBasico_v3.00_Homologacao.xsd para o arquivo cteTiposBasico_v3.00.xsd. Obrigadp pela ajuda.

            <xs:element name="infCTeSupl" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Informações suplementares do CT-e</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="qrCodCTe">
                                <xs:annotation>
                                    <xs:documentation>Texto com o QR-Code impresso no DACTE</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:whiteSpace value="preserve"/>
                                        <xs:minLength value="50"/>
                                        <xs:maxLength value="1000"/>
                                        <xs:pattern value="((HTTPS?|https?)://.*\?chCTe=[0-9]{44}&amp;tpAmb=[1-2](&amp;sign=[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1})?)"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>

  8. atualizei ontem meus schemas antes de fazer a alteração na minha aplicação, no arquivo cteTiposBasico_v3.00_Homologacao.xsd, tenho o seguinte:

                <xs:element name="infCTeSupl" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Informações suplementares do CT-e</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="qrCodCTe">
                                <xs:annotation>
                                    <xs:documentation>Texto com o QR-Code impresso no DACTE</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:whiteSpace value="preserve"/>
                                        <xs:minLength value="50"/>
                                        <xs:maxLength value="1000"/>
                                        <xs:pattern value="((HTTPS?|https?)://.*\?chCTe=[0-9]{44}&amp;tpAmb=[1-2](&amp;sign=[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1})?)"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                

    no arquivo cteTiposBasico_v3.00.xsd não tem infCTeSupl, tentei atualizar os schemas de novo mas não veio nada.

  9. Bom dia, 

    Estou com uma difiiculdade com o QR code, configurei para sair sempre, conforme abaixo:

     CTe.Configuracoes.Geral.GerarInfCTeSupl  := fgtSempre;

    meu xml saiu assim: 

    <infCTeSupl>
    </infCTeSupl>
     
    e o componente respondeu: 1871 - element '{http://www.portalfiscal.inf.br/cte}infCTeSupl': This element is not expected. Expected is (http://www.w3.otg/2000/09/xmldsig#}Signature).
     
    Alguém pode me ajudar?
     
  10. boa tarde, alguém sabe como fazer para assinar um xml que não seja DFe?

    Antes eu fazia assim:

           A := TDFeSSL.Create;
           A.SSLLib :=  libOpenSSL;
           A.ArquivoPFX := trim(cdsCertificadosDIRET_CERT.AsString);
           A.Senha := trim(cdsCertificadosSENHA.AsString);

           Var_SL.Text := A.SSLXmlSignClass.Assinar(Var_SL.Text,'OT','infOT');
           Var_SL.Text := StringReplace(Var_SL.Text,'<?xml version="1.0" encoding="utf-8"?>','<?xml version="1.0" encoding="utf-8"?>' + S1,[rfReplaceAll]);
           Var_SL.Text := StringReplace(Var_SL.Text,'</OT>','</OT>'#13 + S2,[rfReplaceAll]);

     

    mas agora não funciona pq TSSLLib, aparentemente, não existe mais.

  11. somente em agosto? veja o que diz a sefaz MS

    Mensagem:

    Prezados contribuintes, vimos por meio deste, lembrá-los da alteração de padrões técnicos conforme disposto no Item 14 da página 6 da Nota Técnica 002/2017 do CT-e, que será implementada a partir do dia 02 de abril de 2018.

    O Item 14 da NT 002/2017 dispõe: “O Protocolo de Comunicação com o ambiente de autorização das SEFAZ, a partir de 02/04/2018, permitirá conexões unicamente através do protocolo TLS 1.2 ou versão superior. Ou seja, não será mais permitida à comunicação via protocolo SSL. O motivo desta mudança está amplamente documentado na Internet, pela falta de segurança comprovada no uso do Protocolo SSL.”

    Desta forma, a partir de 02/04/2018, os WEBSERVICES de autorização da SEFAZ recepcionarão APENAS os XMLs que forem transmitidos por meio do protocolo TLS.1.2 e NÃO recepcionarão os arquivos XMLs que forem transmitidos por meio do protocolo SSL, sendo assim, caso a alteração do padrão de comunicação não for efetuada, ocorrerão problemas na tentativa de emissão do Conhecimento de Transporte Eletrônico.

    É de suma importância que o contribuinte realize os testes no ambiente de homologação. O ambiente de homologação, com o novo padrão de comunicação vigente, já está disponível para que os contribuintes possam realizar os testes.

    Recomendamos que o contribuinte entre em contato com o desenvolvedor do emissor de CT-e que utiliza, para que se informe sobre o processo de alteração do padrão de comunicação do respectivo aplicativo.

    Equipe CT-e.

    Secretaria de Estado de Fazenda de Mato Grosso do Sul.

     

  12. bom dia, recebemos a informação da sefaz MS que a partir do dia 02/04 que as transmissões não poderão ser mais por ssl, mas somente por tls 1.2 (ou superior).

    O que devo fazer para adequar a minha aplicação para este tipo de protocolo?

    • Obrigado 1
  13. bom dia Italo,

     

    Não deu certo, esta noite tive problemas. A mesma situação, dependendo do que vem a IE (em branco ou isento) eu tenho que fiicar deslocando a string no arquivo.

    alguma outra idéia?

  14. bom dia Italo, parace que deu certo com o OpenSSL esta troca de arquivos. Pus em produção ontem e não tive nenhuma reclamação durante a noite.

    Mas  no MDFe acontece a mesma coisa com o arquivo tiposGeralMDFe_v3.00.xsd, mas aqui não tenho outro arquivo pra trocar na versão 3.0, o que devo fazer?

×
×
  • 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.