I had a member sign up for an annual membership while their current membership was still active, but they used a slightly different address and so it created a duplicate contact with a new membership. I merged the two contacts and so now I have one contact record with two memberships. I want to keep the older membership and delete the newer one, so I manually renewed the older one. However, deleting the newer one will delete the contribute record associated with that membership.

How can I reassign that contribution, or at least remove the link between the contribution and the newer membership, so that I can delete that membership?


2 Answers 2


Through UI its bit difficult(impossible). If its a matter of single record then i would suggest you to use API explorer to do it.

Navigate to CiviCRM >> Support >> Developer >> API Explorer

  1. Create Membership payment for old membership (23 is old membership id(without contribution) and 45 is contribution id) enter image description here

  2. Delete new membership.

Note: Backup db before performing any api actions

  • Thanks! I haven't done any work with the API before but this seems like a good chance to learn.
    – Sam F.
    Commented Oct 2, 2018 at 15:27

Pradeep's answer is good if this is a one-off situation. If you think you might encounter this on an ongoing basis, the Link Membership to Contributions extension is designed precisely for this. CiviCoop produced several useful extensions for administering membership payments including this one.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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