Pular para o conteúdo principal

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âmetroTipoDescrição
typeTransactionTypeTipo da transação (AUTHORIZATION, PRE_AUTHORIZE, etc.)
amountLongValor em centavos (1000 = R$ 10,00)
paymentMethodPaymentMethod?DEBIT, CREDIT, CASH (PIX usa método próprio)
installmentsIntNúmero de parcelas (1 = à vista)
installmentsInterestBoolean?Se há juros nas parcelas

Fluxo de callbacks (cartão/crédito-débito):

  1. onStartGetCard() — aguardando cartão
  2. onStartGetPinCoordinates(setPinCoordinates) — app fornece as coordenadas do PIN
  3. onPinEntry(pinMask, message, amount) — atualização da máscara
  4. onPinError(...) — senha offline incorreta (se aplicável)
  5. onCardRemovalRequested() / onCardRemoved() — remoção do cartão (chip)
  6. 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()