Devolução¶
Devolução de um PIX¶
Info
A funcionalidade de impressão automática está disponível a partir da versão 1.3.3.0 do App Pix.
Para versões anteriores a 1.3.3.0, utilizar print_customer_receipt e print_merchant_receipt para controlar a exibição dos comprovantes.
A devolução pode ser feita de duas formas:
refund()¶
Para listar as opções de devolução será utilizada a função refund e deve ser passado o seguinte request:
Request¶
{
"preview_customer_receipt": true,
"preview_merchant_receipt": true,
"print_customer_receipt": true,
"print_merchant_receipt": true
}
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
request |
refundPixPayment |
Sim | Objeto de transferência de dados que conterá as informações da requisição do pix. Note que nem todos os parâmetros são obrigatórios. |
callback |
RefundPixPaymentCallback |
Sim | Interface que será executada para notificações de sucesso ou erro do processo da devolução. |
Detalhe dos Parâmetros
request (refundPixPayment)
| Nome | Tipo | Obrigatório | Descrição | Padrão |
|---|---|---|---|---|
preview_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser exibido. | true |
preview_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser exibido. | true |
print_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser impresso automaticamente. Observação: A impressão automática só ocorrerá se a visualização prévia (preview) do comprovante estiver desabilitada ( false). |
true |
print_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser impresso automaticamente. Observação: A impressão automática só ocorrerá se a visualização prévia (preview) do comprovante estiver desabilitada ( false). |
true |
Detalhe dos Parâmetros
callback (RefundPixPaymentCallback)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
onSuccess |
String |
Sim | Método para notificação em caso de sucesso. A resposta retornada será uma string no formato json que possui os campos demostrados na classe PixResponse |
onError |
String |
Sim | Método para notificação em caso de erro. A resposta retornada será uma string no formato json que possui os campos demostrados na classe PixErrorResponse |
fun RefundPixService(
pixClient: PixClient,
previewCustomerReceipt: Boolean,
previewMerchantReceipt: Boolean,
printCustomerReceipt: Boolean,
printMerchantReceipt: Boolean,
context: Context
) {
val gson: Gson = Gson()
val refundPixRequest = RefundPixRequest(previewCustomerReceipt, previewMerchantReceipt, printCustomerReceipt, printMerchantReceipt)
val callback = object : PixClient.RefundCallback {
override fun onError(response: String?) {
println("Erro ao devolver $response")
val alertDialog = AlertDialog.Builder(context)
alertDialog.setTitle(R.string.refund)
.setMessage("Não foi possível realizar a devolução.")
.setNeutralButton("Ok") { _, _ -> }
.show()
}
override fun onSuccess(response: String?) {
val alertDialog = AlertDialog.Builder(context)
alertDialog.setTitle(R.string.refund)
.setMessage("Devolução realizada com sucesso.")
.setNeutralButton("Ok") { _, _ -> }
.show()
}
}
pixClient.refund(
gson.toJson(refundPixRequest),
callback
)
}
Exemplo da classe RefundPixRequest:¶
data class RefundPixRequest(
@SerializedName("preview_customer_receipt")
val previewCustomerReceipt: Boolean,
@SerializedName("preview_merchant_receipt")
val previewMerchantReceipt: Boolean,
@SerializedName("print_customer_receipt")
val printCustomerReceipt: Boolean,
@SerializedName("print_merchant_receipt")
val printMerchantReceipt: Boolean
)
refundPixPayment()¶
Para realizar uma devolução utilizando o tx-id, será utilizada a função refundPixPayment e deve ser passado o seguinte request:
{
"tx_id": "b849b36b-7846-48f8-81ce-a8dbf2530f42",
"preview_customer_receipt": true,
"preview_merchant_receipt": true,
"print_customer_receipt": true,
"print_merchant_receipt": true
}
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
request |
refundByTxIdPixPayment |
Sim | Objeto de transferência de dados que conterá as informações da requisição do pix. Note que nem todos os parâmetros são obrigatórios. |
callback |
RefundByTxIdPixPaymentCallback |
Sim | Interface que será executada para notificações de sucesso ou erro do processo do pix. |
Detalhe dos Parâmetros
request (refundByTxIdPixPayment)
| Nome | Tipo | Obrigatório | Descrição | Padrão |
|---|---|---|---|---|
tx_id |
String |
Sim | O tx_id representa o id da transação pix. | |
preview_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser exibido. | true |
preview_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser exibido. | true |
print_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser impresso automaticamente. Observação: A impressão automática só ocorrerá se a visualização prévia (preview) do comprovante estiver desabilitada ( false). |
true |
print_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser impresso automaticamente. Observação: A impressão automática só ocorrerá se a visualização prévia (preview) do comprovante estiver desabilitada ( false). |
true |
Detalhe dos Parâmetros
callback (RefundByTxIdPixPaymentCallback)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
onSuccess |
String |
Sim | Método para notificação em caso de sucesso. A resposta retornada será uma string no formato json que possui os campos demostrados na classe PixResponse |
onError |
String |
Sim | Método para notificação em caso de erro. A resposta retornada será uma string no formato json que possui os campos demostrados na classe PixErrorResponse |
fun refundPixService(
pixClient: PixClient,
txId: String,
previewCustomerReceipt: Boolean,
previewMerchantReceipt: Boolean,
printCustomerReceipt: Boolean,
printMerchantReceipt: Boolean,
context: Context
) {
val gson: Gson = Gson()
val refundPixRequest = RefundByTxIdPixRequest(txId, previewCustomerReceipt, previewMerchantReceipt, printCustomerReceipt, printMerchantReceipt)
val callback = object : PixClient.RefundPixPaymentCallback {
override fun onError(response: String?) {
println("Erro ao devolver $response")
val alertDialog = AlertDialog.Builder(context)
val responseError = gson.fromJson(response, PixErrorResponse::class.java)
alertDialog.setTitle(R.string.pix_refund)
.setMessage(responseError.errorMessage)
.setNeutralButton("Ok") { _, _ -> }
.show()
}
override fun onSuccess(response: String?) {
val pixResponse = gson.fromJson(response, PixResponse::class.java)
println("Devolvido $pixResponse")
Toast.makeText(context, "Pix devolvido!", Toast.LENGTH_SHORT).show()
}
}
pixClient.refundPixPayment(
gson.toJson(refundPixRequest),
callback
)
}
Exemplo da classe RefundByTxIdPixRequest:¶
data class RefundByTxIdPixRequest(
@SerializedName("tx_id")
val txId: String,
@SerializedName("preview_customer_receipt")
val previewCustomerReceipt: Boolean,
@SerializedName("preview_merchant_receipt")
val previewMerchantReceipt: Boolean,
@SerializedName("print_customer_receipt")
val printCustomerReceipt: Boolean,
@SerializedName("print_merchant_receipt")
val printMerchantReceipt: Boolean
)
PixResponse¶
data class PixResponse(
@SerializedName("cob_value")
val cobValue: String,
@SerializedName("status")
var status: String,
@SerializedName("tx_id")
val txID: String,
)
PixErrorResponse¶
class PixErrorResponse (
@SerializedName("error_message")
val errorMessage: String
)