Price sets and Contribution pages allow for donations to a "Financial Type" (and corresponding Financial Account) This is great for managing different types of donations.

It is possible to generate contribution page and profile for that maps to a single financial type. It is also possible within a single price set to specify an associate price set that maps to a financial type (I assume this will override the contribution page financial type. But there is no way to dynamically select a price set. (btw - this would be a great feature!)

This means replicating the same values for multiple price sets and writing some code to show on a single page. I'm looking at 10 different "Funds / Financial Types"

For example: Select from ($100, $500 and $1000 donation) to either the General fund or the Scholarship fund on a single page

I'm looking for something in wordpress, but webform-civicrm doesn't seem to allow this either.

Some approaches I've considered:

  • Create a massive price set with all potential Financial Types and use some javascript to dynamically show/hide. This seems really ugly and hard to maintain.
  • Create a parent page with some javascript to dynamically load and select from several contribution page URLS. A bit cleaner, but IMO hackish.
  • Set to a dummy financial type and then write a script to re-assign to the correct one based on a value in a profile. I have not looked at the API to do this yet, but assume it would make fewer assumptions than javascript ....

BTW - I'm posting here as I think a common use case is a single page that dynamically sets the financial type based on a donor selection. Please comment if I'm right/wrong.

  • related but not duplicate: civicrm.stackexchange.com/questions/506/… Jul 3, 2015 at 18:05
  • I'm interested by the subject, for the 3rd option you could consider custom data that lists the funds and civirules to update the financial type
    – veroniqueg
    May 23, 2017 at 10:00
  • I am curious why you want to have preset amounts vs just a blank that the donor can put in the amount they want? What is the advantage of one over the other?
    – Iowa Boy
    Oct 11, 2017 at 21:32

1 Answer 1


You can have multiple Financial Types in one Price Set and all on the same contribution page. The simple way to do it is to set the Price of the Price Field at $1.00 and just have one Price Field for each Fund. You can give each Price Field in a Price Set different Financial Types. Then donors would enter the amount they want to give. But, you could set it up as you describe above. The first Price Field for General Fund, you would use Pre-Field Help to Display your Section Title "General Fund". Then you would set this one up as General Fund $100 with the Price at $100, Financial Type "General Fund". Create another General Fund $500 with a Price of $500, Financial Type "General Fund". Etc. Repeat this pattern for "Scholarship" but give these a Financial Type "Scholarship". Then the donors would enter a 1 (or any number 2x$100) for the amount they want to give. Just make sure that the Default Financial Type for the Price Set is NOT any you are using in the Price Fields within it. Otherwise it will get confusing when you are pulling reports and you likely will get mixed data. Use Contribution or something for the Price Set Default Financial Type

Here is a quick rundown of how Civi handles Financial Types. When you create a Price Set and enter a value in the Default Financial Type. It is stored in table civicrm_contribution.financial_type_id. This is the Financial Type that is used in CiviReports.

The Price Field Financial Type is actually called Line Items in the background. You can have each Price Field have a different Financial Type. You have to use Extended Reports Extension to be able to pull reports based on Line Item. These Financial Types are stored in table 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}

Below is a screenshot of our contribution page. Donors have the option to give to the Fund(s) of their choice and each one is a different Financial Type (Line Item) in the backend. Contribution Page with multiple Financial Types

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.