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.
| Campo | Tipo | Descrição |
|---|---|---|
preId | String | Identificador da transação que será capturada ou cancelada. |
amount | BigDecimal? | O valor que será capturado na transação. Este campo é opcional. |
externalId | String? | Identificador externo para a transação, se necessário. Este campo é opcional. |
autoPrintReceipt | Boolean | Imprime automaticamente o comprovante do lojista quando o processador da transação é o TEF. |
printMerchantReceipt | Boolean | Imprime (ou não) o recibo do lojista. Utilizar apenas em totens de auto atendimento. |
autoConfirm | Boolean? | 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* |
|---|---|---|---|
| TEF | Stone | - | - |
| TEF | Rede | capturePreAuthorization | cancel |
| TEF | PagSeguro | - | - |
| TEF | GetNet | credit | cancel |
| TEF | Cielo | credit | cancel |
| TEF | Adyen | - | - |
| TEF | Vero | - | - |
| TEF | Sicoob | - | - |
| TEF | Sicredi | - | - |
*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ê?