I am importing contributions from my donors from a .csv file. I have tested the process using a simple .csv file with one row of data for a payment from a donor I have already added to contacts. The import was successful, matching the contribution to the donor. When I try to repeat this process using a spreadsheet with approximately 40 rows of data (including multiple contributions from some donors) all rows of the spreadsheet fail to import and have the error message 'Expected one Contribution but found 2'. I am using the email address to match to contact.

Any ideas what I am doing wrong?

  • Hi Imran, are you choosing "Insert new contributions" or "Update existing contributions" on the import form? Jan 28, 2020 at 15:55
  • Hi, I'm choosing "insert new contributions". Jan 29, 2020 at 12:29
  • Very odd! Hmmm. There are several contribution fields that must be unique, e.g. transaction ID, invoice ID (I think there may be a couple of others too). There's no chance that somehow those have ended up with multiple records having the same IDs? i.e. are you using any "id" fields in your import? Jan 30, 2020 at 10:06
  • I have checked the csv file and there's no duplicates on the unique fields. The docs say the following fo importing contributions: If you insert new contributions, your CSV file must include at least the following fields: - Contact Id or External Identifier or all the fields used in your Unsupervised Duplicate Matching rule (to match to an existing contact) - Financial Type - Total Amount (continued) Feb 3, 2020 at 8:11
  • I've manually added the contact id to the spreadsheet, still no joy. The default 'unsupervised duplicate matching rule' that I have says name and email, but when I set up the field matching there are no 'name' fields in the drop down list to match to. Strange that this originally worked for a single line import. Feb 3, 2020 at 8:15

2 Answers 2


Since Imran is on CiviCRM Spark, I had a quick look at the issue. I think it was caused by the field mapping, where the import was trying to import the "Contribution Status", but there wasn't a status for "paid out", causing the import to fail.

So I changed the import mapping to ignore the import status (since the file only completed contributions), and it seems to have resolved the issue.

ADD-ON: this also happens when you try import Contributions with status=completed (as opposed to Completed)!

  • should this be reported as a bug? Seems the error should have said "Invalid Contribution Status". Feb 5, 2020 at 9:47

4 years later and different situation... if you use CiviSEPA, this may apply to you: https://github.com/Project60/org.project60.sepapp/issues/17

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.