Pular para o conteúdo principal

Débito

Para realizar uma Transação de Débito, utilize o método debit da classe paykit.

DebitParameters

O objeto DebitParameters, utilizado em transações de débito.

CampoTipoDescrição
amountBigDecimalO valor total da transação.
installmentsInt?O número de parcelas para pagamento. Disponível apenas para Vero e TEF. Este campo é opcional.
cpfString?CPF do cliente, se aplicável. Este campo é opcional.
billOfSaleString?Documento de venda associado à transação. Este campo é opcional.
dateTimeOfSaleDate?Data e hora em que a venda foi realizada. Este campo é opcional.
externalIdString?Identificador externo para a transação, se necessário. Este campo é opcional.
itemsList<OrderItem>?Lista dos items de venda. Este campo é opcional.
autoPrintReceiptBooleanImprime automaticamente o comprovante do lojista quando o processador da transação é o TEF.
printMerchantReceiptBooleanImprime (ou não) o recibo do lojista. Utilizar apenas em totens de auto atendimento.
debitTypeDebitTransactionType?Tipo de transação de débito.
autoConfirmBoolean?Envia a confirmação automaticamente. Só utilizada quando o processador da transação é o TEF
postCreditDaysInt?Dias para o pré-datado. Este campo é opcional.
downPaymentInstallmentAmountBigDecimal?Valor de entrada do débito parcelado. Disponível apenas para Vero e TEF. Este campo é opcional.
firstPaymentInstallmentAmountBigDecimal?Valor da primeira parcela do débito parcelado. Disponível apenas para Vero e TEF. Este campo é opcional.

DebitTransactionType

Para o debitType é utilizado um enum para identificação da Modalidade de Débito.

/**
* Enum representando os tipos de transação de Débito.
* Correspondência DE-PARA (Português -> Inglês):
* - DEBITO_AVISTA | TRANSACAO_DEBITO_VISTA -> AT_SIGHT
* - DEBITO_PAGTO_FATURA_DEBITO -> DEBIT_INVOICE_PAYMENT
* - TRANSACAO_BANRICOMPRAS_VISTA -> ACQUIRER_AT_SIGHT
* - TRANSACAO_BANRICOMPRAS_PREDATADO -> POSTDATED
* - TRANSACAO_BANRICOMPRAS_PARCELADO -> WITH_INSTALMENTS
*/
enum class DebitTransactionType(
override val hasInterest: Boolean = false,
override val hasInstalments: Boolean = false
) : TransactionType {
AT_SIGHT, // DEBITO_AVISTA
ACQUIRER_AT_SIGHT, // TRANSACAO_BANRICOMPRAS_VISTA
POSTDATED, // TRANSACAO_BANRICOMPRAS_PREDATADO
WITH_INSTALMENTS(hasInstalments = true), // TRANSACAO_BANRICOMPRAS_PARCELADO
DEBIT_INVOICE_PAYMENT; // DEBITO_PAGTO_FATURA_DEBITO
}

Exemplo de Débito à vista

Atenção

Verifique os parametros da transação. Os atributos devem seguir os critérios:

  • amount: MAIOR ou igual a 0.01
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.linx.paykit.common.Callback
import com.linx.paykit.common.PaymentResult
import com.linx.paykit.common.builder.Parameters
import com.linx.paykit.common.parameter.DebitParameters
import com.linx.paykit.common.parameter.type.DebitTransactionType
import com.linx.paykit.core.Paykit
import com.linx.paykit.core.PaykitFactory
import java.math.BigDecimal

class MainActivity : AppCompatActivity() {

private lateinit var paykit: Paykit

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

paykit = PaykitFactory().build(Parameters(this, "Débito", PaykitId("PAYKIT_ID")))

val debitParameter = DebitParameters(
amount = BigDecimal("100.00"), // Valor da transação
debitType = DebitTransactionType.AT_SIGHT // Débito à vista
)

paykit.debit(debitParameter, object : Callback<PaymentResult> {
override fun execute(result: PaymentResult) {
Log.i("PaymentResult", "ID: ${result.id}, Transaction: ${result.rawData}")
}
})
}
}

Exemplo de Débito pré-datado

val debitParameter = DebitParameters(
amount = BigDecimal("100.00"), // Valor da transação
debitType = DebitTransactionType.POSTDATED, // Débito pré-datado
postCreditDays = 30 // Dias para o pré-datado
)

paykit.debit(debitParameter, object : Callback<PaymentResult> {
override fun execute(result: PaymentResult) {
Log.i("PaymentResult", "ID: ${result.id}")
}
})

Este conteúdo foi útil para você?