Provider de Reversão

Caso uma transação não tenha uma resposta do Autorizador Stone ou da API de QRCode e retorne timeout, o SDK Android marcará a transação com o status WITH_ERROR e, com isso, enviará automaticamente um desfazimento logo em seguida no caso de Autorização, ou atualizará os dados no caso de transações PIX (processo chamado de Sonda).

Se o desfazimento for efetuado com sucesso, a transação terá status atualizado de WITH_ERROR para CANCELLED e o provider finalizado como erro COMMUNICATION_ERROR.

Se a requisição de cancelamento também tiver timeout, será retornado o status WITH_ERROR.

O ReversalProvider deve ser utilizado para os casos em que existem transações com desfazimento pendente (status WITH_ERROR). Este provider varrerá o banco procurando por transações com esse status para realizar o cancelamento ou sonda.

🚧

BOA PRÁTICA

Crie uma rotina no seu App para chamar este Provider para realizar o cancelamento das transações que ficarem com status WITH_ERROR.

A falta desta rotina pode resultar em cobranças duplicadas dos consumidores finais.

ReversalProvider reversalProvider = new ReversalProvider(CONTEXT);
reversalProvider.setDialogMessage("Cancelando transação com erro");
reversalProvider.isDefaultUI();
reversalProvider.setConnectionCallback(new StoneCallbackInterface() {
      @Override
      public void onSuccess() {
        // code code code
      }

      @Override
      public void onError() {
        // code code code
      }
});
reversalProvider.execute();

❗️

Sonda de Transações PIX

Transações PIX que forem abortadas pelo usuário após o pagamento e antes do POS identificar o crédito em conta (devido, por exemplo, à instabilidade de rede) serão atualizadas para APROVADAS e constarão nos relatórios, e isso deve ser considerado em qualquer fluxo de conciliação de sua solução.

Isso se dá ao fato de não haver, de fato, reversão para pagamentos instantaneas.