In Canada we need to charge Sales Tax depending on what Province the Member resides in. How can we do this in the Back Office. In other words: an administrator signing up a Member in CiviCRM.

  • I'd note that your solution works adequately well for public contribution pages as well, as long as you trust your members to select their province.
    – Alan Dixon
    Commented Jul 24, 2018 at 19:01
  • For public-> we use a select province/territory -> that creates a button (Purchase Membership now) that leads to one of 4 Public Contribution/Membership Pages -> one for each Tax Rate :-) Commented Jul 24, 2018 at 20:54

1 Answer 1


You can do this with Price Sets. I'll document the entire set up:

  1. Go to Administer -> CiviContribute -> CiviContribute Component Settings and check the box Enable Tax & Invoicing (Tax = Sales Tax; Invoicing you get as a bonus)

  2. Go to Administer -> CiviContribute -> Financial Accounts and create one Financial Account for each Sales Tax Rate

Ignore Tax-Deductible - it is not related to Sales Tax; it potentially could be used to track whether monies are deductible for Income Tax purposes but I don't recommend it [there are other ways to track that; will document that at some point]. Click Is Tax -> (Tax = Sales Tax) and enter the Tax Rate right below it.

enter image description here

Repeat until you have the 3 Financial Accounts needed (3 different Sales Tax rates):

enter image description here

  1. Set up Financial Types -> And associate each one with a one of the Financial Accounts we just created. Note we can add a 4th one [for out of Country residents] - i.e. with no Sales Tax.

enter image description here

  1. Next are Price Sets - create a Price Set - for each Membership Type/Sales Tax Option - Yes that's a lot of Price Sets. Let's look at one: in the Maritime Provinces the Sales Tax is 15% -> so we need to create a Priceset that has a Line Item that hooks up to the Financial Type that has the 15% Tax Rate associated with it:

enter image description here

Looking at the Individual Price Fields:

enter image description here

  1. Putting it all together - in Back Office -> from a Contact Summary record -> Membership tab -> Add Membership or Create Credit Card Membership

enter image description here

And selecting that Priceset results in the correct Amounts

enter image description here

  • This is awesome! Thanks for the intensive writeup. I've been lurking around the CiviCRM tax issue for the better part of 8 years and even went so far as to write a somewhat limited extension to handle taxes before the concept of accounts arrived. I knew there was a method for this but I really needed someone to document it. Commented Jul 24, 2018 at 0:18
  • Hi Andrew! Thank you - 8y? Yikes... If you've come across any tips/tricks - please do document in SE. Would love to see them! Commented Jul 24, 2018 at 0:42
  • Hi Karen. Yeah, I know... 8yrs. Yikes is right. I know how to do some very specific things in Civi well. I can build extensions and extend Civi and expose all sorts of Civi things to Drupal but my weak point is the Accounts part. I'll be making an effort this year to wrap my head around that. Cheers. Commented Jul 27, 2018 at 17:53

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.