Ir para o conteúdo

Realiza o processo de devolução não referenciada.


Esse método deve ser chamado para executar a devolução não referenciada.

A partir da versão 3.1.5.0

Quando uma transação é feita, anteriormente, poderia ser confirmado realizando sua impressão (ou via printReceipt), ou ao realizar uma nova transação. Agora, o estorno também pode ser confirmado ao usar o novo parâmetro autoConfirm - indicando se deve ou não confirmar independente da impressão - ou utilizando o novo método confirmReversePayment().

Métodos

Assinatura Descrição
void refundPaymentV2(RefundRequestV2 settlementRequest, PaymentCallback paymentCallback) Realiza o processo de devolução não referenciada.
void confirmReversePayment(String paymentId, PaymentCallback paymentCallback) Confirma uma autorização de devolução não autorizada realizada anteriormente.
void cancelReversePayment(String paymentId, PaymentCallback paymentCallback) Desfaz uma solicitação devolução não referenciada.

refundPaymentV2()

Parâmetros

Nome Tipo Obrigatório Descrição
request RefundRequestV2 Sim Objeto de transferência de dados que conterá as informações da requisição da devolução não referenciada. Note que nem todos os parâmetros são obrigatórios.
callback PaymentCallback Sim Interface que será executada para notificações de sucesso ou erro do processo de devolução.

Detalhe dos parâmetros request (RefundRequestV2)

Nome Tipo Obrigatório Descrição
value BigDecimal Não Valor da devolução não referenciada. Caso não seja preenchido (null), ou seja preenchido com 0 (zero), o App de Pagamento deve solicitar o valor ao operador.
O valor deverá ser formatado com duas casas decimais.
ApplicationInfo.credentials Credentials Sim Credenciais da aplicação que está solicitando a operação, conforme cadastro na PayStore. Basicamente, trata-se da identificação da aplicação e o token de acesso.
ApplicationInfo.softwareVersion String Não Versão da aplicação que está solicitando o pagamento.
printMerchantReceipt Boolean Não Indica se o comprovante do estabelecimento deve ser impresso ou não. O valor padrão é false, isto é, o comprovante não é impresso.
printCustomerReceipt Boolean Não Indica se o comprovante do cliente deve ser impresso ou não. O valor padrão é false, isto é, o comprovante não é impresso.
productShortName String Não Quando preenchido, após a leitura do cartão e identificação do produto de bandeira, caso não corresponda a productShortName do produto em questão, o terminal deve exibir um erro em tela e encerrar a transação. Exemplos: VI=VISA, MC=MASTERCARD, AX=AMEX
appTransactionId String Não Identificador da transação integrada para o software. O Identificador referido é aquele utilizado na aplicação que originou a solicitação de devolução. Não deve se repetir.
previewMerchantReceipt Boolean Não Indica se a tela de pré-visualização do comprovante do estabelecimento deve ser exibida após a confirmação da transação. O valor padrão é true, o que significa que o comprovante será exibido.
previewCustomerReceipt Boolean Não Indica se a tela de pré-visualização do comprovante do cliente deve ser exibida após a confirmação da transação. O valor padrão é true, o que significa que o comprovante será exibido.
autoConfirm (v3.1.5.0) Boolean Não Indica se a transação deve ser confirmada automaticamente.
Valores possíveis:
1. null (padrão) : confirma automaticamente caso ocorra a impressão do comprovante.
2. true : confirma automaticamente independente da regra de impressão.
3. false : não confirma automaticamente, ficando pendente aguardando confirmação.
merchantGroupCode String Se allowMultimerchant= true, groupCode é obrigatório Código do grupo de comerciantes.
originalReceiptNumber String Não Número do cupom da transação original a ser reembolsada.
originalReceiptDate Date Não Data do comprovante da transação original a ser reembolsada.

callback (RefundCallback)

Nome Tipo Obrigatório Descrição
onSuccess Método para notificação em caso de sucesso.
Refund.acquirerId String Sim ID da adquirente.
Refund.refundId String Sim ID da devolução.
Refund.productShortName String Sim Corresponde ao productShortName correspondente ao produto de bandeira do contexto da transação.
Refund.batchNumber String Sim ID do lote ao qual a transação pertence.
Refund.nsuTerminal String Sim NSU gerado pelo terminal para a transação. Os 4 dígitos mais à direita correspondem ao Ticket Number. Esse NSU é informado pelo terminal para o PhAST no parâmetro “merchantTransactionId”.
Refund.acquirerResponseCode String Sim Código de resposta da adquirente.
Refund.acquirerResponseDate Date Sim Data/hora retornada pela adquirente.
Refund.acquirerAuthorizationNumber String Sim Número da autorização fornecido pela adquirente (consta no comprovante do cliente Portador do Cartão).
Refund.Receipt.merchantVia String Não Conteúdo do comprovante - via do estabelecimento. Cópia lojista
Refund.Receipt.clientVia String Não Conteúdo do comprovante - via do cliente. Cópia cliente
onError Método para notificação em caso de erro.
ErrorData.paymentsResponseCode String Sim Código de resposta para o erro ocorrido. Vide Códigos de Resposta
ErrorData.acquirerResponseCode String Não Código de resposta para o erro ocorrido retornado pela adquirente. Note que este erro só será retornado se a transação não for autorizada pela adquirente.
ErrorData.responseMessage String Sim Mensagem descritiva da causa do erro.

