Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 10-02-2022 em todas as áreas
-
A equipe de eventos do Projeto ACBr, tem muito prazer em comunicar a todos que vamos realizar Dia do ACBr em 2022! RESERVE ESTA DATA: 17/09/2022 O evento será realizado presencialmente no Parque Tecnológico de Sorocaba (PTS), onde encontramos um ambiente totalmente adequado para receber participantes de todo o Brasil. Com fácil acesso pela rodovia Castelo Branco, o Parque conta com ampla estrutura, e também é distante de centros urbanos, garantindo que a sua experiência seja imersiva e única. Palestras, networking, tendências, e MUITO MAIS. Só quem já participou, sabe como é idescritível. Fique atento, pois mais informações serão divulgadas em breve!5 pontos
-
Não é um ou outro. veja no manual que não pede ambos e é muita informação pra um papel que só acompanha enão tem valor fiscal2 pontos
-
O 1600 foi abolido. O 1601 foi incluído. Acho que o manual é claro o suficiente dizendo que o 1600 é válido até 31/12/2021, veja:2 pontos
-
https://sourceforge.net/p/acbr/code/HEAD/tree/trunk2/Fontes/ACBrDFe/ACBrNFSeX/ACBrNFSeXServicos.ini [4301602] Nome=Bage UF=RS Provedor=WebISS Versao=2.02 ProRecepcionar=https://bagers.webiss.com.br/ws/nfse.asmx HomRecepcionar=https://homologacao.webiss.com.br/ws/nfse.asmx2 pontos
-
Olá pessoal, estou criando este tópico para orientar como utilizar as Bandeiras Vouchers no TEF Dedicado (PayGo Web). Cartão do tipo benefícios (alimentação, refeição, pass), são conhecidos como Vouchers. Antes de qualquer tentativa de transacionar um voucher no estabelecimento, precisamos validar algumas informações: 1 - Estabelecimento precisa ter contrato com a empresa de voucher que deseja utilizar, isso é uma exigência do próprio fornecedor de voucher, para que o estabelecimento possa aceitar a bandeira em sua região. Note que existem modalidades até em casos de Voucher, ramos de negócios são separados por tipos, ALIMENTAÇÃO, REFEIÇÃO, PASS, PRESENTE, CAR, SALÁRIO, NATAL, CULTURA, etc. Seu cliente escolhe a modalidade que encaixa no negócio que ele atua: 2 - A partir disso, o estabelecimento precisa habilitar a compatibilidade com a(s) adquirente (s). Lembrando a Regra de negócio: a adquirente decide se a bandeira tem compatibilidade no TEF, a negociação parte dela, não pela Integradora PayGo. Quando o estabelecimento habilitar a compatibilidade do voucher tem que informar que vai transacionar pelo TEF Dedicado PayGoWeb. Exemplo: Adquirente CIELO aceita o voucher Alelo Alimentação pelo TEF Dedicado PayGoWeb. Observação: Isso é um contrato entre Voucher e Adquirente, então pode ocorrer mudanças , como por exemplo, VR Refeição não passa mais na REDE pois houve encerramento de contrato entre elas , mas pode ser aceito por outra(s) adquirente(s), como a CIELO. 3 - Se o estabelecimento estiver com o cadastro correto no voucher e habilitado na adquirente, precisamos informar a forma de pagamento correta, no TEF Dedicado (PayGoWeb) para pagamentos com voucher informar PWINFO_CARDTYPE = 04. Veja exemplo no componente ACBrTEFAPI: procedure TFormPrincipal.AdicionarPagamento(const Indice: String; AValor: Double ); var Ok, TemTEF: Boolean; Modalidade: TACBrTEFModalidadePagamento; CartoesAceitos: TACBrTEFTiposCartao; ReajusteValor: Double; IndicePagto: LongInt; begin Ok := False; TemTEF := False; IndicePagto := StrToIntDef(Indice, 0); try // ** NOTA ** // Usa '01' como Indice de Forma de Pagamento de ECF, para todas as operações TEF, // para evitar que o ACBrTEFD tente separar os Comprovantes por Forma de Pagamento Modalidade := tefmpNaoDefinido; CartoesAceitos := []; TemTEF := (IndicePagto >= 2) and (IndicePagto <= 5); case IndicePagto of 2: Modalidade := tefmpCheque; 3: begin Modalidade := tefmpCartao; CartoesAceitos := [teftcCredito] end; 4: begin Modalidade := tefmpCartao; CartoesAceitos := [teftcDebito] end; 5: Modalidade := tefmpCarteiraVirtual; 6: begin Modalidade := tefmpCartao; CartoesAceitos := [teftcVoucher] <--------------------- AQUI end; end; if TemTEF then begin // -- Exemplo, usando TypeCast, para inserir Propriedades direto na Classe de TEF -- // if ACBrTEFAPI1.TEF is TACBrTEFAPIClassPayGoWeb then begin with TACBrTEFAPIClassPayGoWeb(ACBrTEFAPI1.TEF) do begin //TEFPayGoAPI.ParametrosAdicionais.ValueInfo[PWINFO_AUTHSYST] := 'DEMO'; // Autorizador //TEFPayGoAPI.ParametrosAdicionais.ValueInfo[PWINFO_FINTYPE] := '2'; // 01: à vista, 2: parcelado //TEFPayGoAPI.ParametrosAdicionais.ValueInfo[PWINFO_INSTALLMENTS] := '3'; // Parcelas end; end; Ok := ACBrTEFAPI1.EfetuarPagamento( IntToStr(Venda.NumOperacao), AValor, Modalidade, CartoesAceitos, tefmfAVista ); Ok := Ok and ACBrTEFAPI1.UltimaRespostaTEF.Sucesso and ACBrTEFAPI1.UltimaRespostaTEF.TransacaoAprovada; end else Ok := True; finally StatusVenda := stsEmPagamento; end; // -- Exemplo de como capturar os Erros retornados pela API do TEF PayGoWeb -- // (* if not OK then begin if (ACBrTEFAPI1.TEF is TACBrTEFAPIClassPayGoWeb) then begin CodErro := ACBrTEFAPI1.UltimaRespostaTEF.LeInformacao(PWINFO_RET).AsInteger; MsgErro := ACBrTEFAPI1.UltimaRespostaTEF.LeInformacao(PWINFO_RESULTMSG).AsBinary; ShowMessage('Erro: '+IntToStr(CodErro)+' - '+Trim(MsgErro)); end; end; *) if Ok then begin with Venda.Pagamentos.New do begin TipoPagamento := Indice; ValorPago := AValor; if TemTEF then begin NSU := ACBrTEFAPI1.UltimaRespostaTEF.NSU; Rede := ACBrTEFAPI1.UltimaRespostaTEF.Rede; RedeCNPJ := ACBrTEFAPI1.UltimaRespostaTEF.NFCeSAT.CNPJCredenciadora; // Calcula a Diferença do Valor Retornado pela Operação TEF do Valor que // Informamos no CRT/CHQ ReajusteValor := RoundTo(Double(ACBrTEFAPI1.UltimaRespostaTEF.ValorTotal - ValorPago), -2); Saque := ACBrTEFAPI1.UltimaRespostaTEF.Saque; if (Saque > 0) then begin // Se houve Saque na operação TEF, devemos adicionar no ValorPago, // para que o Saque conste como Troco ValorPago := ValorPago + Saque end else if (ReajusteValor > 0) then begin // Se não é Saque, mas houve acréscimo no valor Retornado, devemos lançar // o Reajuste como Acréscimo na venda Venda.TotalAcrescimo := Venda.TotalAcrescimo + ReajusteValor; end; Desconto := ACBrTEFAPI1.UltimaRespostaTEF.Desconto; if (Desconto > 0) then begin // Se houve Desconto na Operação TEF, devemos subtrair do ValorPago // e lançar um Desconto no Total da Transacao ValorPago := ValorPago - Desconto; Venda.TotalDesconto := Venda.TotalDesconto + Desconto; end else if (ReajusteValor < 0) then begin // Se não é Desconto, mas houve redução no Valor Retornado, devemos // considerar a redução no ValorPago, pois a Adquirente limitou o // valor da Operação, a um máximo permitido... Deverá fechar o cupom, // com outra forma de Pagamento ValorPago := ValorPago + ReajusteValor; end; end else Confirmada := True; end; AtualizarPagamentosVendaNaInterface; if (Venda.TotalPago >= Venda.TotalVenda) then FinalizarVenda; end; end; Veja exemplo no componente ACBrTEFD: procedure TFormPrincipal.AdicionarPagamento(const Indice: String; AValor: Double ); var Ok, TemTEF: Boolean; ReajusteValor: Double; UltResp: TACBrTEFResp; procedure InformarParametrosVoucher; begin if (ACBrTEFD1.GPAtual = gpPayGoWeb) then begin ACBrTEFD1.TEFPayGoWeb.ParametrosAdicionais.ValueInfo[PWINFO_PAYMNTTYPE]:='1'; ACBrTEFD1.TEFPayGoWeb.ParametrosAdicionais.ValueInfo[PWINFO_CARDTYPE]:='04'; <----------------------- AQUI end; end; begin Ok := False; TemTEF := False; FIndicePagto := Indice; if (ACBrTEFD1.GPAtual = gpPayGoWeb) then ACBrTEFD1.TEFPayGoWeb.ParametrosAdicionais.Clear else if (ACBrTEFD1.GPAtual = gpCliSiTef) then ACBrTEFD1.TEFCliSiTef.OperacaoCRT := 0; try // ** NOTA ** // Usa '01' como Indice de Forma de Pagamento de ECF, para todas as operações TEF, // para evitar que o ACBrTEFD tente separar os Comprovantes por Forma de Pagamento else if (Indice = '06') then // 05-VALE REFEICAO begin InformarParametrosVoucher; <--------------------------- AQUI Ok := ACBrTEFD1.CRT(AValor, '01'); TemTEF := True; end else Ok := True; // Pagamentos não TEF finally StatusVenda := stsEmPagamento; end; if Ok then begin with Venda.Pagamentos.New do begin TipoPagamento := Indice; ValorPago := AValor; if TemTEF then begin UltResp := ACBrTEFD1.RespostasPendentes[ACBrTEFD1.RespostasPendentes.Count-1]; NSU := UltResp.NSU; Rede := UltResp.Rede; RedeCNPJ := UltResp.NFCeSAT.CNPJCredenciadora; // Calcula a Diferença do Valor Retornado pela Operação TEF do Valor que // Informamos no CRT/CHQ ReajusteValor := RoundTo(Double(UltResp.ValorTotal - ValorPago), -2); Saque := UltResp.Saque; if (Saque > 0) then begin // Se houve Saque na operação TEF, devemos adicionar no ValorPago, // para que o Saque conste como Troco ValorPago := ValorPago + Saque end else if ReajusteValor > 0 then begin // Se não é Saque, mas houve acréscimo no valor Retornado, devemos lançar // o Reajuste como Acréscimo na venda Venda.TotalAcrescimo := Venda.TotalAcrescimo + ReajusteValor; end; Desconto := UltResp.Desconto; if Desconto > 0 then begin // Se houve Desconto na Operação TEF, devemos subtrair do ValorPago // e lançar um Desconto no Total da Transacao ValorPago := ValorPago - Desconto; Venda.TotalDesconto := Venda.TotalDesconto + Desconto; end else if (ReajusteValor < 0) then begin // Se não é Desconto, mas houve redução no Valor Retornado, devemos // considerar a redução no ValorPago, pois a Adquirente limitou o // valor da Operação, a um máximo permitido... Deverá fechar o cupom, // com outra forma de Pagamento ValorPago := ValorPago + ReajusteValor; end; end else Confirmada := True; end; AtualizarPagamentosVendaNaInterface; if (Venda.TotalPago >= Venda.TotalVenda) then FinalizarVenda; end; end; 4 - Se continuar recusando ou dando erros durante a venda... Faça uma carga de tabelas no Muxx manualmente na PayGo, contate a Central de suporte do TEF PayGo, podem receber atendimento gratuito e funciona 24 horas por dia e 7 dias por semana! Contato PayGo Ligação: 3003-9968 (não é necessário DDD). Ou via WhatsApp: (11) 3003-6615 Importante sempre informar o *CNPJ do estabelecimento*, sem pontos ou traços. Ex: 12345678000100 , e o tipo do TEF ativado na automação: TEF Dedicado PayGo Web . Se você já parceiro TEF do Projeto ACBr pode esclarecer suas dúvidas nos canais exclusivos ACBR TEF #tefproducao em nosso Discord. https://www.projetoacbr.com.br/discord E se ainda não é, O Projeto ACBr é Distribuidor do TEF PayGo.. Seja nosso parceiro, preencha este formulário, https://projetoacbr.com.br/tef/ por favor, com algumas perguntas rapidinhas, que nosso Consultor comercial entrara em contato explicar a parceria.1 ponto
-
A tag ageIntegracao ela tem apenas um campo dentro dela na versão 1.0, entretanto na 2.5 tinham muitas outras e a geração não estava diferenciando quando é para gerar todos os campos ou não. Em anexo segue o código com a geração identificando quando é 1.0. 1.0 2.5 pcesS2306.pas1 ponto
-
1 ponto
-
1 ponto
-
1 ponto
-
José baixei instalei !! com a versão que Eu estava usando gerava normal ... mas com esta esta dando erro EACBrSATErro - Erro ao carregar a função: AssociarAssinatura na Biblioteca: C:\ACBrMonitorPLUS\DLLSAT.DLL Erro ao carregar a função: AssociarAssinatura na Biblioteca: C:\ACBrMonitorPLUS\DLLSAT.DLL baixei a Verão 32 bits... funcionou 100%1 ponto
-
Bom dia var StreamFile : TBytesStream; begin StreamFile := TBytesStream.Create(TNetEncoding.Base64.DecodeStringToBytes('base64_aqui'); StreamFile.SaveToFile('C:\localho\meuarquivo.pdf'); end; Funciona para qualquer arquivo1 ponto
-
1 ponto
-
Bom dia pessoal, Mesmo não tendo ninguém dentro do ACBr atuando neste banco, vcs podem se basear no que ja foi implementado e ir criando o recurso no componente e ao final nos enviar se desejarem...asssim vocês contribuem com o projeto e com a comunidade. Att.1 ponto
-
Bom dia, Sergio Pesquisando na internet consegui resolver (pelo menos ta compilando o projeto) da seguinte forma : No forma principal que estava acusando o erro , cliquei com direito e desmarquei a opção : Text DFM ***projeto tem : NF-e, MDF-e, CT-e Agora interessante que isso aconteceu após ontem a noite instalar nova versão do acbr. Obrigado1 ponto