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”
}
Updated about 1 year ago