Cancelamento
Para realizar uma Transação de Cancelamento, utilize o método cancel da classe paykit.
CancelParameter
O objeto CancelParameter, utilizado em transações de cancelamento.
| Campo | Tipo | Descrição |
|---|---|---|
paymentId | String | Identificador da transação de pagamento que será cancelada. |
externalId | String? | Identificador da automação comercial para a transação. Utilizado para posterior conciliação. Este campo é opcional. |
amount | BigDecimal? | O valor total da transação de pagamento que será cancelada. Este campo é opcional. |
originalPaymentType | PaymentType? | Modalidade (débito, crédito, voucher, Pix, etc.) da transação de pagamento. Este campo é opcional. |
originalTransactionDate | Date? | Data em que a transação de pagamento foi realizada. Este campo é opcional. |
cancelAmount | BigDecimal? | O valor que será cancelado da transação para cancelamento parcial. Este campo é opcional. |
autoPrintReceipt | Boolean | Imprime automaticamente o comprovante do lojista quando o provedor de pagamento é 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 provedor de pagamento é o TEF. Este campo é opcional. |
Os parâmetros paymentId, amount, originalPaymentType e originalTransactionDate são utilizados para localizar a transação original que deve ser cancelada. Quando não informado será consultado no momento do cancelamento. Alguns provedores permitem cancelamento parcial (veja regras de negócio com o próprio provedor). Para esse caso possuímos o parâmetro cancelAmount que pode ser utilizado.
Exemplo
Verifique os parâmetros 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.CancelResult
import com.linx.paykit.common.builder.Parameters
import com.linx.paykit.common.parameter.CancelParameter
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, "Cancelamento", PaykitId("PAYKIT_ID")))
val cancelParameter = CancelParameter(
paymentId = "1", // (transactionId) NSU da Transação
amount = BigDecimal("100.00"), // Valor da original da transação
originalTransactionDate = Date() // Data original da transação
)
paykit.cancel(cancelParameter, object : Callback<CancelResult> {
override fun execute(result: CancelResult) {
Log.i("CancelResult", "ID: ${result.id}, Status: ${result.status}")
}
})
}
}
CancelResult
O objeto CancelResult, retornado no callback da transação, contém informações essenciais da adquirente.
| Campo | Tipo | Descrição |
|---|---|---|
id | String? | Identificador único da transação. |
externalId | String? | Identificador externo para a transação. |
processor | PaymentProcessor? | Indica o processador da transação (STONE, TEF, REDE, GETNET, PAGSEGURO, VERO, CIELO, SICOOB, SITEF). |
status | TransactionStatus | Status da transação (PENDING, APPROVED, CANCELLED, PARTIALLY_CANCELLED, ERROR, DECLINED). |
amount | BigDecimal? | Representa o valor da transação original. |
originalId | String? | Identificador da transação original. |
canceledAmount | BigDecimal | Representa o valor da transação de cancelamento. Diferente de amount quando o cancelamento é parcial. |
message | String? | Mensagem de sucesso ou erro, caso aplicável. |
dateTime | Date? | Representa data e hora da transação. |
nsuInfo | NsuInfo? | Representa dados de NSU do retorno transacional do provedor de pagamentos. |
transactionInfo | TransactionInfo? | Representa dados de retorno transacional do provedor de pagamentos. |
rawData | Map<String, String>? | Retorno estilo chave/valor recebido do provedor de pagamentos. |
paymentType | PaymentType? | Tipo da transação de pagamento (Crédito, Débito, Voucher, Pix, etc.). |
transactionType | TransactionType? | Modalidade da transação de crédito, débito, ou voucher, quando disponível. |
Este conteúdo foi útil para você?