Pular para o conteúdo principal

Crédito - Pré-autorização

Para realizar uma Transação de Pré-autorização de crédito, utilize os métodos preAuthorize, capturePreAuthorization (ou credit) e cancelPreAuthorization (ou cancel) da classe paykit.

Os parâmetros de entrada da transação de pré-autorização são configurados no objeto CreditParameters.

PendingPreParameters

O objeto PendingPreParameters, utilizado em transações de captura ou cancelamento de pré-autorização.

CampoTipoDescrição
preIdStringIdentificador da transação que será capturada ou cancelada.
amountBigDecimal?O valor que será capturado na transação. Este campo é opcional.
externalIdString?Identificador externo para a transação, se necessário. 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.
autoConfirmBoolean?Envia a confirmação automaticamente. Só utilizada quando o processador da transação é o TEF.

Métodos por Adquirente

A tabela abaixo especifica quais métodos devem ser chamados nas principais adquirentes para efetuar a captura do valor ou o cancelamento da pré-autorização:

Provedor*Adquirente*Método de captura*Método de cancelamento*
TEFStone--
TEFRedecapturePreAuthorizationcancel
TEFPagSeguro--
TEFGetNetcreditcancel
TEFCielocreditcancel
TEFAdyen--
TEFVero--
TEFSicoob--
TEFSicredi--

*Matriz em construção

Exemplo de Pré-autorização

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.TransactionStatus
import com.linx.paykit.common.builder.Parameters
import com.linx.paykit.common.parameter.CreditParameters
import com.linx.paykit.common.parameter.PendingPreParameters
import com.linx.paykit.common.parameter.type.CreditTransactionType
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, "Pré-autorização", PaykitId("PAYKIT_ID")))

// Passo 1: Realizar a pré-autorização
val preAuthParameter = CreditParameters(
installments = 1,
amount = BigDecimal("100.00"),
creditType = CreditTransactionType.PRE_AUTHORIZATION
)

paykit.preAuthorize(preAuthParameter, object : Callback<PaymentResult> {
override fun execute(result: PaymentResult) {
if (result.status == TransactionStatus.APPROVED) {
// Passo 2: Capturar a pré-autorização
capturePreAuth(result.id)
}
}
})
}

private fun capturePreAuth(preAuthId: String) {
val captureParams = PendingPreParameters(
preId = preAuthId,
amount = BigDecimal("100.00")
)

paykit.capturePreAuthorization(captureParams, object : Callback<PaymentResult> {
override fun execute(result: PaymentResult) {
Log.i("Capture", "Captura realizada: ${result.status}")
}
})
}
}

Este conteúdo foi útil para você?