Ir para o conteúdo

Devolución


Devolución de una PIX

Info

La funcionalidad de impresión automática está disponible a partir de la versión 1.3.3.0 de la aplicación Pix.

La devolución se podrá realizar de dos formas:

refund()

Para enumerar las opciones de reembolso, se utilizará la función refund y se debe pasar la siguiente solicitud:

Request

{
  "preview_customer_receipt": true,
  "preview_merchant_receipt": true,
  "print_customer_receipt": true,
  "print_merchant_receipt": true
}

Parámetros

Nombre Tipo Obligatorio Descripción
Request refundPixPayment Objeto de transferencia de datos que contendrá la información de solicitud de foto. Tenga en cuenta que no todos los parámetros son obligatorios.
callback RefundPixPaymentCallback Interfaz que se ejecutará para notificaciones de éxito o error en el proceso de pix.

Detalles de parámetros

request (refundPixPayment)

Nombre Tipo Obligatorio Descripción Valor por defecto
preview_customer_receipt Boolean No Indica si se debe mostrar el comprobante del cliente. true
preview_merchant_receipt Boolean No Indica si se debe mostrar el comprobante del establecimiento. true
print_customer_receipt Boolean No Indica si el comprobante del cliente debe imprimirse automáticamente.
Nota: La impresión automática solo ocurrirá si la vista previa del comprobante está desactivada (false).
true
print_merchant_receipt Boolean No Indica si el comprobante del establecimiento debe imprimirse automáticamente.
Nota: La impresión automática solo ocurrirá si la vista previa del comprobante está desactivada (false).
true

Detalles de parámetros

callback (RefundPixPaymentCallback)

Nombre Tipo Obligatorio Descripción
onSuccess Cadena Método de notificación en caso de éxito. La respuesta devuelta será una cadena en formato json que tendrá los campos mostrados en la clase PixResponse
onError Cadena Método de notificación en caso de error. La respuesta devuelta será una cadena en formato json que tendrá los campos mostrados en la clase 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
    )

}

Ejemplo de la clase 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 un reembolso utilizando tx-id, se utilizará la función refundPixPayment y se deberá pasar la siguiente solicitud:

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

Nombre Tipo Obligatorio Descripción
Request refundByTxIdPixPayment Objeto de transferencia de datos que contendrá la información de solicitud de foto. Tenga en cuenta que no todos los parámetros son obligatorios.
callback RefundByTxIdPixPaymentCallback Interfaz que se ejecutará para notificaciones de éxito o error en el proceso de pix.

Detalles de los parámetros

request (refundByTxIdPixPayment)

Nombre Tipo Obligatorio Descripción Valor por defecto
tx_id String tx_id representa la identificación de la transacción pix.
preview_customer_receipt Boolean No Indica si se debe mostrar el comprobante del cliente. true
preview_merchant_receipt Boolean No Indica si se debe mostrar el comprobante del establecimiento. true
print_customer_receipt Boolean No Indica si el comprobante del cliente debe imprimirse automáticamente.
Nota: La impresión automática solo ocurrirá si la vista previa del comprobante está desactivada (false).
true
print_merchant_receipt Boolean No Indica si el comprobante del establecimiento debe imprimirse automáticamente.
Nota: La impresión automática solo ocurrirá si la vista previa del comprobante está desactivada (false).
true

Detalles de los parámetros

callback (RefundByTxIdPixPaymentCallback)

Nombre Tipo Obligatorio Descripción
onSuccess Cadena Método de notificación en caso de éxito. La respuesta devuelta será una cadena en formato json que tendrá los campos mostrados en la clase PixResponse
onError Cadena Método de notificación en caso de error. La respuesta devuelta será una cadena en formato json que tendrá los campos mostrados en la clase PixErrorResponse
fun refundPixService(
    pixClient: PixClient,
    txId: String,
    previewCustomerReceipt: Boolean,
    previewMerchantReceipt: Boolean,
    printCustomerReceipt: Boolean,
    printMerchantReceipt: Boolean,
    context: Context
) {
    val gson: Gson = Gson()
    val refundPixRequest = RefundPixRequest(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
    )
}

Ejemplo de la clase 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
)