confirmReversePayment()

Este método deve ser chamado para confirmar uma devolução não referenciada que o terminal conseguiu processar completamente a perna de autorização enviada pelo Autorizador.

Este método não deve ser chamado para uma devolução não referenciada já confirmado, ou seja, em que já se executou o método confirmReversePayment() anteriormente.

Este método não deve ser chamado para uma devolução não referenciada já desfeito, ou seja, em que já se executou o método cancelReversePayment() anteriormente.

Este método não deve ser chamado para uma devolução não referenciada que foi negada pelo Autorizador, ou seja, a transação precisa ter sido autorizada pelo Autorizador.

Parâmetros

Nome Tipo Obrigatório Descrição
paymentId String Sim Identificador da transação que será confirmada. O Identificador referido é aquele utilizado na aplicação de pagamentos.
callback PaymentCallback Sim Interface que será executada para notificações de sucesso ou erro.

Detalhe dos parâmetros

callback

Nome Tipo Obrigatório Descrição
onSuccess Método para notificação em caso de sucesso.
onError Método para notificação em caso de erro.
ErrorData.paymentsResponseCode String Sim Código de resposta para o erro ocorrido. Vide Códigos de Resposta
ErrorData.acquirerResponseCode String Não Código de resposta para o erro ocorrido retornado pela adquirente. Note que este erro só será retornado se a transação não for autorizada pela adquirente.
ErrorData.responseMessage String Sim Mensagem descritiva da causa da não autorização. Caso a transação tenha sido negada pela adquirente, conterá a mensagem retornada pela adquirente.

cancelReversePayment()

Este método deve ser chamado para desfazer uma devolução não referenciada anteriormente autorizada. Esta transação deve não ter sido desfeita ainda e deve ter sido autorizada (não negada) previamente.

Como dito na descrição de reversePayment(), é possível que não haja desfazimento para uma devolução não referenciada para uma determinada adquirente. Assim, o método cancelReversePayment() pode retornar um erro específico informando que não é possível executar tal operação (vide Códigos de Resposta).

Parâmetros

Nome Tipo Obrigatório Descrição
paymentId String Sim Identificador da transação que será desfeita. O Identificador referido é aquele utilizado na aplicação de pagamentos.
callback PaymentCallback Sim Interface que será executada para notificações de sucesso ou erro.

Detalhe dos parâmetros

callback

Nome Tipo Obrigatório Descrição
onSuccess Método para notificação em caso de sucesso.
onError Método para notificação em caso de erro.
ErrorData.paymentsResponseCode String Sim Código de resposta para o erro ocorrido. Vide Códigos de Resposta
ErrorData.acquirerResponseCode String Não Código de resposta para o erro ocorrido retornado pela adquirente. Note que este erro só será retornado se a transação não for autorizada pela adquirente.
ErrorData.responseMessage String Sim Mensagem descritiva da causa da não autorização. Caso a transação tenha sido negada pela adquirente, conterá a mensagem retornada pela adquirente.

Exemplo

public class MyActivity extends Activity implements PaymentClient.PaymentCallback {

    private PaymentClient paymentClient;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_payment);

        paymentClient = new PaymentClientImpl();
    }

    @Override
    protected void onResume() {
        super.onResume();
        paymentClient.bind(this);
    }

    @Override
    protected void onDestroy() {
         try {
            paymentClient.unbind(this);
        } catch (Exception e) {
            Log.e(TAG, e.getMessage());
        }
        super.onDestroy();
    }

    public void doExecute(){
        ApplicationInfo appInfo = new ApplicationInfo();
        appInfo.setCredentials(new Credentials("demo-app", "TOKEN-KEY-DEMO"));
        appInfo.setSoftwareVersion("1.0.0.0");

        RefundRequestV2 refundRequestV2 = new RefundRequestV2();
        refundRequestV2.setApplicationInfo(appInfo);
        refundRequestV2.setPrintMerchantReceipt(true);

        try {
            paymentClient.refundPaymentV2(refundRequestV2, this);
        } catch (ClientException e) {
            Log.e(TAG, "Error starting devolution", e);
        }
    }

    @Override
    public void onError(ErrorData errorData) {
        Log.e(TAG, "Error: " + errorData.getResponseMessage());
    }

    @Override
    public void onSuccess(Refund refund) {
        Log.i(TAG, "Success!");
    }
}