Desfazimento de transações (Reversals)

🚧

REVERSÃO X ESTORNO

Lembre-se que a diferença entre reversão e estorno é que a primeira (REVERSÃO) pode ser executada sem a presença do cartão físico, usando o id ClientTransaction (recebido pela callback onStartTransaction no inicio do proceso e que representa o fluxo em andamento no lado do servidor) e possui um tempo limite para ser executado após a confirmação da cobrança. É aplicado em casos específicos, geralmente de forma automática quando algo ocorreu de errado durante o fechamento da compra (remoção do cartão antecipada, tentativa de fraude, falta de confirmação da maquininha da finalização da compra no cartão, cliente apertou o botão vermelho (cancela) durante a finalização da compra...)

Já a segunda (ESTORNO) é uma ação arbitrária da sua aplicação, e que pode ser executada em até 24h para débito e até 10 dias (confirme com seu contato comercial) após a venda, mas precisa da presença física do cartão original da cobrança. O padrão é usar estorno ao invés de reversão. A mesma utiliza-se do ID DA TRANSAÇÃO que é gerado ao final no sucesso da mesma e recebido no corpo do JSON de resposta de sucesso no campo ["id"]

Para fins práticos, você sempre estará trabalhando diretamente e mais frequentemente de modo arbitrário com ESTORNOS e raramente com REVERSÃO.

Mensagem (reverseTransactionRequest)

Mensagem com o comando para que a transação seja desfeita (desfazimento) ou reversed.
Um dos 2 parâmetros devem ser passados:

clientTransactionId, obtido através do evento onTransactionStart, ou transactionId, obtido com o resultado de uma transação.

Como resposta, a mensagem é enviada com uma das mensagens reverseTransactionSuccessful ou reverseTransactionFailed.

📘

Limite de tempo

O desfazimento atualmente tem um limite de tempo de 1 hora, podendo variar de acordo com o tipo de emissor.

📘

Desfazimento no mesmo PC

Essa mensagem atualmente só funciona com o clientTransactionId se realizada no PC onde a transação foi realizada. Caso contrário, usar o transactionId.

Direção da mensagem: Aplicação Cliente -> Zoop PC Server

{
  “mid”: “reverseTransactionRequest”,
  "marketplaceId": "{{MARKETPLACE_ID}}", // Mudar pelo marketplaceId correto.
  "publishableKey": "zpk_test_...", // Mudar pelo correto. Geralmente fixo
  “clientTransactionId”: “LTD00123991929391993129” // Identificador de identificador local de transação (formato char(20)) ou usar transactionId - Ver descrição.
}

Respostas:

Mensagem (reverseTransactionSuccessful)

Mensagem com o resultado de uma solicitação de desfazimento (reverseTransactionRequest).
Deverá conter o parâmetro enviado ao reverseTransactionRequest: clientTransactionId ou transactionId.

Direção da mensagem: Zoop PC Server -> Aplicação Cliente

{
  “mid”: “reverseTransactionSuccessful”,
  “clientTransactionId”: “LTD00123991929391993129” // Identificador local de transação (formato char(20))  ou  transactionId - Ver descrição.
}

Mensagem (reverseTransactionFailed)

Mensagem com erro do resultado de uma solicitação de desfazimento (reverseTransactionRequest).
Deverá conter o parâmetro enviado ao reverseTransactionRequest: clientTransactionId ou transactionId.

Direção da mensagem: Zoop PC Server -> Aplicação Cliente

{
  “mid”: “reverseTransactionFailed”,
  “clientTransactionId”: “LTD00123991929391993129” // Identificador local de transação (formato char(20)) ou transactionId - Ver descrição.
}

Mensagem (endOfTransaction)

Essa mensagem indica o encerramento por completo a transação.

{
  “mid”: “endOfTransaction”
}