Deseja cancelar um pagamento já autorizado?
Se você estiver usando captura com atraso ou captura manual em vez da captura automática, você poderá cancelar uma autorização
Às vezes, os clientes mudam de idéia no meio da compra ou os funcionários da loja percebem que cometeram um erro enquanto o comprador estava usando o terminal.
Uma solicitação de cancelamento permite que um cliente ou a equipe da loja aborte um pagamento em andamento. Quando o pedido de cancelamento é recebido antes de o pagamento ser aprovado , o pagamento é cancelado.
Aqui explicamos como os pagamentos podem ser cancelados:
Cancele um pagamento de sua caixa registradora
Enquanto a solicitação de pagamento estiver em andamento, você poderá cancelá-la fazendo uma solicitação de cancelamento na sua caixa registradora.
-
Para cancelar um pagamento, faça uma solicitação POST para o endpoint da API de Terminais, especificando:
-
Obejto
MessageHeader
. Este segue a estruturaMessageHeader
padrão, explicada nos fundamentos da API de terminais:ProtocolVersion
: 3.0MessageClass
: ServiceMessageCategory
: Abort.MessageType
: RequestSaleID
: Seu ID exclusivo para a caixa registradora que faz o pedido de cancelamento.ServiceID
: Seu ID exclusivo para esta tentativa de transação, consistindo em 1 a 10 caracteres alfanuméricos. Esse valor deve ser exclusivo nas últimas 48 horas.-
POIID
: ID exclusivo do terminal. Isso indica para qual terminal o pagamento será roteado.
-
Objeto
AbortRequest
com:AbortReason
: MerchantAbortMessageReference.MessageCategory
: PaymentMessageReference.SaleID
: Seu ID exclusivo da caixa registradora que fez a solicitação de pagamento.MessageReference.ServiceID
: A solicitaçãoServiceID
do pagamento está sendo cancelada.
O exemplo abaixo mostra como você faria uma solicitação para cancelar um pagamento em andamento com um valor
ServiceID
de 21796.{ "SaleToPOIRequest":{ "MessageHeader":{ "ProtocolVersion":"3.0", "MessageClass":"Service", "MessageCategory":"Abort", "MessageType":"Request", "SaleID":"POSSystemID12345", "ServiceID":"29239", "POIID":"V400m-324688179" }, "AbortRequest":{ "AbortReason":"MerchantAbort", "MessageReference":{ "MessageCategory":"Payment", "SaleID":"POSSystemID12345", "ServiceID":"21796" } } } }
Para obter uma lista completa dos campos que você pode passar em uma solicitação de cancelamento, consulte a referência AbortRequest API.
Nenhuma resposta da API é gerada para a solicitação de cancelamento. Você recebe apenas uma HTTP
200 OK
.Se o cancelamento foi bem-sucedido:
- O terminal exibe a mensagem Cancelled na tela.
-
A solicitação de pagamento retorna uma resposta contendo:
Result
: Failure-
ErrorCondition
: Aborted
-
-
Para verificar novamente se o pagamento foi realmente cancelado, faça uma
TransactionStatusRequest
.-
Siga as instruções em Verificar status da transação, especificando:
MessageReference.SaleID
: ASaleID
da caixa tregistradora que efetuou a transação de pagamento que você tentou cancelar.MessageReference.ServiceID
: AServiceID
da transação de pagamento que você tentou cancelar.MessageReference.MessageCategory
: Payment
O exemplo abaixo mostra como você verificaria o status da transação de um pagamento com
ServiceID
21796, que você tentou cancelar.{ "SaleToPOIRequest": { "MessageHeader": { "ProtocolVersion": "3.0", "MessageClass": "Service", "MessageCategory": "TransactionStatus", "MessageType": "Request", "SaleID": "POSSystemID12345", "ServiceID": "29240", "POIID": "V400m-324688179" }, "TransactionStatusRequest": { "ReceiptReprintFlag": true, "DocumentQualifier": [ "CashierReceipt", "CustomerReceipt" ], "MessageReference": { "SaleID": "POSSystemID12345", "ServiceID": "21796", "MessageCategory": "Payment" } } } }
Se o pagamento foi cancelado, você deverá receber uma resposta de transação não encontrada. A
TransactionStatusResponse.Response
tem umErrorCondition
de NotFound. -
Cancele um pagamento do terminal
Para cancelar um pagamento em andamento de um terminal:
- Pressione o botão no teclado do terminal.
- Na tela do terminal, confirme que deseja cancelar a transação.
Se bem-sucedido:
- O terminal exibe uma mensagem Cancelled na tela.
- A soilicitação de pagamento retorna uma resposta contendo:
Result
: FailureErrorCondition
: Cancel
Lidando com falhas na solicitação de cancelamento
Se sua solicitação de cancelamento falhou (e o pagamento foi aprovado), você precisará reembolsar o pagamento. Para obter mais informações sobre o reembolso de um pagamento, consulte Reembolsar um pagamento concluído.