Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 11-08-2023 em todas as áreas
-
Bom dia! Por volta das 16:06 do dia 10/08/2023, começamos a receber relatos de problemas ao emitir NF-e para múltiplas Sefaz. Todos os relatos relatavam estar recebendo: Ao tentar emitir NF-e. A Lista de Certificados Revogados (LCR), conforme o nome diz, é uma lista que contém certificados que foram revogados e não devem ser considerados válidos. Toda vez que a Sefaz recebe um Documento Fiscal Eletrônico, ela consulta essa LCR para verificar se deve aceitar o certificado que fez a assinatura. Quando ocorre a rejeição 296, a Sefaz não está conseguindo acessar essa lista. Nesse caso, o emissor pode escolher aguardar e tentar emitir a NFe novamente posteriormente ou entrar em contato com a certificadora ou a Sefaz para notificá-los do problema.5 pontos
-
Boa tarde @Luiz Otavio Ribeiro Valle Conte mais sobre o ambiente. Qtos ACBrMonitores vao ficar aberto? Pergunto pq o ACBrMonitor foi feito para rodar na estação de trabalho. Por exemplo existe algumas empresas grandes que trabalham web e com o monitor, mas ela instala nos clientes o ACBrMonitor e realiza a troca de arquivo. Cada caixa com SAT por exemplo possui um monitor instalado para fazer a comunicação com o hardware e fazer as vendas. O Monitor neste caso nao fica no servidor, mas sim nos clientes2 pontos
-
Boa tarde, Amigos pode fechar o tópico, entrei em contato com a SEFAZ de MG e adivinha onde está o problema? A Sefaz de MG não habilitou o cliente para emissão do NFCe apesar do mesmo está cadastrado e habilitado para emissão, existe uma pendência por parte do cliente para com a SEFAZ onde o mesmo deve ser habilitado como UNIDADE PRODUTIVA, não sei que isso significa, porem falaram que isso leva uma semana para regularizar segundo contabilidade do cliente, e a SEFAZ de MG está tendo problemas em alguns serviços. Portanto o problema é lá na SEFAZ. Forte abraço e obrigado pelas respostas.2 pontos
-
Fiz os testes como o tópico sugerido, mas não obtive sucesso, Fiz teste com outro provedor, o Betha, autorizei normalmente a NFS-e. Mandei e-mail para o pessoal do provedor para ver se tem algo referente ao link deles, para fins de confirmação. Sigo em testes.2 pontos
-
Boa Tarde! Vi que ainda não tem o Boleto Híbrido do Bradesco implementado no ACBrBoleto. Consegui contato com o Gerente e geraram as chaves e me mandaram o manual de configuração. Fiquei meio perdido com o manual, e acho que é por isso que ainda não tem esse Boleto Hibrido aqui..kkkkk No fim de uns 2 dias fazendo testes consegui entender e fazer funcionar a Requisição do Token no Postman e no TidHttp. Inclusive para atender os clientes aqui da Empresa vou fazer usando o TidHttp do Indy. Para tentar colocar na ACBr fiz a copia dos arquivos do Bancoob e comecei a mexer. Criei o arquivo: ..\svn\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoW_Bradesco.pas ..\svn\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Bradesco.pas Abaixo, segue todo o código que fiz na função GerarTokenAutenticacao no arquvo ..\svn\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoW_Bradesco.pas: function TBoletoW_Bradesco.GerarTokenAutenticacao: string; var strheaderJSON, strPayloadJSON : String; JsonHeader, JsonPayload: TJsonObject; intMiliSegundos, intSegundos, intSegundos1h: int64; dataAtual: TDateTime; stremHeadPayload : TStringStream; strHeaderBase64, strPayloadBase64, strHeadPayloadAssinado, strAssertion: WideString; xRequestBody : TStringList; begin {*** BLOCO FORMATACAO DA DATA DO PAYLOAD***} dataAtual := Now; intSegundos := DateTimeToUnix(dataAtual, False); //Data Atual UTC em Segundos. intSegundos1h := DateTimeToUnix(IncHour(dataAtual, 1), False); //Data Atual UTC em Segundos + Horario 1h intMiliSegundos := DateTimeToUnix(dataAtual, False) * 1000 + MilliSecondsBetween(dataAtual, Trunc(dataAtual)); //Data Atual UTC em Milisegundos. {*** FIM BLOCO FORMATACAO DA DATA DO PAYLOAD***} {*** BLOCO MONTAGEM DO HEADER JSON ***} JsonHeader := TJsonObject.Create; try JsonHeader.Add('alg').Value.asString := 'RS256'; JsonHeader.Add('typ').Value.asString := 'JWT'; strheaderJSON := JsonHeader.Stringify; strHeaderBase64 := EncodeBase64(strheaderJSON); except end; {*** FIM BLOCO MONTAGEM DO HEADER JSON ***} {*** BLOCO MONTAGEM DO PAYLOAD JSON ***} JsonPayload := TJsonObject.Create; try JsonPayload.Add('aud').Value.asString := 'https://proxy.api.prebanco.com.br/auth/server/v1.1/token'; //URL; JsonPayload.Add('sub').Value.asString := 'cliente_id'; //Client ID; JsonPayload.Add('iat').Value.asString := IntToStr(intSegundos); //data atual em segundos; JsonPayload.Add('exp').Value.asString := IntToStr(intSegundos1h); //data atual adicionando uma hora à frente, em segundos; JsonPayload.Add('jti').Value.asString := IntToStr(intMiliSegundos); //data atual em milissegundos; JsonPayload.Add('ver').Value.asString := '1.1'; strPayloadJSON := JsonPayload.Stringify; strPayloadBase64 := EncodeBase64(strPayloadJSON); except end; {*** FIM BLOCO MONTAGEM DO PAYLOAD JSON ***} {*** BLOCO DE ASSINATURA ***} FSSLDigest := dgstSHA256; FSSLHashOutput := outBase64; DFeSSL.SSLCryptLib := cryOpenSSL; DFeSSL.SSLHttpLib := httpOpenSSL; DFeSSL.SSLXmlSignLib := xsLibXml2; DFeSSL.ArquivoPFX := 'certificado.pfx'; DFeSSL.Senha := 'senha'; DFeSSL.CarregarCertificado; stremHeadPayload := TStringStream.Create(strHeaderBase64+'.'+strPayloadBase64); //concatena conforme o manual. strHeadPayloadAssinado := CalcularHash(stremHeadPayload);//aqui realiza a assinatura. strAssertion := strHeaderBase64+'.'+strPayloadBase64+'.'+strHeadPayloadAssinado; //HeaderBase64 + PayloadBase64 + JWT assinado = JWS. {*** FIM BLOCO DE ASSINATURA ***} {*** MONTAGEM DO BODY COM O JWS (JSON Web Signature) ***} xRequestBody := TStringList.Create; xRequestBody.Add('grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer'); xRequestBody.Add('assertion='+strAssertion); HTTPSend.Document.Clear; //Esse xRequestBody precisa ser enviado no Body do Post, não consegui fazer funcionar. {*** FIM MONTAGEM BODY ***} OAuth.ContentType := 'application/x-www-form-urlencoded'; OAuth.Payload := true; OAuth.AuthorizationType := atNoAuth; //precisa alterar para NoAuth para não mandar o Basic. Result := inherited GerarTokenAutenticacao; end; Todo esse código é somente para Gerar o JWS (JSON Web Signature). Não segui muito as boas praticas, só queria fazer funcionar, e até consegui montar todos os dados, inclusive o JWS gerado aqui foi o que eu Utilizei no Postman. mas no momento de enviar, o FHTTPSend.HTTPMethod(MetodoHTTPToStr(htPOST), URL) manda esses dados pelo Header e o Bradesco só aceita se mandar pelo Body. Esse pequeno, grande detalhe foi o que fez eu não conseguir gerar o Token, a resposta que está vindo é esta: Erro: 400 - Bad Request { "code": "100", "message": "invalid token", "details": null } Pelo que li no manual, todos os endpoints precisam de Assinatura no Payload. Não encontrei outro Banco já configurado que tenha este tipo de abordagem e acho que o Bradesco só está dificultando as coisas. Se mais alguém quiser colaborar, para colocar no ACBrBoleto, está aí, pelo menos a parte de geração do Token. Segue em anexo o Manual e os arquivos alterados para conseguir utilizar no ACBrBoleto. ACBrBoleto-Bradesco.zip1 ponto
-
Boa tarde Felipe, Lista de checagem: Você tem fontes com alterações locais? Verifica se não tem nenhuma unit do ACBr com uma bolinha vermelha em seu ícone, caso afirmativo delete a unit. Atualize todos os fontes de todas as pastas. Reinstale o ACBr com a opção de apagar arquivos antigos marcada. Compile a aplicação com a opção Build.1 ponto
-
Boa tarde Jovito, Fiz uma alteração no componente que acredito vai resolver o problema. Vamos aguardar agora uma nova compilação da Lib.1 ponto
-
Boa tarde @rpaulogio Foi criado uma tarefa para analise desta mudança esta na fila TK-4310. Não cheguei a testar as novas credenciais, pois como comentei estou finalizando uma nova API do Itau. Assim q testar ja volto a comunica-lo aqui mesmo1 ponto
-
Boa tarde! Por volta das 15:33, começamos a receber no canal #sefaz em nossa comunidade do Discord, relatos de instabilidade para emitir NFe para a Sefaz de São Paulo. Conferindo no DownDetector, é possível observar que por volta das 15:00 o número de relatos de problema aumentou exponencialmente. Não há contingência ativada até a publicação deste tópico.1 ponto
-
Obrigado pelo retorno! Tomara que dê certo... MG sempre é uma surpresa...1 ponto
-
Oi Diego, deu certo, muito obrigado.1 ponto
-
Não há "bala de prata", mas de acordo com relatos, uma possível solução para o problema de acordo com relatos, é marcar a seguinte opção:1 ponto
-
Criada a TK-4308 para avaliar a contribuição. Obrigado.1 ponto
-
ACBrBoleto.pas ACBrBoletoWS.Rest.OAuth.pas ACBrBoletoWS.Rest.pas1 ponto
-
Conforme o Diego orientou possivelmente alguma ocorrencia na SEFAZ. Abra o fale conosco e verifique o posicionamento que eles informam.1 ponto
-
Pessoal, bom dia!!! Vamos analisar, (com calma)... rsrsrs Quando nota fiscal de serviço, SIM, pode ser retido no valor total... pois a nota fiscal de serviço ja disponibiliza essa estrutura para abatimento/retenção de valores, tanto que existe o valor total da nota e o valor liquido... Diferente do caso das Notas de Produto,,, nesse caso somente alimente as informações e efetua o resumo dos valores mencionados na tag na obs. da nota... Tecnicamente, tem q ser assim, para haver uma conferencia do valor ja retido na fonte e o valor cobrado... abraço;1 ponto
-
Nestes casos geralmente o destinatario do documento fiscal esta com algum problema no sefaz de go. Recomendo consultar os dados do destinantario na site: https://www.economia.go.gov.br/ Menu Documentos Fiscais > Cadastro de Contribuintes Nacional Ou no link: https://www.sefaz.go.gov.br/ccn/1 ponto
-
1 ponto
-
@Mario Inacio Bom dia ! Para sair conforme manual, utilize o Banco Unicred ES no campo LayoutVersaoLote = 944 (que é versão deste layout) Assim será ajustado o Layout para 44 e nome para UNICRED.1 ponto
-
Bom dia! Seus fontes estão atualizados? Teoricamente isso foi resolvido na Revision-302501 ponto
-
Bom dia, Você deve preencher a propriedade ACBrTitulo.CaracTitulo com tcSimplesRapComReg Veja os detalhes a seguir na unit deste banco. Obs: É CNAB240 ../trunk2/Fontes/ACBrBoleto/ACBrBancoSantander.pas function TACBrBancoSantander.GerarRegistroTransacao240(ACBrTitulo: TACBrTitulo): String; begin . . . {Caracteristica T�tulo} sTipoCobranca := DefineCaracTitulo(ACBrTitulo); . . . sTipoCobranca + // 058 - 058 / Tipo de cobran�a . . end; function TACBrBancoSantander.DefineCaracTitulo(const ACBrTitulo: TACBrTitulo): String; begin with ACBrTitulo do begin case CaracTitulo of tcSimples : Result := '1'; {Cobran�a Simples (Sem Registro e Eletr�nica com Registro)} tcCaucionada : Result := '3'; {Cobran�a Caucionada (Eletr�nica com Registro e Convencional com Registro)} tcDescontada : Result := '4'; {Cobran�a Descontada (Eletr�nica com Registro)} tcVinculada, tcDireta, tcSimplesRapComReg : Result := '5'; {Cobran�a Simples (R�pida com Registro)} tcCaucionadaRapComReg: Result := '6'; {Cobran�a Caucionada (R�pida com Registro)} { TODO : 8 = Cobranca Cessao (Eletronica com Registro) } else Result := '1'; end; end; end;1 ponto
-
Provavelmente não conseguiria, mas como não passou essa informação antes, não tínhamos como saber se estavam corretas. Após carregar o XML, gera um item na lista? Tente debugar a leitura do XML para identificar o motivo de não carregar os dados. ../trunk2/Fontes/ACBrDFe/ACBrNFSeX/Provedores/Giap.LerXml.pas function TNFSeR_Giap.LerXml: Boolean; var1 ponto
-
with Prod.comb do begin cProdANP:= StrToInt(FrmCaixaNovo.CDSNFeDetalheCODANP.AsString) ; descANP := FDataModule.RetornaDescANP(FrmCaixaNovo.CDSNFeDetalheDESCRICAO.AsString); pGLP := 100 ; pGNn := 0 ; pGNi := 0 ; vPart := FrmCaixaNovo.CDSNFeDetalheVALOR.AsFloat; UFcons := UFEmpresa; end; with Imposto do begin QtdeGas := (13 * FrmCaixaNovo.CDSNFeDetalheQTDE.AsFloat); vIcmsGas := RoundABNT(QtdeGas * 1.2571,2); qBCMonoRet := QtdeGas; adRemICMSRet := 1.2571; vICMSMonoRet := vIcmsGas; TotIcmsGas := TotIcmsGas + vIcmsGas; end;1 ponto
-
Boa tarde Lindomar, Pela sua imagem noto que você passou as informações do Tomador4. Lembre-se que devemos alimentar esses campos quando o tomador do serviço não for o Remetente (0), Expedidor (1), Recebedor (2) ou Destinatário (3). Neste caso se o tomador não nenhum dos 4 listados acima então é Outros (4). Notei que o campo Toma do Tomador4 esta com o valor zero, isso faz com que o componente entenda que o tomador é o Remetente da carga, logo não se faz necessário alimentar os dados do Tomador4. Repito, só alimentados o Tomador4 (não esqueça: Toma = 4) quando o tomador não é o Remetente, Expedidor, Recebedor e nem o Destinatário.1 ponto
-
1 ponto