Ir para o conteúdo

Consulta


Consultar transações

A consulta pode ser feita de três formas, utilizando o tx_id da transação, utilizando o pix_client_id que foi passado durante criação da cobrança e realizando a consulta completa, onde:

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.

consultByTxId()

Para realizar a consulta utilizando o tx_id da transação:

Request

// request de consulta
{
  "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 consultByTxId 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 ConsultPixPaymentCallback Sim Interface que será executada para notificações de sucesso ou erro do processo de consulta.

Detalhe dos Parâmetros

request (consultByTxId)

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 (ConsultPixPaymentCallback)

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 consultCobRequestService(
    pixClient: PixClient,
    txId: String,
    previewCustomerReceipt: Boolean,
    previewMerchantReceipt: Boolean,
    printCustomerReceipt: Boolean,
    printMerchantReceipt: Boolean,
    context: Context
) {
    val gson: Gson = Gson()

    if (pixClient.isBound() && txId.isNotBlank()) {
        val consultCobRequest = ConsultCobRequest(txId, previewCustomerReceipt, previewMerchantReceipt, printCustomerReceipt, printMerchantReceipt)
        val callback = object : PixClient.ConsultByTxIdCallback {
            override fun onError(response: String?) {
                val responseError = gson.fromJson(response, PixErrorResponse::class.java)
                println("Erro $response")
                Toast.makeText(context, responseError.errorMessage, Toast.LENGTH_SHORT).show()
            }

            override fun onSuccess(response: String?) {
                println("consultado $response")
                if (response != null) {
                    val responseObject =
                        gson.fromJson(response, PixResponse::class.java)
                    val responseUtils = ResponseUtils()
                    Toast.makeText(
                        context,
                        responseUtils.messageConsultPix(context, responseObject),
                        Toast.LENGTH_LONG
                    ).show()
                }
            }
        }
        pixClient.consultByTxId(
            gson.toJson(consultCobRequest),
            callback
        )
    }
}
Exemplo da classe ConsultCobRequest:
data class ConsultCobRequest(
    @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
)
Exemplo da classe ResponseUtils:
class ResponseUtils {

    fun messageConsultPix(context: Context, response: PixResponse): String {

        return "${context.getString(R.string.consult)}: \n" +
               "${context.getString(R.string.value)}: ${response.cobValue} \n" +
               "${context.getString(R.string.status)}: ${chargeStatus(context, response.status.getValue())} \n" +
               "${context.getString(R.string.tx_id)}: ${response.txID}"
    }

    fun chargeStatus(context: Context, status: String): String {
        return when (status) {
            ChargeStatus.ACTIVE.getValue() -> context.getString(R.string.active)
            ChargeStatus.CONCLUDED.getValue() -> context.getString(R.string.sale)
            ChargeStatus.REFUNDED.getValue() -> context.getString(R.string.refunded)
            ChargeStatus.REFUND_PROCESSING.getValue() -> context.getString(R.string.refund_processing)
            ChargeStatus.REFUND_NOT_DONE.getValue() -> context.getString(R.string.refund_not_done)
            ChargeStatus.REMOVED_BY_USER.getValue() -> context.getString(R.string.cancelled_charge)
            ChargeStatus.REMOVED_BY_PSP.getValue() -> context.getString(R.string.cancelled_charge)
            ChargeStatus.EXPIRED.getValue() -> context.getString(R.string.expired)
            else -> ""
        }
    }
}
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
)

consultByPixClientId()

Para consultar utilizando o pix_client_id:

Request

// request de consulta
{
  "pix_client_id": "b849b36b-7846-48f8-81ce-a8dbf2530f42"
}

Parâmetros

Nome Tipo Obrigatório Descrição
request consultByPixClientId 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 ConsultByPixClientIdCallback Sim Interface que será executada para notificações de sucesso ou erro do processo do pix.

Detalhe dos Parâmetros

request (consultByPixClientId)

Nome Tipo Obrigatório Descrição
pix_client_id String Sim O pix_client_id é um identificador único utilizado pelo app de integração para identificar as cobranças criadas.

Detalhe dos Parâmetros

callback (ConsultByPixClientIdCallback)

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 consultPixClientIdRequestService(
    pixClient: PixClient,
    pixClientId: String,
    context: Context
) {
    val gson: Gson = Gson()

    if (pixClient.isBound() && pixClientId.isNotBlank()) {
        val consultPixByCorrelationIdRequest = ConsultPixByCorrelationIdRequest(pixClientId)
        val callback = object : PixClient.ConsultByPixClientIdCallback {
            override fun onError(response: String?) {
                val responseError = gson.fromJson(response, PixErrorResponse::class.java)
                println("Erro $response")
                Toast.makeText(context, responseError.errorMessage, Toast.LENGTH_LONG).show()
            }

            override fun onSuccess(response: String?) {
                println("Consultado $response")
                if (response != null) {
                    val responseObject =
                        gson.fromJson(response, PixResponse::class.java)
                    val responseUtils = ResponseUtils()
                    Toast.makeText(
                        context,
                        responseUtils.messageConsultPix(context, responseObject),
                        Toast.LENGTH_LONG
                    ).show()
                }
            }
        }
        pixClient.consultByPixClientId(
            gson.toJson(consultPixByCorrelationIdRequest),
            callback
        )
    }
}
Exemplo da classe ConsultPixByCorrelationIdRequest:
data class ConsultPixByCorrelationIdRequest(
    @SerializedName("pix_client_id")
    val pixClientId: String
)
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
)

consult()

O método PixClient.ConsultCallback faz uma consulta utilizando a API do cliente Pix e lida com os resultados dessa consulta através de um callback.

Request

// request de consulta
{
  "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 PixClientConsult 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 PixClientConsultCallback Sim Interface que será executada para notificações de sucesso ou erro do processo do pix.

Detalhe dos Parâmetros

request (pixClientconsult)

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 (ConsultPixPaymentCallback)

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
val callback = object : PixClient.ConsultCallback {
        override fun onError(response: String?) {
            Toast.makeText(context, "Erro na consulta: $response", Toast.LENGTH_LONG).show()
            onError(response)
        }

        override fun onSuccess(response: String?) {
            Toast.makeText(context, "Consulta realizada com sucesso.", Toast.LENGTH_LONG).show()
            onSuccess(response)
        }
    }

    pixClient.consult(request, callback)