Pagamento Pix

Realize pagamentos Pix via QR Code ou NFC com o SDK TapOnPhone da Zoop.

Realize pagamentos Pix através do SDK TapOnPhone, com suporte a leitura de QR Code e aproximação NFC via carteira digital.

Visão geral

O método TapOnPhone::payByPix permite realizar pagamentos com Pix de duas formas:

QR Code

QR Code gerado durante o processamento da transação para leitura pelo pagador.

NFC (Aproximação)

Envio do QR Code à antena NFC do dispositivo para pagamento via carteira digital.


O dispositivo precisa estar inicializado na Zoop. Caso ainda não esteja, o SDK executa a inicialização automaticamente antes do primeiro pagamento — esse processo pode levar alguns segundos.

Parâmetros

Passe um objeto PixRequest com os seguintes campos:

data class PixRequest(
    val amount: Long,
    val referenceId: String? = null,
    val metadata: String? = null,
    val pixNfc: Boolean = true
)
ParâmetroTipoObrigatórioDescrição
amountLongValor em centavos. Ex: 10000 = R$ 100,00
referenceIdString?Seu identificador para a transação
metadataString?String em formato JSON enviada junto à transação (limite de 512 caracteres)
pixNfcBooleanSe true (padrão), o QR Code é enviado à antena NFC do dispositivo para leitura pela carteira digital

Exemplo de pagamento

val tapOnPhone = TapOnPhone()

// Depois de inicializado com sucesso
coroutineScope.launch {
    tapOnPhone.payByPix(
        pixRequest = PixRequest(
            amount = 10000, // R$ 100,00
            referenceId = UUID.randomUUID().toString(), // Seu id para transação
            metadata = """
                {
                    "clientId": "1234",
                    "name": "John Doe"
                }
            """,
        ),
        onApproved = { result ->
            println("Pagamento Aprovado! Id: ${result.transactionId}")
        },
        onError = { error ->
            println("Pagamento negado - id: ${error.transactionId}")
            println("Mensagem: ${error.message}")
            error.exception?.printStackTrace()
        },
        onQrCode = { qrCode ->
            // Desenhe o QR Code na tela do seu app
            println("QR Code: $qrCode")
        },
        onEvent = { applicationEvent ->
            // Eventos informando as etapas do fluxo
        }
    )
}
🛑

Para cancelar a operação, chame tapOnphone.cancelPix(). O callback onError será acionado com a exceção ZoopRequestCanceledException.

Respostas

data class PixApprovedResponse(
    val transactionId: String, // Id da transação na Zoop
    val referenceId: String,   // Seu id para transação, se fornecido no request
)
CampoTipoDescrição
transactionIdStringIdentificador da transação na Zoop
referenceIdStringSeu identificador para a transação (se fornecido)

Eventos

O callback onEvent recebe objetos do tipo ApplicationEvent, informando cada etapa do fluxo de pagamento.

EventoDescrição
StartZoopActivationIniciada a ativação do dispositivo na Zoop. Ocorre apenas quando o dispositivo ainda não está ativado.
CompleteZoopActivationAtivação do dispositivo concluída.
PixTransactionStartedFluxo de pagamento com Pix iniciado.
ProcessingPixTransactionProcessando pagamento com Pix.
PixTransactionCompletedPagamento com Pix concluído.