Versões

Histórico de versões e release notes do SDK Tap on Phone.

3.1.1


09 de novembro de 2026

Instalação

Requisito: atualize o minSdk do seu aplicativo para 29 para usar esta versão.

Adicione a dependência no build.gradle:

releaseImplementation("com.zoop.sdk:taponphone-production-release:3.1.1")

Release Notes

Esta versão atende aos requisitos da certificação PCI MPoC (Mobile Payments on COTS), incluindo a variação da posição do PIN no teclado de senha (STANDARD não é mais aceito em produção; SHIFTED é o novo padrão), além de elevar o minSdk para 29, depreciar activateSession() e adicionar novos códigos de erro para diagnóstico.

Principais alterações

AlteraçãoDescrição
Conformidade MPoCteclado de senha passa a cumprir o requisito de variação da posição do PIN (STANDARD fora de produção; SHIFTED como padrão)
Códigos de erro35 novos mapeamentos + Terminal Exception 22–24
APIactivateSession() depreciado (retorna -1L).
Campo kernel (KernelError) nas respostas de erro.
PaymentType deixa de incluir tipo PIX.
Requisito de plataformaminSdk 29

Conformidade MPoC

Regra de segurança MPoC

O padrão de teclado STANDARD não é mais permitido em produção: a ordem fixa das teclas permitiria o portador digitar o PIN sempre na mesma sequência e posição de dígitos na tela do dispositivo, o que fere o requisito PCI MPoC de variação da posição do PIN. Consulte Customização do teclado PIN.

  • Aceitos no SDK Tap: SHUFFLED (teclas embaralhadas aleatoriamente) e SHIFTED (teclas deslocadas).
  • Default: SHIFTED — aplicado quando nenhum padrão é definido pelo app.

API

Códigos de erro

  • 35 novas entradas no mapeamento de erros do kernel (2xxx). Consulte Tabela de erros.
  • Terminal Exception: códigos 22, 23 e 24.

Regras ProGuard/R8 atualizadas

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

PinTheme

Personalização completa do teclado de senha: cores, textos, fontes, ícones, viewports, modo imersivo e acessibilidade.

Cancelamento pelo usuário

Tratamento explícito do botão fechar (1025) e voltar (1026), com fluxo 100% interno ao SDK.

Processo isolado

Invalidação de sessão quando o processo do kernel é reiniciado pelo SO, evitando o erro 2042.

CNPJ alfanumérico

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çãoCódigoMensagem
Botão fechar (X)1025Transação cancelada pelo botão fechar. Tente novamente.
Botão voltar (gesto)1026Transaçã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ódigoDescrição
1025Transação cancelada pelo botão fechar
1026Transação cancelada pelo botão voltar
2042Terminal disposed — Terminal dispose. Create a new terminal.
2044Falha na ativação da sessão (processo isolado)
2046Falha ao preparar o terminal (processo isolado)

Mensagens revisadas

Códigos que já existiam e receberam mensagem final ou revisada:

CódigoNova mensagem
1000Terminal não inicializado — execute initialize antes de pagar/ativar sessão
1012Timeout na inicialização do Kernel SDK
1019Valor da transação acima do limite máximo permitido
1020planId inválido (deve ter entre 1 e 52 caracteres)
1021Valor de cobrança inválido (deve ser maior ou igual a zero)
1022Tap to Pay não está pronto

Código migrado

CódigoMudança
2043Erro 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

Multiseller

Vários sellers compartilham a mesma configuração do SDK. Troque de seller em runtime sem reiniciar.

Sandbox

Valide o funcionamento em ambiente de testes fora da loja com a dependência dedicada.

Landscape

Suporte à orientação paisagem nas telas do SDK.

Diagnóstico

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 seller deixa de ser obrigatório no setConfig e passa a ser informado no initialize.
  • Permite trocar de seller em runtime com uma nova chamada a initialize, sem reiniciar o SDK e sem novo setConfig.

Saiba mais em Multiseller.

Novos códigos de erro

CódigoDescrição
2040Timeout na criação do terminal no kernel — Creating terminal timed out. Terminal creation exceeded the allowed time limit.
1023Seller não informado na inicialização em modo multiseller — seller not provided on initialization.
1024Tentativa 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 kernelRedactLog como 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

Did this page help you?