I have applied as a GSoC student to work on a project that would provide Refunds and / or Partial Payments functionality for CiviCRM. I am seeking current solution to do this when needed so I can suggest and develop better solution. What is the manual way to use negative contributions for refunds as according to me this situation could have occurred several times.

Similarly, how are partial payments handled now with work-arounds?

  • I am not proficient to use stackexchange so please accept my apology if I am wrong to post irrelevant thing. Apr 13, 2015 at 11:13

3 Answers 3


Refunds and partial payments are two different things.

Currently for refunds the work-around is to edit the contribution (possibly associated with membership or event ticket purchase) and set amount received to zero (for a full refund).

For partial payments, there was a release of back office functionality in 4.5 for events ie staff could enter partial payments but the gereal public could not. I suppose one work-around for not having this available to the public is setting up a contribution page for a lesser amount, then having staff manually record the partial payments each time they come in against the event purchase, and cancel the contribution. Similarly, for a membership, a separate Contribution page could be set up to receive these payments which could be manually cancelled after a payment for a similar amount has been created manually.


I use a different approach for refunds.

If it is for a membership I "renew" the membership paying a negative amount and then edit the membership end date to show the correct date. This lets us keep track of each individual credit card payment/refund and provides an accurate history of "contributions" linked to the membership.

If it is "just" a contribution I enter a negative contribution.

We aren't running events through CiviCRM at the moment, but if we were I would see if I got the desired result by making a negative contribution and then directly editing the civicrm_participant_payment table to add a line linking the payment to the participant id.

By making negative payments we still have an accurate daily records at the line item level for entering into our accounting package.


Four different refund cases and their current handling:

1) Full refund - just going in the contribution & changing it to cancelled.

2) Partial refund when payment was made by Pay-later - going into the contribution & changing the amount. This doesn't work with a credit card payment.

3) Partial refund when payment was made by credit card and refunded by credit card. If necessary, create a new temporary price and go into the event registration and receipt it at this price. It appears to edit the existing entry rather than creating a new one.

4) Partial or full refund when payment was made by credit card & refunded by bank deposit and vice versa. Create a new temporary negative price and create a second registration for the person in the same event with the negative fee.

  • Just wondering if there are any plans to pick this project up and get it closer to something usable?
    – Graham
    Sep 12, 2016 at 12:51
  • 1
    I have plan but there are funding issues. Sep 12, 2016 at 13:08
  • Sounds familiar :-)
    – Graham
    Sep 13, 2016 at 8:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.