Skip to main content
POST
/
v5
/
taxEngineExpress
/
calculateTaxCanada
Calculate Taxes for Canada
curl --request POST \
  --url https://sandbox.hurdlr.com/rest/v5/taxEngineExpress/calculateTaxCanada \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: */*' \
  --data '
{
  "client_id": "fake_client_id",
  "userId": "fake_userId",
  "province": "AB",
  "year": 2018,
  "taxPeriod": "ANNUAL_PROJECTED",
  "businessIncome": 100000,
  "expenses": 5000,
  "t4Income": 10000,
  "dividendIncome": 0,
  "interestIncome": 0,
  "capitalGainIncome": 0,
  "hasSpouse": true,
  "spouseIncome": 10000,
  "hasDependent": true,
  "dependentIncome": 10000,
  "useT4Withholding": true,
  "federalT4Withholding": 5000,
  "provincialT4Withholding": 3000,
  "autoSalesTax": false,
  "revenueSalesTax": 3000,
  "expenseSalesTax": 2000,
  "testDate": "2023-12-25",
  "taxPayments": [
    {
      "date": "2019-09-14",
      "region": "FEDERAL",
      "period": "Q1",
      "amount": 1000.51
    }
  ]
}
'
{
  "taxTableYear": 123,
  "businessIncome": 123,
  "expenses": 123,
  "t4Income": 123,
  "spouseIncome": 123,
  "dependentIncome": 123,
  "federalTaxAmount": 123,
  "federalTaxableIncome": 123,
  "federalTaxAmountWithoutTaxCredit": 123,
  "federalTaxCreditAmount": 123,
  "federalEffectiveTaxRate": 123,
  "federalMarginalTaxRate": 123,
  "provincialTaxAmount": 123,
  "provincialTaxableIncome": 123,
  "provincialTaxAmountWithoutTaxCredit": 123,
  "provincialTaxCreditAmount": 123,
  "provincialEffectiveTaxRate": 123,
  "provincialMarginalTaxRate": 123,
  "paymentDueDate": "2023-11-07T05:31:56Z",
  "businessOverallTaxAmount": 123,
  "afterTaxIncome": 123,
  "salesTaxDTO": {
    "revenueSalesTax": 123,
    "expenseSalesTax": 123,
    "netSalesTax": 123
  },
  "overallTaxAmountUnpaid": 123,
  "federalTaxAmountUnpaid": 123,
  "stateTaxAmountUnpaid": 123,
  "quarterlyTaxes": {
    "q1TaxAmountFederalOwed": 20585.8,
    "q2TaxAmountFederalOwed": 13726.62,
    "q3TaxAmountFederalOwed": 20585.81,
    "q4TaxAmountFederalOwed": 27444.99,
    "q1TaxAmountFederalPaid": 0,
    "q2TaxAmountFederalPaid": 0,
    "q3TaxAmountFederalPaid": 1000,
    "q4TaxAmountFederalPaid": 0,
    "q1TaxAmountStateOwed": 4728.85,
    "q2TaxAmountStateOwed": 3153.2,
    "q3TaxAmountStateOwed": 4728.85,
    "q4TaxAmountStateOwed": 6304.49,
    "q1TaxAmountStatePaid": 0,
    "q2TaxAmountStatePaid": 0,
    "q3TaxAmountStatePaid": 0,
    "q4TaxAmountStatePaid": 0,
    "q1DueDate": "2023-11-07T05:31:56Z",
    "q2DueDate": "2023-11-07T05:31:56Z",
    "q3DueDate": "2023-11-07T05:31:56Z",
    "q4DueDate": "2023-11-07T05:31:56Z",
    "q1FederalPaymentsRolledOverToFuture": false,
    "q2FederalPaymentsRolledOverToFuture": false,
    "q3FederalPaymentsRolledOverToFuture": true,
    "q4FederalPaymentsRolledOverToFuture": false,
    "q1StatePaymentsRolledOverToFuture": false,
    "q2StatePaymentsRolledOverToFuture": false,
    "q3StatePaymentsRolledOverToFuture": false,
    "q4StatePaymentsRolledOverToFuture": false,
    "q1FederalQuarterlyPaymentsAllocatedFromPast": 0,
    "q2FederalQuarterlyPaymentsAllocatedFromPast": 0,
    "q3FederalQuarterlyPaymentsAllocatedFromPast": 0,
    "q4FederalQuarterlyPaymentsAllocatedFromPast": 19585.81,
    "q1StateQuarterlyPaymentsAllocatedFromPast": 0,
    "q2StateQuarterlyPaymentsAllocatedFromPast": 0,
    "q3StateQuarterlyPaymentsAllocatedFromPast": 0,
    "q4StateQuarterlyPaymentsAllocatedFromPast": 0,
    "q1FederalQuarterlyPaymentsBalance": 20585.81,
    "q2FederalQuarterlyPaymentsBalance": 13726.62,
    "q3FederalQuarterlyPaymentsBalance": 19585.81,
    "q4FederalQuarterlyPaymentsBalance": 47030.8,
    "q1StateQuarterlyPaymentsBalance": 4728.85,
    "q2StateQuarterlyPaymentsBalance": 3153.2,
    "q3StateQuarterlyPaymentsBalance": 4728.85,
    "q4StateQuarterlyPaymentsBalance": 6304.49
  },
  "qppcontributionAmount": 123,
  "qppdeductionAmount": 123,
  "cppcontributionAmount": 123,
  "cppdeductionAmount": 123
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

*/*

tax calculation parameters

client_id
string
required

The client_id of the Tight Partner

Example:

"fake_client_id"

userId
string
required

An anonymized userId, used for tracking API usage. The Tight Partner decides how to anonymize it.

Example:

"fake_userId"

province
string
required

The two-character province abbreviation for which tax needs to be calculated on

Example:

"AB"

year
integer<int32>
required

Tax year for which tax needs to be calculated on

Example:

2018

taxPeriod
enum<string>
required

Period for which tax needs to get calculated

Available options:
ANNUAL_PROJECTED,
YTD
Example:

"ANNUAL_PROJECTED"

businessIncome
number

The business income for which tax needs to be calculated on

Example:

100000

expenses
number

The deductible expense total for which tax needs to be calculated on

Example:

5000

t4Income
number

The T4 income total for which tax needs to be calculated on

Example:

10000

dividendIncome
number

The dividend income for which tax needs to be calculated on

Example:

0

interestIncome
number

The interest income for which tax needs to be calculated on

Example:

0

capitalGainIncome
number

The capital gain income for which tax needs to be calculated on

Example:

0

hasSpouse
boolean

True if the taxpayer has a spouse

Example:

true

spouseIncome
number

The spousal income, if applicable

Example:

10000

hasDependent
boolean

True if the taxpayer has one or more dependents

Example:

true

dependentIncome
number

The dependent income, if applicable

Example:

10000

useT4Withholding
boolean

True if the user wants to specify their own withholdings, as opposed to using our estimated withholdings

Example:

true

federalT4Withholding
number

Federal income tax that was withheld from wages

Example:

5000

provincialT4Withholding
number

Provincial income tax that was withheld from wages

Example:

3000

autoSalesTax
boolean

True if user wants us to create expenseSalesTax and revenueSalesTax, as opposed to pass expenseSalesTax and revenueSalesTax param value on there own

Example:

false

revenueSalesTax
number

The revenue sales tax amount

Example:

3000

expenseSalesTax
number

The expense sales tax amount

Example:

2000

testDate
string<date>

Date that the TaxEngine should treat as 'today', e.g. if you are trying to simulate a future scenario for test purposes. This field should be empty when deployed in production.

taxPayments
object[]

An array of JSON objects, where each object represents a tax payment

Response

200 - application/json

Successful operation

taxTableYear
integer<int32>
businessIncome
number
expenses
number
t4Income
number
spouseIncome
number
dependentIncome
number
federalTaxAmount
number
federalTaxableIncome
number
federalTaxAmountWithoutTaxCredit
number
federalTaxCreditAmount
number
federalEffectiveTaxRate
number
federalMarginalTaxRate
number
provincialTaxAmount
number
provincialTaxableIncome
number
provincialTaxAmountWithoutTaxCredit
number
provincialTaxCreditAmount
number
provincialEffectiveTaxRate
number
provincialMarginalTaxRate
number
paymentDueDate
string<date-time>
businessOverallTaxAmount
number
afterTaxIncome
number
salesTaxDTO
object
overallTaxAmountUnpaid
number
federalTaxAmountUnpaid
number
stateTaxAmountUnpaid
number
quarterlyTaxes
object
qppcontributionAmount
number
qppdeductionAmount
number
cppcontributionAmount
number
cppdeductionAmount
number