## Regras Refund
- Refund só pode ser feito a partir de payins (currency == BRL)
- Regras BACEN:
- Só é possível devolver em até 80 dias (timestamp
- Só é possível devolter para o mesmo originador do E2E ID.
- ~~Podem ser feitas várias devoluções parciais~~ Transfero sempre vai fazer a devolução parcial.
- Implementado no BS2 e Genial
## Casos de Uso
### 1. Parceiro recebeu um depósito sem QR Code e quer devolver
:caso Bybit:
:botão Refund:
- Não tem DepositOrder
- Parceiro/TransferoPay mandam o ID da transação de crédito na requisição para iniciar o refund.
- Transfero cria um payment onde RefundId = E2E ID
- Transfero cria uma transação de débito com:
- ID único (novo)
- TaxId = TaxId original
- TransactionHash = E2E de devolução (D**************)
- TO DO: Colocar E2E no ExternalID
### 2. Idem 1, porém a partir de um QR Code Dinâmico
- Tem DepositOrder
- Parceiro/TransferoPay mandam o ID da transação de crédito na requisição para iniciar o refund.
- Transfero cria um payment onde RefundId = E2E ID
- Transfero cria uma transação de débito com:
- ID único (novo)
- TaxId = TaxId original
- TransactionHash = E2E de devolução (D**************)
- ExternalId = ExternalId original
- Transfero atualiza status do DepositOrder para Reimbursed.
- TO DO: Trocar status de Reimbursed para Refunded
### 3. Idem 1, porém a partir de QR Code estático
- Tem DepositOrder
- Parceiro/TransferoPay mandam o ID da transação de crédito na requisição para iniciar o refund.
- Transfero cria um payment onde RefundId = E2E ID
- Transfero cria uma transação de débito com:
- ID único (novo)
- TaxId = TaxId original
- TransactionHash = E2E de devolução (D**************)
- ExternalId = ExternalId original
- Transfero atualiza status do DepositOrder para Reimbursed somente se todas as transações associadas a ele foram devolvidas.
### 4. Para uso do time interno: A gente precisa devolver uma transação por MED, Reclame Aqui, ticket
- Reclame Aqui: Usar o Control (em fase de testes)
- MED: informar o banco + criar transação de débito manual (Medina)
### 5. Refund Automático
**Caso 1**: TaxId Bloqueado
**Caso 2**: TaxId ou Valor diferente do informado
**Fluxo Proposto:**
- Transfero cria transação de crédito "escondida" do transação a ser devolvida
- Transfero vai executar devolução e criar transação de débito "escondido" do partner
- Transfero vai alterar status do DepositOrder para Refunded, e o parceiro será notificado via callback de DepositOrder.
- TO DO:
- Fazer validação do DepositOrder antes de criar a transação de débito
- Criar fluxo de refund para erros de validação