# Reembolsar e cancelar pagamentos

Saiba como cancelar ou reembolsar um pagamento.

Você pode [cancelar um pagamento](https://docs.stripe.com/refunds.md#cancel-payment) antes de sua conclusão, sem custo. Ou pode realizar um reembolso total ou parcial de um pagamento após sua conclusão, o que pode gerar uma tarifa. As tarifas de processamento da Stripe referentes à transação original não são devolvidas. Consulte a [página de preços](https://stripe.com/pricing/local-payment-methods) para mais informações.

Os reembolsos utilizam o saldo disponível na Stripe (não incluindo valores pendentes). Se o saldo disponível não for suficiente para cobrir o valor do reembolso, a Stripe mantém o reembolso como pendente para transações com cartão (reembolsos para outros tipos de forma de pagamento são rejeitados) até que seu saldo Stripe seja suficiente. Você pode regularizar um saldo negativo na Stripe recebendo pagamentos ou realizando uma *recarga* (The act of adding funds to a Stripe account, typically through a transfer from a bank external to Stripe) em sua conta. Em regiões onde for pertinente, a Stripe pode debitar automaticamente suas contas bancárias para recuperar um saldo negativo na Stripe.

## Solicitações de reembolso

A Stripe envia solicitações de reembolso ao banco do cliente ou ao *emissor do cartão* (The entity that issued a payment card to a cardholder. This could be a bank, such as with the Visa or Mastercard network, or it could be the card network itself, such as with American Express). Reembolsos bem-sucedidos são exibidos em tempo real no extrato bancário dos clientes, dependendo da bandeira do cartão e do banco emissor.

Se todas as condições a seguir forem atendidas, a Stripe envia um e-mail ao seu cliente notificando-o sobre o reembolso:

- A cobrança original foi criada em um cliente na sua conta Stripe.
- O cliente tem um e-mail armazenado.
- Você habilitou **Enviar e-mails para os clientes sobre reembolsos** no [Dashboard](https://dashboard.stripe.com/account/emails).

Você pode [visualizar seus pagamentos reembolsados no Dashboard](https://dashboard.stripe.com/test/payments?status%5B0%5D=refunded&status%5B1%5D=refund_pending&status%5B2%5D=partially_refunded).

## Emitir reembolsos

Você pode emitir reembolsos usando a [API Refunds](https://docs.stripe.com/api/refunds.md) ou o [Dashboard](https://dashboard.stripe.com/test/payments). Você pode emitir mais de um reembolso para uma cobrança, mas não pode reembolsar um total superior ao valor da cobrança original.

#### Dashboard

Para reembolsar um pagamento usando o Dashboard:

1. Encontre o pagamento que deseja reembolsar na página [Payments](https://dashboard.stripe.com/payments).
2. Clique no menu de navegação (⋯) à direita do pagamento e selecione **Reembolsar pagamento**.
3. Por padrão, os reembolsos são integrais. Para fazer um reembolso parcial, informe um valor de reembolso diferente.
4. Escolha um motivo para o reembolso. Se você selecionar **Outro**, precisará adicionar uma anotação com o motivo do reembolso. Clique em **Reembolsar**.

> #### Reembolsos em lote
> 
> O Dashboard permite reembolsar um lote de pagamentos integrais. Selecione os pagamentos a ser reembolsados marcando a caixa à esquerda de cada pagamento (não importa se os pagamentos estão em páginas de resultado diferentes). Clique em **Reembolsar** e selecione o motivo. Somente reembolsos integrais podem ser emitidos dessa forma. Reembolsos parciais devem ser emitidos individualmente.

#### API

Para reembolsar um pagamento utilizando a API, [crie um reembolso](https://docs.stripe.com/api/refunds/create.md) informando o ID da cobrança ou o [PaymentIntent](https://docs.stripe.com/api/payment_intents.md).

Quando você usa um PaymentIntent para recolher um pagamento, a Stripe cria um objeto de [cobrança](https://docs.stripe.com/api/charges/object.md). Para reembolsar um pagamento após o sucesso do PaymentIntent, crie um reembolso usando o PaymentIntent, que é o mesmo que reembolsar a cobrança subjacente. Se você estiver usando as APIs do Stripe Tax para registrar vendas, será necessário [registrar os reembolsos](https://docs.stripe.com/tax/payment-intent/custom.md#reversals).

```curl
curl https://api.stripe.com/v1/refunds \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d payment_intent=pi_Aabcxyz01aDfoo
```

Você também pode reembolsar apenas parte de um PaymentIntent especificando um valor. Para fazer isso, forneça um parâmetro `amount` como um número inteiro em centavos (ou na menor unidade monetária da moeda da cobrança).

```curl
curl https://api.stripe.com/v1/refunds \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d payment_intent=pi_Aabcxyz01aDfoo \
  -d amount=1000
```

Se você quiser separar a [autorização e a captura](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md) de um charge e reembolsar um PaymentIntent com status `requires_capture`, o processo de reembolso é diferente. Nesse caso, o charge associado ao PaymentIntent permanece não capturado e não pode ser reembolsado diretamente. Você deve [cancelar o PaymentIntent](https://docs.stripe.com/api/payment_intents/cancel.md).

### Reembolsos por meio de uma plataforma Connect

O comportamento do reembolso depende do [tipo de cobrança do Connect](https://docs.stripe.com/connect/charges.md#refund-creation) usado na sua integração.

- A Stripe debita diretamente da conta conectada reembolsos para pagamentos de [cobranças diretas](https://docs.stripe.com/connect/direct-charges.md#issue-refunds).
- A Stripe debita sua plataforma pelos reembolsos para[destino de cobranças](https://docs.stripe.com/connect/destination-charges.md#issue-refunds) ou[separar cobrança e transferir](https://docs.stripe.com/connect/separate-charges-and-transfers.md#issue-refunds) (com ou sem`on_behalf_of`) pagamentos. Reverta as transferências associadas a esses tipos de cobrança para recuperar o valor do reembolso das suas contas conectadas.

As plataformas Connect podem permitir que suas contas conectadas forneçam reembolsos aos clientes do seu site usando componentes integrados do Connect, como o componente [pagamentos](https://docs.stripe.com/connect/supported-embedded-components/payments.md) ou o componente [detalhes de pagamento](https://docs.stripe.com/connect/supported-embedded-components/payment-details.md).

## Destinos dos reembolsos

Os reembolsos somente podem ser enviados para a forma de pagamento original da cobrança. Você não pode enviar um reembolso para um destino diferente, como outro cartão ou conta bancária.

Os reembolsos para cartões expirados ou cancelados são processados pelo emissor do cartão do cliente e, na maioria dos casos, creditados na nova via do cartão do cliente. Quando não há uma nova via, o emissor costuma reembolsar o cliente usando outra forma de pagamento (como cheque ou depósito em conta bancária). Em casos raros, um reembolso para um cartão pode [falhar](https://docs.stripe.com/refunds.md#failed-refunds).

Para outras formas de pagamento, como [ACH](https://docs.stripe.com/payments/ach-direct-debit.md) e [iDEAL](https://docs.stripe.com/payments/ideal.md), o processamento do reembolso varia de banco para banco. Se o cliente tiver encerrado sua forma de pagamento, o banco pode devolver o reembolso à Stripe — momento em que ele será marcado como [falhou](https://docs.stripe.com/refunds.md#failed-refunds).

> #### Formas de pagamento por débito bancário
> 
> Para formas de pagamento por débito bancário, como [débito automático SEPA](https://docs.stripe.com/payments/sepa-debit.md#refunds), [débito automático Bacs](https://docs.stripe.com/payments/bacs-debit.md#refunds), [ACH Direct Debit](https://docs.stripe.com/payments/ach-direct-debit.md#refunds), [ACSS (PADs canadenses)](https://docs.stripe.com/payments/acss-debit.md#refunds), [débito automático AU BECS](https://docs.stripe.com/payments/au-becs-debit.md#refunds) e [débitos em conta bancária da Nova Zelândia,](https://docs.stripe.com/payments/nz-bank-account.md#refunds), há o risco de reembolso em duplicidade. Se você emitir um reembolso de forma proativa enquanto o banco do cliente também inicia uma contestação, o cliente poderá receber dois créditos pela mesma transação. Consulte as diretrizes de reembolso de cada forma de pagamento para evitar essa situação.

## Gerenciar reembolsos com falha

Um reembolso pode falhar se o banco do cliente ou o emissor do cartão não conseguir processá-lo. Por exemplo, uma conta bancária encerrada ou um problema com o cartão podem causar a falha do reembolso. Quando isso ocorre, o banco devolve o valor reembolsado à Stripe, que o credita novamente ao saldo da sua conta Stripe. Esse processo pode levar até 30 dias a partir da data de lançamento.

Ao usar a API, o status do objeto [reembolso](https://docs.stripe.com/api/refunds/object.md) é alterado para `failed` e inclui os seguintes atributos:

- `failure_balance_transaction`: o ID da [transação de saldo](https://docs.stripe.com/api/balance_transactions/object.md) que representa o valor devolvido ao seu saldo Stripe.
- `failure_reason`: o motivo da falha do reembolso. Esses motivos incluem:
| Motivo da falha                      | Descrição                                                                                                                                                                                                                                                            |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `charge_for_pending_refund_disputed` | Um cliente contestou a cobrança enquanto o reembolso está pendente. Nesses casos, a Stripe recomenda [aceitar ou contestar](https://docs.stripe.com/disputes/responding.md#decide) a contestação em vez de reembolsar, para evitar reembolsos duplicados ao cliente. |
| `declined`                           | Reembolso recusado pelos parceiros financeiros da Stripe.                                                                                                                                                                                                            |
| `expired_or_canceled_card`           | A forma de pagamento foi cancelada por um cliente ou expirou pelo parceiro.                                                                                                                                                                                          |
| `insufficient_funds`                 | O reembolso está pendente devido a fundos insuficientes e ultrapassou o prazo de validade do reembolso pendente.                                                                                                                                                     |
| `lost_or_stolen_card`                | O reembolso falhou devido à perda ou roubo do cartão original.                                                                                                                                                                                                       |
| `merchant_request`                   | Falha no reembolso durante solicitação da empresa.                                                                                                                                                                                                                   |
| `unknown`                            | O reembolso falhou por um motivo desconhecido.                                                                                                                                                                                                                       |

Para algumas formas de pagamento, o código de recusa fornecido pelos parceiros financeiros da Stripe, que indica o motivo da falha do reembolso, está disponível no campo `network_decline_code` do hash `destination_details`:

```
{
  id: "pyr_1234",
  destination_details: {
    blik: {
      network_decline_code: "decline_code"
    },
    type: 'blik',
  }
}
```

Em casos raros em que um reembolso falha, a Stripe notifica você utilizando o evento `refund.failed` (consulte [todos os eventos relacionados a reembolso](https://docs.stripe.com/refunds.md#refund-events)). Se isso ocorrer, será necessário providenciar uma alternativa para reembolsar seu cliente.

Se sua plataforma utiliza o Connect com destination charges, os fundos de um depósito de reembolso malsucedido são creditados no saldo Stripe da conta da sua plataforma.

## Cancelar um reembolso

Dependendo do tipo de reembolso, pode ser possível cancelá-lo antes que ele chegue ao cliente. Alguns reembolsos de cartão aceitam cancelamento por um curto período de tempo. O reembolso não pode ter sido processado como anulação de cobrança. Somente cancelamentos do Dashboard são aceitos para reembolsos de cartão.

Para algumas formas de pagamento, a Stripe entra em contato com o cliente para coletar informações bancárias [antes de processar o reembolso](https://docs.stripe.com/refunds.md#requires-action). Você pode cancelar esses reembolsos enquanto as informações bancárias não tiverem sido coletadas. Tanto o cancelamento via API quanto pelo Dashboard são compatíveis para esse tipo de reembolso.

Reembolsos cancelados passam para o status `canceled`. Como cancelamentos são um tipo de falha de reembolso, os atributos `failure_reason` e `failure_balance_transaction` são incluídos no [reembolso](https://docs.stripe.com/api/refunds/object.md).

Se sua plataforma utiliza o Connect com destination charges, os fundos de um reembolso cancelado são creditados no saldo Stripe da conta da sua plataforma.

Para cancelar um reembolso usando o Dashboard:

1. Encontre o pagamento associado ao reembolso na página [Pagamentos](https://dashboard.stripe.com/payments).
2. Clique no menu de navegação (⋯) à direita do pagamento e selecione **Cancelar reembolso**.
3. Se houver vários reembolsos parciais, selecione o reembolso correto no menu suspenso.
4. Confirme o cancelamento do reembolso selecionando **Sim, cancelar reembolso**.

Como alternativa, você pode clicar em um pagamento específico e cancelar o reembolso na página de detalhes.

## Reembolsos que exigem ação

Para algumas formas de pagamento sem suporte nativo a reembolsos (por exemplo, Konbini, PromptPay, Boleto e transferências bancárias), a Stripe precisa coletar os dados da conta bancária do cliente antes de poder processar o reembolso. Nesses casos, o reembolso entra no status `requires_action`, e a Stripe envia um e-mail ao cliente solicitando as informações bancárias.

Quando um reembolso tem o status `requires_action`, a propriedade `next_action` do objeto [Refund](https://docs.stripe.com/api/refunds/object.md) descreve o que é necessário para que o processamento do reembolso continue. O objeto `next_action` contém os seguintes campos:

- `next_action.type`: o tipo da próxima ação (por exemplo, `display_details`).
- `next_action.display_details.email_sent`: informações sobre o e-mail enviado ao cliente, incluindo:
  - `email_sent_at`: o registro de data e hora em que o e-mail foi enviado.
  - `email_sent_to`: o endereço de e-mail do destinatário.
- `next_action.display_details.expires_at`: o registro de data e hora em que a solicitação de reembolso expira caso o cliente não responda.

O status do reembolso muda da seguinte forma:

| Evento | Status do reembolso |
| --- | --- |
| Reembolso é criado e um e-mail é enviado ao cliente | `requires_action` |
| O cliente envia os dados da conta bancária e a Stripe começa a processar o reembolso | `pending` |
| O reembolso deve chegar ao banco do cliente | `succeeded` |
| O banco do cliente devolve os fundos para a Stripe | `requires_action` |
| O cliente não responde antes do prazo de validade | `failed` |
| O reembolso é cancelado enquanto está no estado `requires_action` | `canceled` |

Se o banco do cliente não conseguir concluir a transferência com sucesso (por exemplo, se o nome do titular da conta não corresponder ou se houver um erro de digitação no número da conta bancária), os fundos retornam para a Stripe e o reembolso volta ao status `requires_action`. Nesse caso, a Stripe envia um novo e-mail ao cliente solicitando os dados bancários corrigidos.

Você pode [cancelar um reembolso](https://docs.stripe.com/refunds.md#cancel-refund) enquanto ele estiver no estado `requires_action`. Por exemplo, caso queira providenciar uma forma alternativa de devolver os fundos ao cliente.

## Reembolso e anulação

Alguns reembolsos, os emitidos logo após a cobrança original, aparecem na forma de um estorno de *estorno* (A reversal is the cancellation of a transaction. Stripe doesn't withhold any fees for payment reversals) em vez de um reembolso. No caso de um estorno, a cobrança original não aparece no extrato do cliente e um crédito separado não é emitido.

Usuários do *IC+*, podem ver uma diferença de custo entre anulações e reembolsos, porque anulações costumam incorrer em tarifas de bandeira mais baixas.

#### Dashboard

Para verificar se um reembolso foi enviado como anulação no Dashboard:

1. Abra a página de detalhes do pagamento do pagamento associado ao reembolso.
2. No cronograma, clique em **Ver detalhes** na entrada do reembolso.
3. Se for uma anulação, a mensagem correspondente é exibida.

#### API

Para verificar se um reembolso é enviado como uma anulação usando a API:

1. Consuma o [evento](https://docs.stripe.com/refunds.md#refund-events) `refund.updated` ou [recupere o reembolso](https://docs.stripe.com/api/refunds/retrieve.md) com a API.
2. Se for uma anulação, retorna `destination_details[card][type] = 'reversal'`.

## Rastrear um reembolso

Quando você inicia um reembolso, a Stripe envia solicitações de reembolso ao banco ou emissor do cartão do cliente. O cliente recebe o crédito do reembolso em 5 a 10 dias úteis depois, dependendo do banco. Um cliente pode entrar em contato com você se não vir o reembolso. Um reembolso pode não ser visível para o cliente por vários motivos:

- Reembolsos emitidos logo depois da cobrança original aparecem como reversão em vez de reembolso. Nas reversões, a cobrança original é eliminada do extrato do cliente e nenhum crédito separado é emitido.
- Reembolsos podem falhar caso o banco do cliente ou o emissor do cartão não consiga processá-lo corretamente. O banco devolve o valor reembolsado à Stripe, e a Stripe o credita novamente no saldo da sua conta Stripe. Esse processo pode levar até 30 dias a partir da solicitação do reembolso.

Se um cliente estiver questionando sobre um reembolso, pode ser útil fornecer a ele o número de referência principal correspondente ao reembolso. Para reembolsos em cartão, pode ser um **número de referência de adquirente (ARN)**, **Número de Auditoria de Rastreio do Sistema (STAN)** ou **número de referência de recuperação (RRN)**. Um ARN, STAN ou RRN é um número de referência atribuído a uma transação com cartão à medida que ela percorre o fluxo de pagamento. Para reembolsos em formas de pagamento locais, pode ser um número de referência gerado pela Stripe ou por seus parceiros financeiros, que é repassado aos bancos ou instituições beneficiárias. O cliente poderá então apresentar essa referência ao seu banco, que poderá fornecer mais informações sobre quando o reembolso estará disponível. Ter um número de referência também pode aumentar a confiança do cliente de que o reembolso foi iniciado.

As referências de reembolso estão disponíveis nas seguintes condições:

- Eles são aceitos para alguns parceiros financeiros e marcados como indisponíveis para alguns parceiros.
- Após o início do reembolso, pode demorar até 7 dias para receber o ARN dos parceiros bancários envolvidos na transação.
- Um número de referência de adquirente não está disponível em caso de anulação, pois a cobrança original não é processada. Para bandeiras de cartão que não suportam ARNs, a Stripe tenta fornecer outras referências, como o Número de Auditoria de Rastreio do Sistema (STAN) ou o Número de Referência de Recuperação (RRN).

#### Dashboard

Para encontrar a referência de um reembolso usando o Dashboard:

1. Abra a página de detalhes do pagamento do pagamento associado ao reembolso.
2. No cronograma, clique em **Ver detalhes** na entrada do reembolso.
3. Quando disponível, a Stripe exibe o ARN ou STAN na área de transferência.

#### API

Para encontrar a referência de um reembolso usando a API:

1. Consuma o evento `refund.updated` ou recupere o reembolso pela API.
2. Quando disponível, a Stripe exibe a referência de reembolso do cartão no seguinte formato de resposta da API:

```
{
  id: "re_1234",
  destination_details: {
    card: {
      reference: "123456",
      reference_status: "available",
      reference_type: "acquirer_reference_number",
      type: "refund"
    },
    type: "card",
  }
}
```

Ou a referência para formas de pagamento locais selecionadas no seguinte formato de resposta da API:

```
{
  id: "pyr_1234",
  destination_details: {
    eu_bank_transfer: {
      reference: "123456",
      reference_status: "available"
    },
    type: "eu_bank_transfer",
  }
}
```

## Cancelar um pagamento

Você pode cancelar um pagamento usando o Dashboard quando o status for `uncaptured` (não capturado) ou quando se tratar de um pagamento por débito que ainda não foi processado pelo banco. Para cancelar pagamentos com outros status, é necessário usar a API.

#### Dashboard

Para cancelar pagamentos usando o Dashboard:

1. Encontre o pagamento que deseja cancelar na página de pagamentos.
2. Clique no pagamento e selecione **Cancelar**.
3. Selecione um motivo para cancelar e clique em **Sim**. Se você selecionar **Outros**, é preciso adicionar uma nota explicando o motivo do cancelamento do pagamento.

Você pode cancelar um pagamento pelo Dashboard quando:

- O status do pagamento for `uncaptured` (não capturado).
- O pagamento for um pagamento por débito que ainda não foi processado pelo banco.

#### API

Se você não pretende mais receber um pagamento, pode cancelar um PaymentIntent. Você pode manter um PaymentIntent em status incompleto, como `requires_confirmation` ou `requires_payment_method`, pois PaymentIntents incompletos são úteis para entender a taxa de conversão no checkout. O exemplo de código a seguir mostra uma solicitação para cancelar um PaymentIntent:

```curl
curl -X POST https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}}/cancel \
  -u "<<YOUR_SECRET_KEY>>:"
```

Você só pode cancelar um PaymentIntent quando ele estiver em um dos seguintes status:

- `requires_payment_method`
- `requires_capture`
- `requires_confirmation`
- `requires_action`
- `processing` (somente quando a forma de pagamento associada for conta bancária dos EUA)

Não é possível cancelar um PaymentIntent bem-sucedido. Um PaymentIntent cancelado não pode ser usado para realizar outras cobranças. Qualquer operação tentada pelo aplicativo em um PaymentIntent cancelado falhará com um erro.

## Eventos de reembolso

A Stripe aciona [eventos](https://docs.stripe.com/api/events.md#events) sempre que um reembolso é criado ou alterado. Algumas outras ações, como o fechamento de análises, também acionam eventos relevantes para os reembolsos.

Certifique-se de que sua integração esteja configurada para [lidar com eventos](https://docs.stripe.com/events/set-up-events.md) e que você [verifique as assinaturas de Webhook](https://docs.stripe.com/webhooks.md#verify-events) para confirmar que os eventos recebidos são da Stripe. Você também deve criar uma lógica interna para notificar clientes ou sua equipe sobre o estado do processo de reembolso. No mínimo, a Stripe recomenda que você monitore o evento `refund.created`.

A tabela a seguir descreve os eventos mais comuns relacionados a reembolsos.

| Evento | Descrição |
| --- | --- |
| `refund.created` | Enviado quando um reembolso é criado. |
| `refund.updated` | Enviado quando o reembolso é atualizado. As atualizações incluem adicionar metadados e fornecer detalhes como o [ARN como um número de referência para rastrear reembolsos](https://docs.stripe.com/refunds.md#tracing-refunds). |
| `refund.failed` | Enviado quando um reembolso falha. |
| `charge.dispute.funds_reinstated` | Enviado quando fundos são reintegrados à sua conta após o encerramento de uma contestação, incluindo [pagamentos parcialmente reembolsados](https://docs.stripe.com/disputes/best-practices.md#partial-refund-bp). |
| `charge.refunded` | Enviado quando uma cobrança é reembolsada, incluindo reembolsos parciais. Escute `refund.created` para obter informações sobre o reembolso. |
| `review.closed` | Enviado quando uma [revisão](https://docs.stripe.com/api/events/types.md#review_object) é encerrada. Consulte o campo `reason` para entender por que ela foi encerrada, uma das opções: `approved`, `disputed`, `canceled`, `refunded`, ou `refunded_as_fraud`. |
| `source.refund_attributes_required` (Obsoleto) | Enviado quando a fonte recebedora exige atributos de reembolso para processar um reembolso ou pagamento incorreto. |
| `charge.refund.updated` (Obsoleto) | Enviado quando o reembolso é atualizado, somente para reembolsos com uma cobrança correspondente. Em vez disso, ouça `refund.updated` para obter atualizações sobre todos os reembolsos. |

## Otimização de custos

Se sua empresa processa um grande volume de reembolsos próximos ao momento da transação, a Stripe recomenda o uso de [autorização e captura manuais](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md) para reduzir seus custos de reembolso. A autorização e captura manuais permitem um melhor controle de custos ao cancelar pagamentos antes de sua captura, ou ao reduzir o valor capturado em vez de processar um reembolso.

## See also

- [Adicionar fundos ao seu saldo da Stripe](https://docs.stripe.com/get-started/account/add-funds.md)
- [Adicionar fundos ao saldo da plataforma](https://docs.stripe.com/connect/top-ups.md)
- [Localizar preços](https://docs.stripe.com/payments/currencies/localize-prices.md)
- [Reembolsos de transferência bancária](https://docs.stripe.com/payments/bank-transfers.md#refunds)
