Reembolsar um Pagamento
Este guia explica como reembolsar (ou cancelar) um pagamento previamente aprovado usando a operação Refund do POS Integrado.
O que é um reembolso
A operação Refund reverte uma venda concluída, total ou parcialmente. Você pode executá-la no mesmo dia da venda original ou em até 365 dias. Se algum parâmetro não for informado, o POS exibe as telas de digitação correspondentes. O manual usa “Cancellation” (cancelamento) para este comando.
Antes de começar
Antes de emitir um reembolso:
- Um Connector deve ser criado e validado usando
Polling - O Modo POS Integrado deve estar ativo
- A transação original deve ser elegível para reembolso
Passo 1: Execute o reembolso
Para realizar um reembolso, chame a operação Refund com os detalhes da transação original. A maioria dos parâmetros é opcional: o POS os solicita na tela se estiverem ausentes. Informá-los garante um fluxo de automação mais fluido.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
AuthorizationCode | String | Não | Código de autorização da transação original (por exemplo, do campo “AUT” do recibo ou da resposta de Sale). |
OriginTransDate | Date | Não | Data da transação original, no formato ISO8601 com fuso horário. Não pode ser posterior à data atual. |
Amount | Long | Não | Valor do reembolso na moeda local. Se omitido, o valor total é reembolsado (reembolsos parciais são suportados). |
SkipConfirmation | Bool | Não | Ignora a tela de confirmação. |
SkipReceipt | Bool | Não | Não imprime o recibo do cliente. |
PrintOnPos | Bool | Não | Imprime no POS ou retorna o conteúdo do recibo. Consulte o Capítulo 4, Responsabilidade de Impressão. |
RefundType | Enum | Não | Qual parte da venda reembolsar: SaleWithdrawal (venda e saque), Sale (somente a venda) ou Withdrawal (somente o saque). |
Se uma informação obrigatória for omitida, o POS a solicita na tela. A elegibilidade para reembolso e as regras de reembolso parcial são aplicadas pelo POS e pelo adquirente. Você pode emitir vários reembolsos sobre a mesma transação original até que a soma dos valores alcance o total original.
O exemplo a seguir mostra como iniciar um reembolso de uma venda previamente aprovada. A data da transação (OriginTransDate) não pode ser posterior à data atual. A data retornada pela venda original é um valor válido.
var refundRequest = new RefundRequest
{
AuthorizationCode = "551437",
OriginTransDate = originalSale.AccountingDate,
Amount = 10000
};
var refundResult = await connector.RefundAsync(refundRequest);Passo 2: Trate a resposta
Após o processamento bem-sucedido, o POS retorna uma resposta estruturada com o resultado da reversão. Os campos a seguir estão sempre presentes em uma resposta de reembolso bem-sucedida:
{
"Code": 0,
"Message": "APPROVED",
"CommerceCode": "1234567890",
"TerminalId": "GET00123",
"AuthorizationCode": "654321",
"NsuLastSuccessfulMessage": "123456789",
"ReceiptContent": null
}Onde:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Code | Int | Sim | Código de resposta. 0 indica sucesso. |
Message | String | Sim | Mensagem de resultado (por exemplo, APPROVED). |
CommerceCode | String | Sim | Código de filial aprovado pela Getnet para o processamento de transações. |
TerminalId | String | Sim | Código do terminal POS. |
AuthorizationCode | String | Sim | Código de autorização da transação de reembolso. |
NsuLastSuccessfulMessage | String | Sim | Última mensagem NSU. |
ReceiptContent | Dict | Não | Conteúdo estruturado do recibo. null quando PrintOnPos é true. Consulte Responsabilidade de Impressão. |
ReceiptContent é null quando a requisição define PrintOnPos como true — o terminal imprime o recibo em vez de retorná-lo.
Sempre verifique os campos Code e Message antes de confirmar o reembolso no seu sistema.
Próximos passos
- Para informações sobre o processamento de vendas que geram códigos de autorização, consulte o guia Pagamento em Passo Único.
- Para controlar a impressão de recibos e recuperar o conteúdo do recibo, consulte o guia Responsabilidade de Impressão.
- Para uma referência completa dos parâmetros e valores de retorno de Refund, consulte a Referência de Métodos e Parâmetros.