Pagamentos
Métodos do PosPinpad para pagamentos com cartão, PIX e captura de cartão.
createPayment()
suspend fun createPayment(
type: TransactionType,
amount: Long,
paymentMethod: PaymentMethod?,
installments: Int,
installmentsInterest: Boolean? = false
)
Inicia o fluxo de pagamento completo (captura de cartão → PIN → processamento → resultado).
Parâmetros:
| Parâmetro | Tipo | Descrição |
|---|---|---|
type | TransactionType | Tipo da transação (AUTHORIZATION, PRE_AUTHORIZE, etc.) |
amount | Long | Valor em centavos (1000 = R$ 10,00) |
paymentMethod | PaymentMethod? | DEBIT, CREDIT, CASH (PIX usa método próprio) |
installments | Int | Número de parcelas (1 = à vista) |
installmentsInterest | Boolean? | Se há juros nas parcelas |
Fluxo de callbacks (cartão/crédito-débito):
onStartGetCard()— aguardando cartãoonStartGetPinCoordinates(setPinCoordinates)— app fornece as coordenadas do PINonPinEntry(pinMask, message, amount)— atualização da máscaraonPinError(...)— senha offline incorreta (se aplicável)onCardRemovalRequested()/onCardRemoved()— remoção do cartão (chip)onTransactionCompleted(result)— resultado final
Exemplos:
// Crédito à vista — R$ 50,00
posPinpad.createPayment(
type = TransactionType.AUTHORIZATION,
amount = 5000L,
paymentMethod = PaymentMethod.CREDIT,
installments = 1
)
// Crédito parcelado — R$ 300,00 em 3x sem juros
posPinpad.createPayment(
type = TransactionType.AUTHORIZATION,
amount = 30000L,
paymentMethod = PaymentMethod.CREDIT,
installments = 3,
installmentsInterest = false
)
// Débito — R$ 25,00
posPinpad.createPayment(
type = TransactionType.AUTHORIZATION,
amount = 2500L,
paymentMethod = PaymentMethod.DEBIT,
installments = 1
)
// Pré-autorização — R$ 100,00
posPinpad.createPayment(
type = TransactionType.PRE_AUTHORIZE,
amount = 10000L,
paymentMethod = PaymentMethod.CREDIT,
installments = 1
)
createPixPayment()
suspend fun createPixPayment(amount: Long)
Gera um pagamento PIX (QR Code). O payload chega por onPixQrCodeGenerated(qrCode, transactionId, amount, expiresInSeconds).
cancelPayment()
fun cancelPayment()
Cancela a operação em andamento, liberando imediatamente qualquer bloqueio aguardando coordenadas ou entrada de senha.
getTransactionLimits()
fun getTransactionLimits(
transactionType: TransactionType,
paymentMethod: PaymentMethod,
installments: Int = 1
): TransactionLimits?
Consulta os limites configurados para uma operação (valor mín./máx., parcelas, valor por parcela), derivados da inicialização. Use antes de iniciar o pagamento para validar localmente. null se a combinação não existir. Apenas CREDIT/DEBIT retornam valores.
Captura de Cartão
waitForCard()
suspend fun waitForCard(
waitContact: Boolean,
waitMagneticStripe: Boolean,
waitContactless: Boolean,
timeoutSeconds: Int
): CardReadType?
Aguarda um evento de cartão por até timeoutSeconds. Retorna o tipo de leitura (CHIP, CONTACTLESS, MAGSTRIPE) ou null no timeout. Útil para melhorar a UX antes de iniciar a transação.
removeCard()
suspend fun removeCard()