Canadian Payroll Engine


Are you a software developer looking to add a Canadian payroll component to your own software?   Do you want to avoid the hassle of developing and maintaining a complete payroll tax engine?   If the answer is yes, then you might want to consider leasing our payroll tax engine.

Classic Software has been developing payroll software since 1985.  We are located in Canada and we know the Canadian Payroll laws.  For the past 12 years we have been providing windows payroll solutions to businesses throughout Canada.   Our payroll "web service" that can be integrated into your existing software to calculate Canadian Payroll taxes.



Prices for rental of the engine start at just .16 cents per calculation, with discounts available at various levels. Contact us for more prcing information.


Using the engine could not be simpler.  Here is a quick example in C#:

Step One

First we create a reference to the payroll web service....

PayrollService.PayrollServiceClient srv = new PayrollService.PayrollServiceClient();

Step Two

Next we create an object to pass the data to the payroll web service...

PayrollService.DataIn dataIn = new PayrollService.DataIn();

Step Three

Next we create an object to get data from the payroll web service...

PayrollService.DataOut dataOut = new PayrollService.DataOut();

Step Four

Now we set the properties to pass to the service (there are currently about 30 that can be set, a few are listed below)...

dataIn.GrossRemunerationForPayPeriod=1700; dataIn.TotalClaimAmountFederalTD1=10527; dataIn.TotalClaimAmountProvincialTerritorialTD1=9104; dataIn.NumberOfPayPeriodsInYear=52; dataIn.ProvinceOfEmployment="ON"; dataIn.CalculationMonth=9; dataIn.CalculationYear = 2011;;

Step Five

Now we call the service on the web (yes one line does it all)...

dataOut = srv.Calculate(dataIn);

Step Six

Lastly we display/use the results...

lblmessage.Text = Convert.ToString(dataOut.ReturnMessage); lblresult.Text = Convert.ToString(dataOut.ReturnCode); lblCPPcomp.Text = "CPP Company: " + Convert.ToString (dataOut.CPP_Company); lblCPPemp.Text = "CPP Employee: " + Convert.ToString(dataOut.CPP_Employee); lblEIcomp.Text = "EI Company: " + Convert.ToString(dataOut.EI_Company); lblEIemp.Text = "EI Employee: " + Convert.ToString(dataOut.EI_Employee); lblFed.Text = "Federal Tax: " + Convert.ToString(dataOut.FederalTax); lblProv.Text = "Provincal Tax: " + Convert.ToString(dataOut.ProvincialTax);

and you are done!