Aller directement à la fin des métadonnées
Aller au début des métadonnées

CiviBanking is a CiviCRM extension that aims at providing a framework to import and process bank transactions on one or more bank accounts. These can come from bank statements (and alike) or from an accounting system. Klick on the image below to see slides from a recent presentation at CiviCon London 2014.


Project Status

The project is stable, and has been in productive use by various organisations since Febuary 2014. However, it's still lacking (the funding for) an easy-to use configuration user interface. But once it's set up and configured correctly, it's very reliable. We encourage you to contact us, if you're interested in an implementation with your organisation.

You'll find all the information you need here:


The framework defines a certain workflow and basic UI, everything else is performed by various plugins. The system comes with a set of plugins, but it's easy to create (and share!) new ones, to accommodate your organisation's needs. The four basic plugin classes are:

Plugin typeWhat it doesFor example
ImportAllows the user (or a push service) to import proprietary data into the internal bank transaction data set.There will be import plugins for most standard national banking formats, and likely also for importing transactions (or pushing transactions) from accounting software.
Analyse/MatchDetects a specific pattern of correlation between financial transactions (typically payments) on one hand and existing or newly created Civi objects (such as contributions, memberships, contacts, ...) and has the ability to execute the changes necessary to implement the match. Matchers will either be full automatic (no user interference required), full manual (only a suggestion is made to the end user) or assisted (suggestions are made, and the user selects one of the options to execute).

Examples of matchers :

  • detect payment of a pending membership renewal
  • detect a new membership and contact based on a specific amount
  • create contributions for new payments to be considered single contribution
PostProcessAfter the reconciliation of a bank transaction with a contribution, a post processor could update a contact's address or bank information,add tags or trigger actions. This is still being developed.A post processor might e.g. detect a difference between a contact's address on the bank statement and your recorded address. Therefore it creates an activity for someone to look into this.
ExportCiviBanking not only keeps all the bank statements and the individual transactions, but also the information how, when, why and by whom it was reconciled. To make this data accessible to you and or peripheral systems, these plugins can format and export it.You could maybe develop an exporter to give you a monthly report spreadsheet of all the bookings in your system.



Currently active participants: 

Feel free to join us!

System Sketches


Data Model

The data model is partially shared with the CiviSEPA extension, and therefore linked by both projects:


CiviLink is a subproject by Paul Delbar, that is very closely related but has a slightly different scope:



There's a lot of terminology that we have used in the preliminary discussions and which finally got scrapped as a final term in the description of the extension. Here's the why and why not of some of these.

  • bank account (BA) describes an account with a particular bank, opened by an individual of organization, which should not be confused with the financial account concept in CiviAccounts
  • bank transaction (BTX) or "payment" describes an individual movement in the input stream of CiviBanking. There are four (semantic) types of bank transactions :
    • deposit : where a sum is added to the BA balance and the source is not another BA
    • transfer : where a sum is added to the BA balance and the source is another BA, or a sum is subtracted from the BA balance and the destination is another BA
    • withdrawal : where a sum is subtracted from a BA balance and the destination is not another BA
    • notice : where information related to the BA is provided without a change in the BA balance
  • payment is a semantic group term for a bank transaction where a sum is added to the BA balance (by bank transfer or deposit into the bank account)
  • the creditor is on the receiving end of the sum added in a bank transaction, the debtor is on the other end
  • Aucun

Creative Commons License
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-Share Alike 3.0 United States Licence.