Stripe supports partial refunds via the Stripe Dashboard. I think other processors support similar.
To record a partial refund in CiviCRM we can record a negative payment on the contribution using API
Currently nothing changes on the contribution:
- Total amount still shows the full amount but payments are recorded correctly so the sum of payments does not equal the contribution total amount.
- Contribution status remains Completed.
What should happen(?):
- A partial refund means that the total_amount paid, tax_amount and the fee_amount paid may be reduced.
- The contribution status is no longer "Completed" and should be
Partially refunded(does not exist)?
Partially paid(already exists).
Financial Typeshould be displayed correctly for the refund payment.
Currently, viewing a contribution, either in the summary or detail gives no indication of the actual amount paid: