How to import membership contributions


When importing membership payments, the task must be done in two distinct steps, import the contributions and then bulk update the expiry dates for the memberships. This article describes a safe way to achieve this.

Prepare the spreadsheet

The first step is to make sure the spreadsheet is prepared appropriately. Individual contributions need to be applied to an existing CiviCRM Contact, so make sure that all contacts are created prior to importing contributions. For importing contributions, here are the fields that you will need as a minimum:

  • Contact ID
  • Date received
  • Total amount
  • Financial type (Membership dues)
  • Payment method (e.g. Direct debit)
  • Source (e.g. Account department)

Please create a separate row for each payment.



Always create a backup prior to performing any import.


Tag the contacts

You need to tag all these contacts (e.g. using today's date) so that you can update all Membership expiry dates.

  1. Go to Components > CiviCRM.
  2. Go to Contacts > Import Contacts.
  3. Import the list of Contact IDs with no additional data.
  4. Choose Update for duplicate Contacts.
  5. Then you can Tag on import (e.g. Direct debits today's date).


Membership update profile

We will need a Profile to facilitate bulk updates of Membership records.

  1. Go to Components > CiviCRM.
  2. Go to Administer > Customize Data and Screens > Profiles.
  3. Click the Add Profile button.
  4. Give it a Name and Description and click Save.

Now you can add the following field:

  1. Field Name: Membership > Membership Expiration Date.

We will use this profile when we come to perform the bulk update of Membership Expiration dates.


Import the contributions

You are now ready to import the contributions.

  1. Go to Components > CiviCRM.
  2. Go to Contributions > Import contributions.

Browse to your spreadsheet, and match the fields accordingly. I always do a test import with one entry to be sure that the import will run as I expect. I then delete the test import, before running the full import.


Update Membership Expiration dates

Finally we can extend the expiry date for all membership records.

  1. Go to Components > CiviCRM.
  2. Go to Search > Find Memberships.
  3. For Member Tag(s) select the tag that you used in the earlier step.
  4. Click Search.

This will reveal all Membership records for Contacts with the new tag. Note that you might also need to filter for Membership Type. Always double check the total number, in case there are Membership records that weren't part of this payment.

  1. Select all membership records.
  2. From the Actions drop-down, select Update multiple memberships.
  3. Select the Profile that you created in the earlier step.
  4. Click Continue.
  5. Change the Membership Expiration Date accordingly.

Note that you can click the Copy/Paste icon at the top of the list.


Thanks for visiting.