Versões
Histórico de versões e release notes do SDK Tap on Phone.
2.4.0
10 de agosto de 2026
Instalação
Adicione a dependência no build.gradle:
releaseImplementation("com.zoop.sdk:taponphone-production-release:2.4.0")Release Notes
Essa versão introduz o PinTheme (personalização completa do teclado PIN), recuperação de processo isolado, tratamento explícito do cancelamento pelo usuário, novos códigos de erro e a norma técnica de CNPJ alfanumérico.
Principais alterações
Personalização completa do teclado de senha: cores, textos, fontes, ícones, viewports, modo imersivo e acessibilidade.
Tratamento explícito do botão fechar (1025) e voltar (1026), com fluxo 100% interno ao SDK.
Invalidação de sessão quando o processo do kernel é reiniciado pelo SO, evitando o erro 2042.
Suporte à nova norma com detecção restrita aos dígitos raiz e validação para ExternalSeller.
PinTheme
Personalização completa do teclado de senha através do objeto PinTheme, exposto em TapOnPhoneTheme.pinTheme. Consulte Customização do teclado PIN.
Cancelamento de transação pelo usuário
O cancelamento durante o pagamento agora tem tratamento explícito e diferenciado:
| Ação | Código | Mensagem |
|---|---|---|
| Botão fechar (X) | 1025 | Transação cancelada pelo botão fechar. Tente novamente. |
| Botão voltar (gesto) | 1026 | Transação cancelada pelo botão voltar. Tente novamente. |
O fluxo de back/cancelamento agora é 100% interno ao SDK — o integrador não deve interceptar o botão voltar nem sobrescrever as activities do SDK (fora do contrato).
Recuperação de processo isolado
A sessão é invalidada quando o processo do kernel é reiniciado pelo sistema operacional, evitando o erro 2042 (terminal disposed) após o kill do processo. Esse cenário ganhou códigos específicos: 2042, 2044 e 2046.
Novos códigos de erro
| Código | Descrição |
|---|---|
1025 | Transação cancelada pelo botão fechar |
1026 | Transação cancelada pelo botão voltar |
2042 | Terminal disposed — Terminal dispose. Create a new terminal. |
2044 | Falha na ativação da sessão (processo isolado) |
2046 | Falha ao preparar o terminal (processo isolado) |
Mensagens revisadas
Códigos que já existiam e receberam mensagem final ou revisada:
| Código | Nova mensagem |
|---|---|
1000 | Terminal não inicializado — execute initialize antes de pagar/ativar sessão |
1012 | Timeout na inicialização do Kernel SDK |
1019 | Valor da transação acima do limite máximo permitido |
1020 | planId inválido (deve ter entre 1 e 52 caracteres) |
1021 | Valor de cobrança inválido (deve ser maior ou igual a zero) |
1022 | Tap to Pay não está pronto |
Código migrado
| Código | Mudança |
|---|---|
2043 | Erro NFC migrado de 2040 para 2043 (elimina conflito com o timeout de criação do terminal) |
Norma técnica — CNPJ alfanumérico
Ajuste para a nova norma de CNPJ alfanumérico: detecção restrita aos dígitos raiz e validação para ExternalSeller.
2.3.2
03 de Junho de 2026
Instalação
Adicione a dependência no build.gradle:
releaseImplementation("com.zoop.sdk:taponphone-production-release:2.3.2")Release Notes
Essa versão traz um ajuste no Sensory Branding da Visa ao finalizar o pagamento
2.3.1
15 de Abril de 2026
Instalação
Adicione a dependência no build.gradle:
releaseImplementation("com.zoop.sdk:taponphone-production-release:2.3.1")Release Notes
Essa versão introduz Multiseller, suporte a sandbox, orientação landscape e melhorias em diagnóstico de erros.
Principais alterações
Vários sellers compartilham a mesma configuração do SDK. Troque de seller em runtime sem reiniciar.
Valide o funcionamento em ambiente de testes fora da loja com a dependência dedicada.
Suporte à orientação paisagem nas telas do SDK.
Campo kernelRedactLog no payload de erro para auxiliar suporte.
Multiseller
Modo em que vários sellers podem usar a mesma configuração do SDK:
- O
sellerdeixa de ser obrigatório nosetConfige passa a ser informado noinitialize. - Permite trocar de seller em runtime com uma nova chamada a
initialize, sem reiniciar o SDK e sem novosetConfig.
Saiba mais em Multiseller.
Novos códigos de erro
| Código | Descrição |
|---|---|
2040 | Timeout na criação do terminal no kernel — Creating terminal timed out. Terminal creation exceeded the allowed time limit. |
1023 | Seller não informado na inicialização em modo multiseller — seller not provided on initialization. |
1024 | Tentativa de alterar o seller no initialize quando ele já está definido no setConfig — seller cannot be changed in initialize when already set in setConfig. |
Consulte Criação de terminal e Multiseller.
kernelRedactLog
Adicionado ao payload de onError o campo kernelRedactLog, contendo mensagens de log da operação (padrão e redatadas) para auxiliar diagnóstico e suporte.
Trate o conteúdo de
kernelRedactLogcomo dado sensível. Não exponha em logs públicos ou interfaces de usuário.
Orientação Landscape
Adicionado suporte à orientação paisagem nas telas do SDK através da configuração SdkConfig.allowLandscape.
Detalhes em Orientação landscape.
Sandbox
Adicionado suporte ao modo sandbox com a dependência dedicada no Gradle, permitindo validar o funcionamento em ambiente de testes fora da loja:
debugImplementation("com.zoop.sdk:taponphone-sandbox-debug:2.3.1")Consulte Ambiente de Sandbox e Adicionar ao Projeto.
2.1.3
14 de janeiro de 2026
Instalação
Adicione a dependência no build.gradle:
releaseImplementation("com.zoop.sdk:taponphone-production-release:2.1.3")Release Notes
Essa versão introduz uma arquitetura reformulada com a classe TapOnPhone como singleton e com 3 etapas simples (kernelInitialize → setConfig → pay), além de Device Attestation com tratamento detalhado de erros de integridade e códigos de erro específicos.
O uso como singleton garante uma única instância do SDK em toda a aplicação, evitando conflitos de estado, múltiplas inicializações do terminal e problemas de concorrência, além de simplificar o gerenciamento de recursos e melhorar a performance.
Principais melhorias:
- Criação da sessão de forma separada do pagamento
- Sistema unificado de tratamento de erros com
ErrorResponse - Callbacks de eventos obrigatórios em todos os métodos
- Melhorias em logging e métricas
- Tratamento aprimorado de erros NFC
- Correção de bugs
Updated 2 days ago
