-
Total de ítens
382 -
Registro em
-
Última visita
-
Days Won
1
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que matheusferreira postou
-
m-SiTef: Programa Exemplo - Android (Flutter)
um tópico no fórum postou matheusferreira TEF,PIX e Carteiras Digitais
Entendendo o projeto Android - Flutter Criamos um programa exemplo que se integra com o m-SiTef que você pode utilizar como base para o seu sistema Android (Flutter). m-SiTef O m-SiTef é um aplicativo desenvolvido pela Fiserv para a plataforma Android e funciona através da comunicação por Intents, ou seja, os dados são passados de uma aplicação (Programa exemplo) para outra (m-SiTef) pela própria Intent, sem a necessidade de um SDK ou outra solução para essa comunicação. Para entender melhor como funciona a comunicação entre aplicativos android por intents: https://medium.com/@ashfaque-khokhar/intent-in-android-00f7be3197c0. Exemplo de dados sendo transmitidos de Intent para outra intent. Intent intent = new Intent (getApplicationContext(), SecondActivity.class); intent.putExtra( "NAME" , "Ashu" ); intent.putExtra( "ID" , 21 ); startActivity(intent); Para se integrar ao m-SiTef devemos passar os dados da forma como estão descritos no guia de integração, que você pode encontrar completo aqui: https://dev.softwareexpress.com.br/docs/m-sitef/m-SiTef/ Projeto O nosso projeto de integração está no nosso GitHub: https://github.com/Projeto-ACBr-Oficial/acbr-sitef-flutter Antes de clonar o projeto e rodar, não se esqueça de iniciar o SitDemo e estar com o APK do m-SiTef instalado no terminal Android que fará os testes. Saiba mais sobre estes processos: Para conseguir rodar corretamente o nosso programa exemplo você precisa configurar alguns campos passados ao aplicativo do m-SiTef: Endereço IP do SitDemo CNPJ ou CPF CNPJ da Automação Utilize a tela de configuração da aplicação: Entendendo o projeto O Flutter não possui nativamente no lado Dart uma API interna que replique diretamente o comportamento de "mão dupla" das Intents do Android, como o startActivityForResult seguido pelo onActivityResult. Como o Flutter é projetado para ser multiplataforma, ele não expõe nativamente essas entranhas específicas do sistema operacional; por isso, para capturar o retorno de dados de outro aplicativo, você precisa obrigatoriamente recorrer ao MethodChannel. Ele funciona como uma ponte de comunicação essencial, permitindo que você saia do ambiente Dart para executar o comando de busca de dados no Kotlin ou Java e, assim que o sistema Android processar a resposta, essa informação seja transmitida de volta para a sua interface de forma assíncrona. Para entender melhor como funciona o MethodChannel: https://medium.com/kobe-tech/methodchannel-como-executar-código-nativo-no-flutter-8d02f6bb79a3 Por isso, você deverá necessariamente fazer a ponte entre sua aplicação dart e o código nativo (Java ou Kotlin) para a comunicação com a aplicação do m-SiTef. Do lado Dart a classe importante, que chama o lado Kotlin é: lib/data/msitef/msitef_payment_processor.dart Nela chamamos uma função específica do lado kotlin e aguardamos de forma assíncrona a resposta. Do lado Kotlin é onde ocorre a chamada, que no nosso projeto é feito na MainActivity (Tela principal) onde o motor da UI do Flutter atua. android/app/src/main/kotlin/com/mjtech/fintesthub/flutter/fintesthub_flutter/MainActivity.kt É nela que mapeamos os parâmetros passados ao aplicativo do m-SiTef. Fora esta classe, temos: android/app/src/main/kotlin/com/mjtech/fintesthub/flutter/fintesthub_flutter/payment/MSitefPaymentUtils.kt Classe utilizada para as funções auxiliares referentes ao mapeamento de parâmetros. android/app/src/main/kotlin/com/mjtech/fintesthub/flutter/fintesthub_flutter/payment/MSitefPayment.kt Classe de dados criada a partir do mapping vindo do Dart. android/app/src/main/kotlin/com/mjtech/fintesthub/flutter/fintesthub_flutter/payment/MSitefResponse.kt Classe de dados criada a partir da resposta do aplicativo m-SiTef. Menu administrativo O menu administrativo está na tela de configurações e é uma importante funcionalidade que deve ter na sua aplicação para acessar as principais funções como cancelamento, reimpressão, teste de comunicação, etc. O mapeamento dos campos passados para a chamada do menu administrativo fica na tela principal do lado Kotlin: android/app/src/main/kotlin/com/mjtech/fintesthub/flutter/fintesthub_flutter/MainActivity.kt Já a chamada do lado dart e a captura do retorno vindo do lado kotlin é feita na classe: lib/data/msitef/admin/msitef_admin_action.dart Roteiro de pré-homologação Uma etapa importante do processo de desenvolvimento e homologação é o roteiro de pré-homologação. Algumas etapas do roteiro de testes exigem valores exatos como R$25.000 ou R$15,00 e a troca de alguns campos de configurações, foi pensando nestes testes que fizemos este programa exemplo, onde você consegue informar o valor exato na tela de pagamento e modificar os campos de configuração em tempo de execução. Fluxo de pagamento: Esta aplicação já passou pelo roteiro de teste de pré-homologação e você pode utilizar como base para o seu projeto. Em nosso curso -> T.E.F e Meios de Pagamentos, já estão disponíveis as aulas sobre o Pré-Roteiro de Homologação - MSiTef. _________________________________________________________________ Referências - Toda a integração foi guiada pela documentação oficial disponibilizada pela própria Fiserv no link: https://dev.softwareexpress.com.br/docs/m-sitef/m-SiTef/ Estamos disponíveis para qualquer dúvida ou sugestão. -
m-SiTef: Programa Exemplo - Android (Kotlin)
um tópico no fórum postou matheusferreira TEF,PIX e Carteiras Digitais
Entendendo o projeto Android - Kotlin Criamos um programa exemplo que se integra com o m-SiTef que você pode utilizar como base para seu sistema Android (Kotlin ou Java). m-SiTef O m-SiTef é um aplicativo desenvolvido pela Fiserv para a plataforma Android e funciona através da comunicação por Intents, ou seja, os dados são passados de uma aplicação (Programa exemplo) para outra (m-SiTef) pela própria Intent, sem a necessidade de um SDK ou outra solução para essa comunicação. Para entender melhor como funciona a comunicação entre aplicativos android por intents: https://medium.com/@ashfaque-khokhar/intent-in-android-00f7be3197c0. Exemplo de dados sendo transmitidos de Intent para outra intent. Intent intent = new Intent (getApplicationContext(), SecondActivity.class); intent.putExtra( "NAME" , "Ashu" ); intent.putExtra( "ID" , 21 ); startActivity(intent); Para se integrar ao m-SiTef devemos passar os dados da forma como estão descritos no guia de integração, que você pode encontrar completo aqui: https://dev.softwareexpress.com.br/docs/m-sitef/m-SiTef/ Projeto O nosso projeto de integração está no nosso GitHub: https://github.com/Projeto-ACBr-Oficial/acbr-sitef-android Antes de clonar o projeto e rodar, não se esqueça de iniciar o SitDemo e estar com o APK do m-SiTef instalado no terminal Android que fará os testes. Saiba mais sobre estes processos: Para conseguir rodar corretamente o nosso programa exemplo você precisa configurar alguns campos passados ao aplicativo do m-SiTef: Endereço IP do SitDemo CNPJ ou CPF CNPJ da Automação Utilize a tela de configuração da aplicação: Entendendo o projeto O core desta integração está na classe fiserv/msitef/src/main/java/com/mjtech/fiserv/msitef/payment/MSitefPaymentProcessor.kt Nesta classe é feito o mapeamento de todos os campos necessários para fazer os pagamentos na função Débito, Crédito (Á vista e parcelado), Pix e Voucher. Outra classe importante é a fiserv/msitef/src/main/java/com/mjtech/fiserv/msitef/payment/MSitefPaymentActivity.kt. Esta classe é responsável por abrir o APP do m-SiTef e receber e mapear o resultado retornado pelo m-SiTef acionando o callback conforme o retorno recebido. Menu administrativo O menu administrativo está na tela de configurações e é uma importante funcionalidade que deve ter na sua aplicação para acessar as principais funções como cancelamento, reimpressão, teste de comunicação, etc. O core do mapeamento dos parâmetros referente ao menu administrativo está nesta classe: fiserv/msitef/src/main/java/com/mjtech/fiserv/msitef/settings/MSitefAdminHandler.kt Já a classe fiserv/msitef/src/main/java/com/mjtech/fiserv/msitef/settings/MSitefAdminActivity.kt é responsável por chamar o aplicativo do m-SiTef passando os parâmetros necessários e responsável por capturar o retorno. Roteiro de pré-homologação Uma etapa importante do processo de desenvolvimento e homologação é o roteiro de pré-homologação. Algumas etapas do roteiro de testes exigem valores exatos como R$25.000 ou R$15,00 e a troca de alguns campos de configurações, foi pensando nestes testes que fizemos este programa exemplo, onde você consegue informar o valor exato na tela de pagamento e modificar os campos de configuração em tempo de execução. Fluxo de pagamento: Esta aplicação já passou pelo roteiro de teste de pré-homologação e você pode utilizar como base para o seu projeto. Em nosso curso -> T.E.F e Meios de Pagamentos, já estão disponíveis as aulas sobre o Pré-Roteiro de Homologação - MSiTef. _________________________________________________________________ Referências - Toda a integração foi guiada pela documentação oficial disponibilizada pela própria Fiserv no link: https://dev.softwareexpress.com.br/docs/m-sitef/m-SiTef/ Estamos disponíveis para qualquer dúvida ou sugestão. -
ACBR-8548 Mudança de provedor da cidade Itaí - SP
matheusferreira replied to Ike's tópico in ACBrNFSe
Alteração já esta no svn - 44265 Obrigado pela contribuição. -
[ACBR-8738] Código CIB grupo de obras
matheusferreira replied to Paulo Alexandre Hostert 's tópico in ACBrNFSe
Obrigado pela contribuição, em breve será validada para possível inclusão ao svn. Tarefa ACBR-8738. -
Caracteres especiais PDF ACBrLibNFSe linux console MT
matheusferreira replied to 4gsmart's tópico in ACBrLIB
Tópico fechado por falta de retorno do usuário -
[ACBR-8599] Emissão de NFSe pelo ACBrLibNFSe para o provedor Tecnos
matheusferreira replied to Mateus Brunelli's tópico in ACBrLIB
Bom dia @Mateus Brunelli, verificando os fontes aqui vai ser necessário subir uma correção. Foi criada a tarefa ACBR-8599 para correção. -
[ACBR-8599] Emissão de NFSe pelo ACBrLibNFSe para o provedor Tecnos
matheusferreira replied to Mateus Brunelli's tópico in ACBrLIB
Olá! Nossa equipe está dedicada a oferecer as melhores soluções para nossos assinantes e comunidade. Pedimos que aguarde um instante, em breve um de nossos consultores lhe retornará. Se a sua solicitação exigir uma análise mais detalhada, por favor anexe evidências e informações que possam nos ajudar a entender melhor seu caso. Agradecemos sua compreensão . -
NFS-e São Paulo com ACBrLib: Arquivo não está sendo carregado
matheusferreira replied to Hunes's tópico in ACBrLIB
Tópico fechado por falta de retorno do usuário -
AcbrLibNFSE - Dúvida IBS/CBS - Padrão ABRASF
matheusferreira replied to Cleber Melo 's tópico in ACBrLIB
Olá! Nossa equipe está dedicada a oferecer as melhores soluções para nossos assinantes e comunidade. Pedimos que aguarde um instante, em breve um de nossos consultores lhe retornará. Se a sua solicitação exigir uma análise mais detalhada, por favor anexe evidências e informações que possam nos ajudar a entender melhor seu caso. Agradecemos sua compreensão . -
Olá! Nossa equipe está dedicada a oferecer as melhores soluções para nossos assinantes e comunidade. Pedimos que aguarde um instante, em breve um de nossos consultores lhe retornará. Se a sua solicitação exigir uma análise mais detalhada, por favor anexe evidências e informações que possam nos ajudar a entender melhor seu caso. Agradecemos sua compreensão .
-
Erro ao Salvar as configurações - ACBrLibNFSe - 2.0.1.218
matheusferreira replied to tdressano 's tópico in ACBrLIB
Tópico fechado por falta de retorno do usuário -
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
-
Bom dia @Alessandro_dev, tudo certo? Você está utilizando lib, componente ou monitor? Você pode alterar estes dois campos: Seção DANFE: TipoDANFE = 4 Seção NFe: ModeloDF= 1 A documentação completa com campos e parametros você pode encontrar em: https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html Me avise se deu certo os testes alterando os campos mencionados.
-
SiTef: Guia para Integração com m-SiTef no Android
um tópico no fórum postou matheusferreira TEF,PIX e Carteiras Digitais
Olá comunidade Gostaria de compartilhar com todos vocês um guia de integração com o m-SiTef da Fiserv no Android. Sobre o ACBr O ACBr é Distribuidor dos produtos e serviços da FISERV Temos condições exclusivas para a comunidade do ACBr, Somos autoridade em TEF. Confira o nosso curso completo, sobre TEF e Meios de Pagamentos Tenha acesso ao nosso Suporte, Demos e Cursos, inscrevendo-se na página: https://projetoacbr.com.br/tef/ Sobre a FISERV A Fiserv é uma líder global em tecnologia para serviços financeiros e pagamentos, presente em mais de 100 países e com mais de 40 anos de atuação. O SiTef (Sistema Inteligente de Transferência Eletrônica de Fundos) é uma solução TEF desenvolvida pela Fiserv para integrar pagamentos eletrônicos diretamente aos sistemas de automação comercial (PDV, ERP, e-commerce). Ele é considerado líder no mercado brasileiro e movimenta bilhões de transações por ano. Sendo o mais aceito, e compatível dos TEFs do mercado Brasileiro O que é o m-SiTef? O m-SiTef é um aplicativo desenvolvido pela Fiserv para a plataforma Android, tanto em celular ou tablet como em POS, que realiza transações (TEF) através do servidor SiTef. https://dev.softwareexpress.com.br/docs/m-sitef/m-SiTef/ Requisitos Mínimos O m-SiTef é compatível com Android versão 4.4ou superior. Características Gerais do m-SiTef Antes de apresentar as formas de integração, descreveremos neste capítulo as características gerais do m-SiTef. Ele disponibiliza para o integrador as mesmas funcionalidades da CliSiTef, descritas no documento "SiTef - Interface Simplificada com a aplicação", na Tabela de códigos de funções. Para executar as funções, é obrigatório enviar 4 parâmetros ao m-SiTef: empresaSitef, enderecoSitef, modalidade e CNPJ_CPF. Para a modalidade 0, também é obrigatório o parâmetro valor. data class MSitefConfig( val empresaSitef: String, val enderecoSitef: String, val modalidade: String, val cnpjCpf: String, val valor: String? = null // obrigatório para modalidade 0 ) { fun toIntent(): Intent { return Intent("br.com.softwareexpress.sitef.msitef.ACTIVITY_CLISITEF").apply { putExtra("empresaSitef", empresaSitef) putExtra("enderecoSitef", enderecoSitef) putExtra("modalidade", modalidade) putExtra("CNPJ_CPF", cnpjCpf) valor?.let { putExtra("valor", it) } } } } Importante: Todos os parâmetros apresentados neste documento em trechos de código são apenas ilustrativos e devem ser substituídos por valores válidos. A seguir, estão listados todos os parâmetros aceitos na aplicação. Tabela 1 - Parâmetros de entrada do m-SiTef Parâmetro Tipo Descrição empresaSitef Obrigatório Empresa SiTef. Tamanho de 8 dígitos alfanuméricos. enderecoSitef Obrigatório Endereço dos servidores do SiTef. Pode conter 1 a 3 endereços separados por ;. Formato: IP, IP:PORTA ou NOME:PORTA. Porta padrão: 4096. Não informar URL. terminalSitef Opcional Número de terminal SiTef. Se não informado, o m-SiTef usará o número de série do APOS ou o UUID do aparelho Android. modalidade Obrigatório Funcionalidade da CliSiTef. Ex: 0 = Pagamento, 200 = Cancelamento, 114 = Reimpressão. CNPJ_CPF Obrigatório CNPJ ou CPF do estabelecimento, sem caracteres especiais. valor Obrigatório p/ pagamento Valor da venda. Numérico até 12 dígitos, sendo os 2 últimos decimais. operador Opcional Código do operador. Alfanumérico até 20 caracteres. Data Obrigatório Data fiscal no formato AAAAMMDD. Hora Obrigatório Hora fiscal no formato HHMMSS. numeroCupom Obrigatório Número do cupom fiscal. Alfanumérico até 20 caracteres. numParcelas Opcional Número de parcelas em caso de compra parcelada. restricoes Opcional Opções de pagamento que não aparecerão no fluxo. Formato: <Opção>;<Opção>;... transacoesHabilitadas Opcional Opções de pagamento que serão habilitadas. Formato: {<Func1>;<Func2>;...} comExterna Obrigatório Define qual serviço TLS será usado: 0 = Sem TLS, 1 = TLS Software Express, 2 = TLS WNB Comnect, 3 = TLS Gsurf, 4 = TLS GWP (Fiserv). isDoubleValidation Obrigatório p/ TLS SE 0 = validação simples, 1 = validação dupla. cnpj_automacao Obrigatório CNPJ da empresa que desenvolveu a automação comercial. cnpj_facilitador Obrigatório CNPJ do Facilitador (Van). timeoutColeta Opcional Tempo de timeout em segundos para coletas. Padrão: 60s. Valor 0 ou negativo desativa o timeout. pinpadMac Opcional MAC Address Bluetooth do Pinpad. Formato: 00:00:00:00:00:00. tipoPinpad Obrigatório p/ USB ANDROID_USB = pinpad USB. ANDROID_BT = pinpad Bluetooth. acessibilidadeVisual Opcional 0 = desabilitado (padrão), 1 = habilitado. Ativa fontes maiores, alto contraste e text-to-speech. otp Opcional Código obrigatório quando utilizada comunicação com TLS GSurf. dadosSubAdqui Opcional Informações complementares para personalizar o que será impresso na fatura do comprador. tipoCampos Opcional Permite informar valores pré-determinados para campos solicitados pela CliSiTef. Formato JSON: {"campo1":"val1", "campo2":"val2"}. clsit Opcional Para adicionar, atualizar ou remover campos do arquivo de configuração CLSIT. Público-Alvo Parceiros que desenvolvam para Android, e desejam se integrar com o SiTef via m-SiTef, usando Intents. Como iniciar? Possuímos programa exemplo para Android Nativo (Kotlin) e Flutter de onde partiremos para explicarmos o passo a passo de como integrar o m-SiTef em seu projeto/solução. Etapas Para que você consiga testar em nossos programas exemplos siga as etapas abaixo primeiramente. Integração O primeiro passo é instanciar um objeto Intent passando o nome da aplicação como argumento: br.com.softwareexpress.sitef.msitef.ACTIVITY_CLISITEF. Através dessa informação, o Android buscará automaticamente o m-SiTef entre os aplicativos instalados no dispositivo. Em seguida, devem ser configurados os parâmetros obrigatórios através da função putExtra(String, String). Por fim, é executada a função startActivityForResult(Intent, int) passando o objeto Intent e um número inteiro arbitrário como ID (neste documento usaremos 1234). Menu Administrativo: val intent = Intent("br.com.softwareexpress.sitef.msitef.ACTIVITY_CLISITEF").apply { putExtra("empresaSitef", "00000001") putExtra("enderecoSitef", "127.0.0.1") putExtra("modalidade", "110") putExtra("CNPJ_CPF", "12345678912345") } startActivityForResult(intent, 1234) Exemplo Pagamento: val intent = Intent("br.com.softwareexpress.sitef.msitef.ACTIVITY_CLISITEF").apply { putExtra("empresaSitef", "00000001") putExtra("enderecoSitef", "127.0.0.1") putExtra("operador", "0001") putExtra("data", "20140312") putExtra("hora", "150000") putExtra("numeroCupom", "1") putExtra("modalidade", "0") putExtra("valor", "9000") putExtra("CNPJ_CPF", "12345678912345") putExtra("timeoutColeta", "30") putExtra("comExterna", "0") } startActivityForResult(intent, 1234) Exemplo Pagamento Débito à vista: val intent = Intent("br.com.softwareexpress.sitef.msitef.ACTIVITY_CLISITEF").apply { putExtra("empresaSitef", "00000001") putExtra("enderecoSitef", "127.0.0.1") putExtra("operador", "0001") putExtra("data", "20140312") putExtra("hora", "150000") putExtra("numeroCupom", "1") putExtra("modalidade", "2") putExtra("valor", "9000") putExtra("restricoes", "TransacoesHabilitadas=16") putExtra("CNPJ_CPF", "12345678912345") putExtra("timeoutColeta", "30") putExtra("comExterna", "0") } startActivityForResult(intent, 1234) Exemplo Pagamento Crédito à vista: val intent = Intent("br.com.softwareexpress.sitef.msitef.ACTIVITY_CLISITEF").apply { putExtra("empresaSitef", "00000001") putExtra("enderecoSitef", "127.0.0.1") putExtra("operador", "0001") putExtra("data", "20140312") putExtra("hora", "150000") putExtra("numeroCupom", "1") putExtra("numParcelas", "1") putExtra("modalidade", "3") putExtra("valor", "9000") putExtra("restricoes", "TransacoesHabilitadas=26") putExtra("CNPJ_CPF", "12345678912345") putExtra("timeoutColeta", "30") putExtra("comExterna", "0") } startActivityForResult(intent, 1234) Exemplo Pagamento Crédito parcelado: val intent = Intent("br.com.softwareexpress.sitef.msitef.ACTIVITY_CLISITEF").apply { putExtra("empresaSitef", "00000001") putExtra("enderecoSitef", "127.0.0.1") putExtra("operador", "0001") putExtra("data", "20140312") putExtra("hora", "150000") putExtra("numeroCupom", "1") putExtra("numParcelas", "3") putExtra("modalidade", "3") putExtra("valor", "9000") putExtra("restricoes", "TransacoesHabilitadas=27") putExtra("CNPJ_CPF", "12345678912345") putExtra("timeoutColeta", "30") putExtra("comExterna", "0") } startActivityForResult(intent, 1234) Exemplo Transação PIX: Opção 1 - Pelo menu carteiras digitais (Modalidade 0) val intent = Intent("br.com.softwareexpress.sitef.msitef.ACTIVITY_CLISITEF").apply { putExtra("empresaSitef", "00000001") putExtra("enderecoSitef", "127.0.0.1") putExtra("modalidade", "0") putExtra("CNPJ_CPF", "12345678912345") putExtra("cnpj_automacao", "12345678912345") putExtra("transacoesHabilitadas", "7;8;") } startActivityForResult(intent, 1234) Opção 2 - Chamando PIX diretamente (Modalidade 122) val intent = Intent("br.com.softwareexpress.sitef.msitef.ACTIVITY_CLISITEF").apply { putExtra("empresaSitef", "00000001") putExtra("enderecoSitef", "127.0.0.1") putExtra("modalidade", "122") putExtra("CNPJ_CPF", "12345678912345") putExtra("cnpj_automacao", "12345678912345") putExtra("transacoesHabilitadas", "7;8;") putExtra("restricoes", "CarteirasDigitaisHabilitadas=027160110024") } startActivityForResult(intent, 1234) Exemplo Cancelamento: val intent = Intent("br.com.softwareexpress.sitef.msitef.ACTIVITY_CLISITEF").apply { putExtra("empresaSitef", "00000001") putExtra("enderecoSitef", "127.0.0.1") putExtra("modalidade", "200") putExtra("CNPJ_CPF", "12345678912345") } startActivityForResult(intent, 1234) O campo cnpj_automacao é de extrema importância — é através dele que a Fiserv reconhece o estabelecimento para o repasse financeiro. Retorno do m-SiTef Após a execução, o m-SiTef retorna ao app que o acionou através do método onActivityResult. O resultCode indica o status: RESULT_OK (-1) = sucesso ou RESULT_CANCELED (0) = cancelado. Tabela 2 - Parâmetros de saída do m-SiTef Parâmetro Descrição CODRESP Código de resposta da transação. COMP_DADOS_CONF Dados para confirmação da transação na CliSiTef. CODTRANS Código da transação: 00 = Cheque, 01 = Débito, 02 = Crédito. TIPO_PARC 00 = À vista, 01 = Pré-Datado, 02 = Parc. Estabelecimento, 03 = Parc. Administradora. REDE_AUT Rede autorizadora da transação. BANDEIRA Bandeira do cartão utilizado. NSU_SITEF NSU do servidor SiTef. NSU_HOST NSU do Host Autorizador. COD_AUTORIZACAO Código de autorização (somente crédito). NUM_PARC Quantidade de parcelas. Ausente ou 0/1 = à vista. VIA_ESTABELECIMENTO Cupom da via do estabelecimento. VIA_CLIENTE Cupom da via do cliente. VLTROCO Valor aprovado para troco (quando aplicável). TIPO_CAMPOS JsonObject com todos os campos da transação CliSiTef. Tabela 3 - Valores do CODRESP CODRESP Descrição 0 Sucesso. 1 Endereço IP inválido ou não resolvido. 2 Código da loja inválido. 3 Código de terminal inválido. 6 Erro na inicialização do Tcp/Ip. 7 Falta de memória. 8 CliSiTef não encontrada ou com problemas. 9 Configuração de servidores SiTef excedida. 10 Erro de acesso na pasta CliSiTef. 11 Dados inválidos passados pela automação. 12 Modo seguro não ativo. Outro positivo Negada pelo autorizador. -1 Módulo não inicializado. -2 Operação cancelada pelo operador. -3 Modalidade inexistente ou inválida. -4 Falta de memória no PDV. -5 Sem comunicação com o SiTef. -6 Operação cancelada pelo usuário no pinpad. -10 Parâmetro obrigatório não informado. -15 Operação cancelada pela automação comercial. -20 Parâmetro inválido. -40 Transação negada pelo servidor SiTef. -41 Dados inválidos. -43 Problema na execução de rotina no pinpad. -50 Transação não segura. -100 Erro interno do módulo. Outro negativo Erros detectados internamente. Exemplo de tratamento do retorno: override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == 1234) { if (resultCode == RESULT_OK) { println("CODRESP: " + data?.extras?.getString("CODRESP")) println("COMP_DADOS_CONF: " + data?.extras?.getString("COMP_DADOS_CONF")) println("CODTRANS: " + data?.extras?.getString("CODTRANS")) println("TIPO_PARC: " + data?.extras?.getString("TIPO_PARC")) println("REDE_AUT: " + data?.extras?.getString("REDE_AUT")) println("BANDEIRA: " + data?.extras?.getString("BANDEIRA")) println("NSU_SITEF: " + data?.extras?.getString("NSU_SITEF")) println("NSU_HOST: " + data?.extras?.getString("NSU_HOST")) println("COD_AUTORIZACAO: " + data?.extras?.getString("COD_AUTORIZACAO")) println("NUM_PARC: " + data?.extras?.getString("NUM_PARC")) println("VIA_ESTABELECIMENTO: " + data?.extras?.getString("VIA_ESTABELECIMENTO")) println("VIA_CLIENTE: " + data?.extras?.getString("VIA_CLIENTE")) } } } 🛜 Ambiente Para realizar as transações no m-SiTef você necessita de um endereço SiTef que pode ser emulado em sua máquina via SitDemo e o próprio m-SiTef instalado no terminal Android. Será necessário instalar o Emulador de SiTef em sua máquina, o SitDemo Se você já preencheu o formulário em https://projetoacbr.com.br/tef/ nossa equipe já lhe respondeu com um e-mail, com as instruções de como Baixar o SitDemo Acompanhe o processo de instalação do SitDemo, através desse vídeo abaixo: Após a instalação estar concluída, abra o SitDemo. APK do m-SiTef O APK do m-SiTef também será enviado a você pela equipe do ACBr, após o início da Parceria. É importante você nos informar, em qual dispositivo irá instalar o APK. Exemplos: Sumni P2 GPOS700 PAX A920 Newland N910 Ingenico DX8000 PDV D2 Mini com PinPad USB Os dispositivos do tipo SmartPOS, ou seja, com leitura de Cartão/Chip integrado, possuem segurança PCI. E isso requer que os aplicativos (APKs) sejam assinados com chaves específicas para poderem ser instalados nesses terminais. Por isso, existe uma versão específica de m-Sitef, para cada dispositivo SmartPOS Com o APK em mãos você deve instalar no terminal que irá fazer os testes... Projeto Atualmente possuímos exemplos de integração com o m-SiTef para Android Nativo com Kotlin e Flutter. Android (Kotlin) Clone o programa exemplo disponível no nosso GitHub: https://github.com/Projeto-ACBr-Oficial/acbr-sitef-android Após clonar o projeto em sua máquina, abra o na sua IDE (Android Studio, VS Code, etc.). Entendendo a integração: Flutter Clone o programa exemplo disponível no nosso GitHub: https://github.com/Projeto-ACBr-Oficial/acbr-sitef-flutter Após clonar o projeto em sua máquina, abra o na sua IDE (Android Studio, VS Code, etc.). Entendendo a integração: Rodar o projeto Após essas etapas e configurações você consegue rodar nosso programa exemplo integrando com o m-SiTef em um terminal Android. Roteiro Pré-Homologação m-SiTef Em nosso curso -> T.E.F e Meios de Pagamentos, já estão disponíveis as aulas sobre o Pré-Roteiro de Homologação - MSiTef. Referências - Toda a integração foi guiada pela documentação oficial disponibilizada pela própria Fiserv no link: https://dev.softwareexpress.com.br/docs/m-sitef/m-SiTef/ Estamos disponíveis para qualquer dúvida ou sugestão. -
Bom dia @Wiker Moura, analisando a documentação da API do inter, não possui a propriedade de abatimento para boleto. Abaixo anexei a documentação onde retirei esta informação. https://developers.inter.co/references/cobranca-bolepix
-
Boa tarde, no momento não temos integração com o banco Ailos/Viacredi por API no boleto e não temos uma previsão de implementação. No tópico abaixo, temos a lista de bancos que possui essa integração e ela é atualizada assim que uma nova integração é disponibilizada. Se você tiver disponível a documentação e desejar implementar, pode anexar os fontes aqui no fórum que iremos avaliar e ficaremos felizes com sua contribuição para a comunidade.
-
Rejeição Boleto Banco do Brasil Convênio 7 Dígitos
matheusferreira replied to Balbino_'s tópico in ACBrBoleto
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. -
Rejeição Boleto Banco do Brasil Convênio 7 Dígitos
matheusferreira replied to Balbino_'s tópico in ACBrBoleto
Bom dia Tente mudar o código destacado, colocando este trecho: Ao transformar em Int, o 0 a esquerda é "descartado". LJSONObject.AddPair('numeroConvenio', OnlyNumber(Boleto.Cedente.Convenio)); -
LibNFe -> Problema para Enviar e-mail de NFC-e A4
matheusferreira replied to Jamil Araujo's tópico in ACBrLIB
Bom dia, Queríamos informar que a TK-7191 está agora em testes de avaliação. Estamos trabalhando para identificar o problema e encontrar a solução o mais breve possível. Assim que tivermos novidades atualizaremos este tópico.
