Reembolsar um pagamento
Este documento se aplica aos seguintes países:
| Brasil | Chile | México | Espanha | Uruguai |
|---|
Este guia explica como processar cancelamentos e reembolsos de pagamentos previamente autorizados usando o Getnet Web Checkout via Global API. Dependendo do momento em que o reembolso é solicitado, o sistema o trata de forma diferente: reembolsos no mesmo dia são processados como cancelamentos (anulando a transação antes da liquidação), enquanto reembolsos do dia seguinte em diante são processados como ajustes (após a liquidação ter ocorrido).
O suporte a reembolsos e cancelamentos varia por país, bandeira do cartão e método de pagamento. Para uma referência completa das bandeiras suportadas e das regras específicas de cada mercado, consulte Cancelamento e Reembolsos.
Requisitos
Antes de seguir as etapas, você precisa:
- Configurar seu Web Checkout via API (dependendo da sua localização).
- Gerar seu token seguindo o documento de Authentication.
A Getnet disponibiliza uma Postman Collection para ajudar você a replicar esses casos de uso localmente. Você também pode testar a API em sandbox usando a Referência da API disponível na documentação.
Entendendo o momento do reembolso
O Getnet Web Checkout via Global API trata os reembolsos de forma diferente, dependendo de quando são solicitados em relação à transação original:
Cancelamentos no mesmo dia (D+0)
Quando um reembolso é processado no mesmo dia da transação original, antes do horário limite diário, ele é processado como um cancelamento. A transação é anulada antes de entrar no fluxo de liquidação da rede.
Características:
- Apenas reembolsos totais são permitidos (reembolsos parciais não são suportados)
- A transação é anulada antes da liquidação
- Processamento mais rápido, já que os fundos nunca saem da conta do cliente
Transações autorizadas muito próximas ao horário limite podem exigir de 20 a 30 minutos para confirmação completa. Nesses casos, faça a solicitação de cancelamento após o horário limite ter passado, para garantir que seja processada corretamente.
Para horários limite específicos por país e disponibilidade, consulte a referência Core Cards.
Reembolsos do dia seguinte (D+1 ou posterior)
Quando um reembolso é processado no dia seguinte à transação original ou depois, após o horário limite diário, ele é processado como um reembolso/ajuste. Nesse ponto, a transação já foi enviada pelo fluxo de liquidação da rede do cartão.
Características:
- Reembolsos totais e parciais são permitidos (sujeitos à disponibilidade por país)
- Processado como uma transação de reembolso separada por meio do sistema de liquidação
- Pode levar mais tempo para refletir na conta do cliente
Para informações específicas por país sobre a disponibilidade de reembolso parcial, consulte a referência Core Cards.
O diagrama abaixo ilustra o fluxo de reembolso, mostrando os diferentes caminhos para cancelamentos no mesmo dia e reembolsos do dia seguinte:
Processo de reembolso de pagamento
Esta seção orienta você no processo de reembolso de uma transação de pagamento.
Campos obrigatórios
| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
idempotency_key | String | Identificador único para evitar operações duplicadas. | 63c7f8ee-51a6-470d-bb76-ef762b62bfb7 |
payment_id | String | O identificador do pagamento da resposta da transação original. | 2c341d28-491b-4cf8-aec7-eeb60136b7a5 |
payment_method | String | O método de pagamento usado na transação original. | CREDIT |
amount | Integer | Valor (menor ou igual) da compra em centavos. | 118708 |
Reembolsos parciais: O campo
amountpermite especificar um valor de reembolso parcial (igual ou menor que o da transação original). No entanto, reembolsos parciais só estão disponíveis a partir de D+1 e a disponibilidade varia por país. Para informações específicas por país, consulte a referência Core Cards.
Etapa 1: Solicite o reembolso ou cancelamento
Apesar do nome do endpoint, ele trata automaticamente tanto cancelamentos no mesmo dia quanto reembolsos do dia seguinte, com base no momento da solicitação.
Para processar um reembolso ou cancelamento, use o endpoint Cancel Payment.
| Endpoint |
|---|
POST /cancel |
Exemplo de requisição de reembolso total:
curl https://api.globalgetnet.com/dpm/payments-gwproxy/v2/payments/cancel \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"idempotency_key": "a1b2c3d4-e5f6-4789-abcd-ef1234567890",
"payment_id": "053de7f9-3725-437b-bdfc-bbf3ed0acb75",
"payment_method": "CREDIT"
}'Exemplo de requisição de reembolso parcial:
(disponível apenas a partir de D+1, sujeito à disponibilidade por país):
curl https://api.globalgetnet.com/dpm/payments-gwproxy/v2/payments/cancel \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"idempotency_key": "b2c3d4e5-f6a7-5890-bcde-fg2345678901",
"payment_id": "053de7f9-3725-437b-bdfc-bbf3ed0acb75",
"payment_method": "CREDIT",
"amount": 50000
}'Exemplo de resposta bem-sucedida:
{
"idempotency_key": "a1b2c3d4-e5f6-4789-abcd-ef1234567890",
"seller_id": "e0ed6f00-fdc5-46d6-9557-6a2cac641b09",
"payment_id": "053de7f9-3725-437b-bdfc-bbf3ed0acb75",
"order_id": "ORDER-10187383",
"amount": 118708,
"currency": "BRL",
"status": "CANCELED",
"reason_code": "00",
"reason_message": "Cancellation successful",
"canceled_at": "2025-10-31T14:30:25.166Z"
}Exemplo de resposta negada:
{
"idempotency_key": "a1b2c3d4-e5f6-4789-abcd-ef1234567890",
"seller_id": "e0ed6f00-fdc5-46d6-9557-6a2cac641b09",
"payment_id": "053de7f9-3725-437b-bdfc-bbf3ed0acb75",
"order_id": "ORDER-10187383",
"amount": 118708,
"currency": "BRL",
"status": "DENIED",
"reason_code": "05",
"reason_message": "Cancellation not allowed - transaction already settled"
}Etapa 2: Verifique o status do reembolso
Para confirmar que o reembolso foi processado com sucesso, verifique o campo status na resposta:
CANCELED: O reembolso foi processado com sucessoDENIED: O reembolso foi rejeitado
Se o reembolso for negado, verifique os campos reason_code e reason_message para mais detalhes sobre o motivo da falha.
Você também pode consultar o status da transação a qualquer momento usando o endpoint Get Transaction. Para atualizações em tempo real, recomenda-se o uso de Webhooks para receber notificações a cada mudança de status.
Reembolsando pagamentos combinados
Pagamentos combinados exigem tratamento especial ao processar reembolsos:
Transações com cartão
- O cancelamento está disponível para transações confirmadas há mais de 1 dia.
Cartões de crédito
- Pagamentos combinados com cartões de crédito podem ser cancelados por meio de uma requisição que inclua o mesmo número de objetos de pagamento enviados na requisição de autorização anterior.
- Dependendo do status de autorização da transação atual, o cancelamento pode ser revertido no mesmo dia (já confirmado) ou em até 7 dias.
Para cancelar um pagamento combinado, use o endpoint Combined Payments - Cancel em vez do endpoint de cancelamento comum.
Boas práticas
Ao processar reembolsos, siga estas boas práticas:
- Fique atento aos horários limite diários do seu mercado para saber se o reembolso será processado como cancelamento no mesmo dia ou reembolso do dia seguinte.
- Lembre-se de que reembolsos parciais só estão disponíveis a partir de D+1 e a disponibilidade varia por país. Consulte a referência Core Cards para informações específicas por país.
- Use sempre um
idempotency_keyexclusivo para cada requisição de reembolso, para evitar reembolsos duplicados acidentais. - Use webhooks para receber atualizações em tempo real sobre o processamento do reembolso, em vez de fazer polling repetido na API.
- Mantenha o
payment_id, opayment_methode oamountda transação original para facilitar o processamento do reembolso.