I'm trying to do an "Import Contribution", Member Dues, but the membership period in not extended by the expected year. How can I manage that automatically? Should be possible! I have probably not found the correct method. This is our first steps to do Imports. Claes


There are two issues that you have to deal with when importing membership payments in order to extend your memberships:

  1. You should connect the contribution (mebership payment) with the correct membership after the import. Technically you don't have to but it makes a lot of sense in order to keep a good overview.
  2. You need to extend the membership (set a new membership end date)

The bad news is that afaik there is no user interface in CiviCRM-Core that allows you to connect existing payments with memberships. CiviCRM only offers to extend a membership and create a corresponding payment at the same time, but that does not work if you already have imported the payments.

There are also scheduled jobs that can change your membership status but that will probably not solve your problem either (a lot of information on renewal concepts can be found in CiviCRM's documentation).

The good news is that there are some extensions that can facilitate both connecting payments and memberships as well as extending your membership (e.g. by extending it's end date), for example this one: https://github.com/Project60/org.project60.membership

It can do much more than only connecting memberships and contributions via the UI so make sure that it's not an overkill for your purposes ;)

Unfortunately, there is no coherent documentation so for some features you may want to contact the maintainer (Björn from SYSTOPIA) for info and/or add to the documentation once you know your way around the extension.

If you only want to connect payments & meberships, https://github.com/CiviCooP/org.civicoop.membershippayment may do the trick.

  • Geee! Thanks for your comprehensive answer. I'm really looking forward to dig into the information ans see if a solution for me can be found! Again Big, Large Thanks for your response! Claes Jan 29 '21 at 13:50
  • Interesting I hadn't thought about connecting the contribution to the membership. Would be nice but not essential. I'll have a look at these options.
    – Mick Kahn
    Jan 30 '21 at 15:16
  • @MickKahn: You are right it's not essential unless you want to utilize an (custom) automated task to extend your memberships based on the payments in the system. Then it would be important to connect them in order to base your update routine on those payments.
    – Fabian
    Feb 1 '21 at 8:09

I need to do the same thing and could not find a built in solution. There is a batch membership entry, but that is for manual entry from the interface. The code might be useful to write a process to import an externally created batch, but that is beyond me.

What I do is import the contributions from a file (derived from a bank transaction listing with a lookup from the memo field to find the contact to match it to). I give the contributions a clearly identifiable source (bank-year-month). I then do an advanced search for memberships with a contribution with this source and do a bulk update with a profile set up to edit the end date. I need to do this in two stages as some are annual and some are monthly memberships.

Hope that helps

  • Tank you for the proposal. I now have three alternatives to consider. Thanks a lot!! Claes Jan 29 '21 at 13:52

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.