Crédito
Para realizar uma Transação de Crédito, utilize o método credit da classe paykit.
Os parâmetros de entrada da transação são configurados no objeto CreditParameters.
CreditParameters
O objeto CreditParameters, utilizado em transações de crédito.
| Campo | Tipo | Descrição |
|---|---|---|
amount | BigDecimal | O valor total da transação. |
installments | Int? | O número de parcelas para pagamento. |
cpf | String? | CPF do cliente, se aplicável. Este campo é opcional. |
billOfSale | String? | Documento de venda associado à transação. Este campo é opcional. |
dateTimeOfSale | Date? | Data e hora em que a venda foi realizada. Este campo é opcional. |
externalId | String? | Identificador externo para a transação, se necessário. Este campo é opcional. |
items | List<OrderItem>? | Lista dos items de venda, relacionados a transação a ser realizada. 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. |
postCreditDays | Int? | Prazo para a primeira parcela, em dias. Este campo é opcional. |
creditType | CreditTransactionType? | Modalidade da transação de crédito. |
autoConfirm | Boolean? | Envia a confirmação automaticamente. Só utilizada quando o processador da transação é o TEF |
Atenção
Existem diversas modalidades de crédito, sendo as mais conhecidas, a vista, parcelada pelo lojista e parcelada pelo estabelecimento. A tabela a seguir mostra todas as opções disponíveis. Consultar modalidades disponíveis em cada provedor de pagamento.
CreditTransactionType
Para o creditType é utilizado um enum para identificação da Modalidade de Crédito.
/**
* Enum representando os tipos de transação de Crédito.
* Correspondência DE-PARA (Português -> Inglês):
* - CREDITO_AVISTA | TRANSACAO_CREDITO_VISTA -> AT_SIGHT
* - CREDITO_PARCELADO_LOJA | TRANSACAO_CREDITO_PARCELADO_LOJISTA -> STORE_INSTALMENTS
* - CREDITO_PARCELADO_ADM -> ADMIN_INSTALMENTS
* - CREDITO_PARCELADO_BNCO -> BANK_INSTALMENTS
* - PRE_AUTORIZACAO -> PRE_AUTHORIZATION
* - CREDITO_CREDIARIO_CREDITO -> FINANCING
* - TRANSACAO_CREDITO_PARCELADO_EMISSOR -> ISSUER_INSTALMENTS
* - TRANSACAO_BANRICOMPRAS_CREDITO_1_MINUTO -> CREDIT_1_MINUTE
*/
enum class CreditTransactionType(
override val hasInterest: Boolean,
override val hasInstalments: Boolean
) : TransactionType {
AT_SIGHT(false, false), // CREDITO_AVISTA
STORE_INSTALMENTS(false, true), // CREDITO_PARCELADO_LOJA
ADMIN_INSTALMENTS(true, true), // CREDITO_PARCELADO_ADM
BANK_INSTALMENTS(true, true), // CREDITO_PARCELADO_BNCO
PRE_AUTHORIZATION(false, false), // PRE_AUTORIZACAO
FINANCING(true, false), // CREDITO_CREDIARIO_CREDITO
ISSUER_INSTALMENTS(true, true), // TRANSACAO_CREDITO_PARCELADO_EMISSOR
CREDIT_1_MINUTE(false, false); // TRANSACAO_BANRICOMPRAS_CREDITO_1_MINUTO
}
Exemplo de Crédito à 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.PaymentParameters
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, "Credito à Vista", PaykitId("PAYKIT_ID")))
val creditParameter = CreditParameters(
installments = 1, // Número de parcelas (1 para crédito à vista)
amount = BigDecimal("100.00"), // Valor da transação
creditType = CreditTransactionType.AT_SIGHT // Crédito à vista
)
paykit.credit(creditParameter, object : Callback<PaymentResult> {
override fun execute(result: PaymentResult) {
Log.i("PaymentResult", "ID: ${result.id}, Transaction: ${result.rawData}")
onPaymentResult(result.id, result.rawData)
}
})
}
private fun onPaymentResult(id: String, transaction: PaymentResult) {
// Implementar a lógica para lidar com o resultado do pagamento
}
}
Exemplo de Crédito parcelado pelo lojista
Atenção
Verifique os parametros da transação. Os atributos devem seguir os critérios:
- installments: MAIOR que 1
- amount: MAIOR ou igual a 0.01
val creditParameter = CreditParameters(
installments = 2, // Número de parcelas
amount = BigDecimal("100.00"), // Valor da transação
creditType = CreditTransactionType.STORE_INSTALMENTS // Crédito parcelado lojista
)
paykit.credit(creditParameter, object : Callback<PaymentResult> {
override fun execute(result: PaymentResult) {
Log.i("PaymentResult", "ID: ${result.id}, Transaction: ${result.rawData}")
}
})
Este conteúdo foi útil para você?