Skip to content



  • PHP v7.2+
  • CiviCRM 5.24+


  • Visit Administer > System Settings > Extensions.
  • Click the Add New tab.
  • Locate the "Expenses" extension in the list of available extensions; click Download and follow its prompts to complete the installation.


Uninstalling will also remove all existing expenses from the database.


  • Expense workflow with statuses such as Draft, Pending, Approved or Rejected.
  • Possible to register expenses at Contact level but also at case level.
  • Each expense can have one or more attachments.
  • Possible to add custom fields to expenses.
  • Integrates with the form processor and data processor extension.


Once the extension is installed you can add expense types by going to Administer > System Settings > Option Groups > Expense Types You can also configure the available expense statuses by going to Administer > System Settings > Option Groups > Expense Status

You can add custom fields to an expense by going to Administer > Customize Data and Screens > Custom Fields and click on add Set of Custom Fields and set Used for to either Expense or Expense Line. In the following screens you can then add the custom fields in the usual way.

You can further configure expenses by going to Administer > CiviContribute > Expense Settings. You can enable whether an activity should be created when a new expense is added. Which is enabled by default.

Background of this extension

I developed the expense extension for Sozio Kultur. An organization which gives out grants to cultural organizations in Germany. Once a grant has been approved each expense needs to be declared by the cultural organization.

Support and Maintenance

This extension is open source so feel free to contribute if something is broken, missing or could be improved.