Dúvidas Frequentes: Pedidos que utilizam o boleto como método de pagamento constam como pagos no gateway, mas são cancelados na VTEX

Neste tópico vamos descrever como checar casos onde o pedido consta como pago no gateway, mas foi cancelado na VTEX. Para analisar o que ocorreu em cada caso em específico, é necessário checar os logs da transação referente ao pedido em questão, para isso basta acessar a página de “Transações” e clicar sobre a transação desejada.

Note que o número da transação referente a um pedido específico é o mesmo número do sequencial do pedido, ou seja, o número logo ao lado do número do pedido:

Checando os logs da transação é possível encontrar as Regras da Autorização da Transação,
Authorization Rules ”:

Nelas são definidas:

  • o número de tentativas de autorizar essa transação no campo MaxEnqueues;
  • o tempo até a primeira tentativa no campo FirstReTryAttemptInSeconds;
  • tempo mínimo entre tentativas no campo MinimumScaleInMinutes;
  • tempo máximo entre tentativas no campo MaximumScaleInMinutes.

Sendo assim, após realizar todas as tentativas definidas no campo MaxEnqueues, é então disparado o fluxo de cancelamento do pedido:

Cabe ressaltar que o número de tentativas é calculado com base no valor enviado pelo gateway de pagamentos no campo delayToCancel na resposta da requisição da transação, conforme a documentação Create Payment. Ou seja, esse campo não pode ser alterado pelo cliente ou diretamente na plataforma VTEX, é um campo que precisa ser ajustado pelo conector de pagamentos, caso seja necessário.

O valor enviado no campo é dividido por 86.400 (segundos em um dia), se o resultado for maior que 0 significa que o delayToCancel é maior que um dia. Se for esse o caso, a quantidade de novas tentativas será igual a 6 tentativas por dia.
Se o resultado da divisão for igual a 0, significa que o delayToCancel tem um tempo menor ou igual a 1 dia para ser cancelado, sendo assim nesse caso, será feita 1 nova tentativa por hora.

Ou seja, se o campo delayToCancel for maior que 24 horas (86.400 segundos), serão feitas 6 tentativas por dia. Se for menor, será feita uma por hora.

Caso esse campo seja enviado como null, serão feitas 336 tentativas para aprovação desse tipo de pagamento.

Casos de time out:

Além do cancelamento por não aprovação do pagamento dentro do limite de tentativas estipulado, é possível que em alguns casos pedidos que tenham o boleto como método de pagamento tenham o fluxo de cancelamento disparado após um timeout, esse erro ocorre quando o conector não responde à requisição de autorização da transação dentro de 20 segundos, conforme o nosso Payment Provider Protocol. Nesses casos o seguinte erro será exibido nos logs da transação Message = Timeout by cancellation token:

Recomendações:

Infelizmente nesses cenários não é possível “descancelar” esses pedidos. Então algumas recomendações podem ser feitas:

  1. Checar com o parceiro o que pode ter ocorrido, pois a VTEX é 100% passiva no que tange ao fluxo de pagamentos, apenas recebemos a notificação do parceiro e alteramos o status da transação.
  2. Para evitar maiores prejuízos, uma alternativa é gerar um vale-presente para o cliente final no valor do pedido e solicitar que o mesmo refaça o pedido. Existem algumas formas de fazer com que esse processo seja feito de uma maneira mais simples e com menos fricção para o cliente final, que é através da utilização do carrinho compartilhável. Deixo aqui o link da nossa documentação que trata dessa solução: Carrinho compartilhável

Possíveis dúvidas:

É possível mudar o status de um pedido cancelado para dar prosseguimento à transação?

Resp.: Infelizmente não, depois que o fluxo de cancelamento de uma transação é disparado não há como “descancelar” ela.

É possível alterar o número de tentativas de aprovação de um pedido?

Resp.: Os conectores conseguem fazer isso através do campo delayToCancel que deve ser enviado na resposta da requisição da transação, conforme a seguinte documentação: Create Payment

Karina Mota
Field Software Engineer | VTEX

11 Likes