For some of our contributions, we have two different financial types, and that money needs to be treated differently. For instance, donors can make a donation and choose to add 3% to cover the processing fees. The donation is a "Donation" type, and the fee is a non-deductible "Processor Fees" type. The default Financial Type of the Contribution is "Donation". See image. Screen shot

So, I can see the two different financial types within the Contribution, but when we are printing donor letters or running reports or searching for Contributions, we can only treat it as a "Donation" type (the default type of the Price Set).

We want to be able to print thank you letters with only the donation portion of the contribution ("Thank you for your $10 gift" in this case, not "$10.30"). And, we want to be able to run reports showing how much people have contributed through paying their own processing fees (or whatever the secondary type is).

  • How is this information stored in the database?
  • Is there (could there be) a token available to get only the "Donation" amount?
  • Why doesn't the Processor Fee amount (which is configured as "Not Deductible") show up in the "non-deductible amount" field for the Contribution?
  • Has anyone else come up with a solution or work-around for this issue?

1 Answer 1


Check out Extended Reports Extension https://civicrm.org/extensions/extended-reports/24

Here is a quick rundown of how Civi handles Financial Types. The Civi Core native reports will only pull reports for Financial Types connected with your Price Set Default Financial Type. Which is stored in table civicrm_contribution.financial_type_id.
The Price Field Financial Type is actually called Line Items in the background. You have to use Extended Reports to be able to pull reports based on Line Item (civicrm_line_item.financial_type_id).

When creating a Message Template use tokens for the civicrm_line_item table Ie.{$lineitem.label} {$lineitem.financial_type_id}

You might have/want to create another Financial Type similar to Donation (maybe Contribution). Then use Donation for the Price Set Default Financial Type and Contribution for the Price Field Financial Type. The just helps you know which one you are seeing in reports and when Pulling Reports, you are sure not to get mixed data (Donations and Processing Fees) like you are seeing now.

  • Thank you! I had discovered Extended Reports a bit ago and find it very helpful. Using the lineitem tokens in message templates is something I haven't explored yet, so thanks for that. Also, your suggestion to use separate financial types for Contributions and Price Fields is excellent. Oct 23, 2017 at 16:22

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.