An enormous benefit to many organisations would be a way to allow partial payments for events. Does CiviCRM provide the ability to book on for an event and pay a €50 deposit, and then the balance would be paid on the night of the event itself?

It seems that this is very standard practice for events I've come across in Ireland, at least, and I would love to see it as part of the core.

I've found various pages on the subject of partial payments, but none with anything recent. e.g. http://wiki.civicrm.org/confluence/display/CRM/Partial+Payments+for+Event+Registrations+and+Memberships http://wiki.civicrm.org/confluence/display/CRM/Partial+Payments+use-cases

but nothing seems of late. Sadly, I'm not in a position to make a big financial donation and I am not a techie. I just wanted to see if this can be done in any reasonable way.

  • To add, I mean this for online bookings made by the public. – Vshura Apr 9 '15 at 11:57

Partial payment for event registrations is not available for front-office public users as of 4.6. 4.5 provided this functionality for back-office staff users. I'm expecting a contract shortly that will support new APIs for orders and payments in 4.7 that will make it easier to develop functionality like this in extensions or the front-end.


As of right now, there's no way to set up events to work this way. The issue is that there's no way to set the "sticker" price of events to distinguish a deposit from just a regular cheaper price option.

For example, let's say you have an event with regular tickets and VIP tickets. You might set up a price set like this:

  • regular ticket: $100
  • VIP ticket: $200
  • deposit only: $20

CiviCRM has no way of knowing that when you sign up online (as a regular visitor) and select $20 that it should charge your card for $20 but show your event fee as $100. If it somehow looked for the maximum option automatically, it might (incorrectly) guess that $200 was the real price.

That said, you have a really great use case here. My coworkers have built customizations for clients that handle this, but it's done in a way that isn't completely generalizable for all uses. Basically, the extension is told that price option X is a deposit for price option Y, and when someone registers for an event with price option X, it goes around and edits/records a bunch of transactions to make the accounts such that it's a partial payment.


I just watched the Back Office Thinking video from civicon denver and if I understand correctly they have an extension to do what you want: Take a look at this video.

Here is the project on github.

Caveat: I have not tried to use this (yet).

  • NP :) @Vshura if this is what you were looking for, consider marking this the accepted answer. – Coleman May 28 '15 at 16:28
  • Hi guys. Thanks for that, but I've no idea how to implement this to try it out - I don't have the techincal skills. I tried to install the extension from github but I'm getting errors from it... – Vshura Jun 3 '15 at 15:05

Partial payments registered via the back office work under 4.7.3, however, the payment display is confused and does not appear to itemise individual payments. In other words, if you view the participant, partial payments are not listed, and the payment status is shown differently in different parts of the display.

View Event Registration shows the amount paid, and the balance outstanding. View Participant payment shows just the first payment Clicking the arrow on the left shows payment complete!

Clearly some more work is needed. I'll post this as an issue.


The partial payment feature was rolled out in 4.5, you can see the issue documented here. It almost allows the functionality you have described - a participant can be registered for an event, pay less than the full amount, and the system will assign them a "partially paid" status. Your staff can collect additional payments before, during, or after the event, and when paid in full the participant's status will reflect that.

Update: unfortunately this workflow does not allow online registration.

  • That issue refers specifically to back-office users. If there is a way to achieve this on public pages now (I haven't seen one as of 4.6), could you edit your answer with instructions? – Nicholai Apr 8 '15 at 17:03
  • Yeah, unfortunately it doesn't work like this for public visitors. On the front end, the price set is treated as both the price and the payment, so there's no way to say the price is $100 but the payment is only $50. – Andrew Hunt Apr 8 '15 at 17:43
  • Yes, I'd just like to echo what Nicholai said - I meant the question for online bookings. Ideally there would also be an email with a link for event participants to pay the remainder of the amount as well before they turn up for the course, should they wish. – Vshura Apr 9 '15 at 11:58

Since the resolution of https://issues.civicrm.org/jira/browse/CRM-19263, here is what you can do :

  1. define price options as mentioned by @andrew-hunt :

    • regular ticket: $100
    • deposit only: $20
  2. after the deposit payment is done, the organization staff changes in the backend the option chosen in the participation to "regular ticket" price which :

    • change the contribution amount
    • change the contribution status to partially paid
  3. the organization staff send the link to the contact for completing the payment : https://example.org/civicrm/contribute/transact?&reset=1&id=3&ccid=162 (with 3 => id of your contribution and 162 => id of the contribution)

EDIT: note that there are some glich as described in https://issues.civicrm.org/jira/browse/CRM-21390 to be able to change the price option without fatal error

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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