> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tight.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Calculate Taxes for Canada

> Get a summary of a Canadian user's taxes, using varying inputs, for estimation purposes.



## OpenAPI

````yaml https://dev.hurdlr.com/rest/v1/devUtils/documentation?version=5&Authorization=dexfeE6aRK3zwXP4ku5aWm8w&env=sandbox post /v5/taxEngineExpress/calculateTaxCanada
openapi: 3.0.1
info:
  title: Tight API
  contact:
    name: Hurdlr, Inc. (dba Tight)
    url: https://www.tight.com
    email: api@tight.com
  version: 6.0.0
servers:
  - url: https://sandbox.hurdlr.com/rest
    description: Staging Environment
  - url: https://prod.hurdlr.com/rest
    description: Production Environment
security:
  - accessTokenSecurity: []
  - basicSecurity: []
tags:
  - name: Authentication
  - name: Banks
  - name: Business & Client Management
  - name: Invoicing
  - name: Revenue
  - name: Investments
  - name: Payouts
  - name: Bills
  - name: Expenses
  - name: Payroll
  - name: Reports
  - name: Accounting
  - name: Mileage
  - name: Taxes
  - name: Time Tracking
  - name: Imports
  - name: Files
  - name: Accountant
  - name: Audit Trail
  - name: Support
  - name: Tax Engine Express
  - name: Interview Endpoint
  - name: Ledgering
  - name: Configuration
  - name: Templates
paths:
  /v5/taxEngineExpress/calculateTaxCanada:
    post:
      tags:
        - Tax Engine Express
      summary: Calculate Taxes for Canada
      description: >-
        Get a summary of a Canadian user's taxes, using varying inputs, for
        estimation purposes.
      operationId: calculateTaxCanada
      requestBody:
        description: tax calculation parameters
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/ApiCalculateTaxCanadaParam'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CanadianTaxAPIDTO'
components:
  schemas:
    ApiCalculateTaxCanadaParam:
      required:
        - client_id
        - province
        - taxPeriod
        - userId
        - year
      type: object
      properties:
        client_id:
          type: string
          description: The client_id of the Tight Partner
          example: fake_client_id
        userId:
          type: string
          description: >-
            An anonymized userId, used for tracking API usage. The Tight Partner
            decides how to anonymize it.
          example: fake_userId
        province:
          type: string
          description: >-
            The two-character province abbreviation for which tax needs to be
            calculated on
          example: AB
        year:
          type: integer
          description: Tax year for which tax needs to be calculated on
          format: int32
          example: 2018
        businessIncome:
          type: number
          description: The business income for which tax needs to be calculated on
          example: 100000
        expenses:
          type: number
          description: The deductible expense total for which tax needs to be calculated on
          example: 5000
        t4Income:
          type: number
          description: The T4 income total for which tax needs to be calculated on
          example: 10000
        dividendIncome:
          type: number
          description: The dividend income for which tax needs to be calculated on
          example: 0
        interestIncome:
          type: number
          description: The interest income for which tax needs to be calculated on
          example: 0
        capitalGainIncome:
          type: number
          description: The capital gain income for which tax needs to be calculated on
          example: 0
        hasSpouse:
          type: boolean
          description: True if the taxpayer has a spouse
          example: true
        spouseIncome:
          type: number
          description: The spousal income, if applicable
          example: 10000
        hasDependent:
          type: boolean
          description: True if the taxpayer has one or more dependents
          example: true
        dependentIncome:
          type: number
          description: The dependent income, if applicable
          example: 10000
        useT4Withholding:
          type: boolean
          description: >-
            True if the user wants to specify their own withholdings, as opposed
            to using our estimated withholdings
          example: true
        federalT4Withholding:
          type: number
          description: Federal income tax that was withheld from wages
          example: 5000
        provincialT4Withholding:
          type: number
          description: Provincial income tax that was withheld from wages
          example: 3000
        autoSalesTax:
          type: boolean
          description: >-
            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:
          type: number
          description: The revenue sales tax amount
          example: 3000
        expenseSalesTax:
          type: number
          description: The expense sales tax amount
          example: 2000
        taxPeriod:
          type: string
          description: Period for which tax needs to get calculated
          example: ANNUAL_PROJECTED
          enum:
            - ANNUAL_PROJECTED
            - YTD
        testDate:
          type: string
          description: >-
            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.
          format: date
        taxPayments:
          type: array
          description: An array of JSON objects, where each object represents a tax payment
          items:
            $ref: '#/components/schemas/TaxPaymentParam'
      xml:
        name: ApiCalculateTaxCanadaParam
    CanadianTaxAPIDTO:
      type: object
      properties:
        taxTableYear:
          type: integer
          format: int32
        businessIncome:
          type: number
        expenses:
          type: number
        t4Income:
          type: number
        spouseIncome:
          type: number
        dependentIncome:
          type: number
        federalTaxAmount:
          type: number
        federalTaxableIncome:
          type: number
        federalTaxAmountWithoutTaxCredit:
          type: number
        federalTaxCreditAmount:
          type: number
        federalEffectiveTaxRate:
          type: number
        federalMarginalTaxRate:
          type: number
        provincialTaxAmount:
          type: number
        provincialTaxableIncome:
          type: number
        provincialTaxAmountWithoutTaxCredit:
          type: number
        provincialTaxCreditAmount:
          type: number
        provincialEffectiveTaxRate:
          type: number
        provincialMarginalTaxRate:
          type: number
        paymentDueDate:
          type: string
          format: date-time
        businessOverallTaxAmount:
          type: number
        afterTaxIncome:
          type: number
        salesTaxDTO:
          $ref: '#/components/schemas/SalesTaxDTO'
        overallTaxAmountUnpaid:
          type: number
        federalTaxAmountUnpaid:
          type: number
        stateTaxAmountUnpaid:
          type: number
        quarterlyTaxes:
          $ref: '#/components/schemas/QuarterlyTaxesDTOV2'
        qppcontributionAmount:
          type: number
        qppdeductionAmount:
          type: number
        cppcontributionAmount:
          type: number
        cppdeductionAmount:
          type: number
    TaxPaymentParam:
      required:
        - amount
        - date
        - period
        - region
      type: object
      properties:
        date:
          type: string
          description: 'Date when the tax payment was made '
          format: date
          example: '2019-09-14'
        region:
          type: string
          description: Region for which the tax payment was made
          enum:
            - FEDERAL
            - STATE
        period:
          type: string
          description: Period for which the tax payment was made
          enum:
            - Q1
            - Q2
            - Q3
            - Q4
        amount:
          type: number
          description: Total amount paid
          example: 1000.51
      description: An array of JSON objects, where each object represents a tax payment
      xml:
        name: ApiTaxPaymentParam
    SalesTaxDTO:
      type: object
      properties:
        revenueSalesTax:
          type: number
        expenseSalesTax:
          type: number
        netSalesTax:
          type: number
    QuarterlyTaxesDTOV2:
      type: object
      properties:
        q1TaxAmountFederalOwed:
          type: number
          example: 20585.8
        q2TaxAmountFederalOwed:
          type: number
          example: 13726.62
        q3TaxAmountFederalOwed:
          type: number
          example: 20585.81
        q4TaxAmountFederalOwed:
          type: number
          example: 27444.99
        q1TaxAmountFederalPaid:
          type: number
          example: 0
        q2TaxAmountFederalPaid:
          type: number
          example: 0
        q3TaxAmountFederalPaid:
          type: number
          example: 1000
        q4TaxAmountFederalPaid:
          type: number
          example: 0
        q1TaxAmountStateOwed:
          type: number
          example: 4728.85
        q2TaxAmountStateOwed:
          type: number
          example: 3153.2
        q3TaxAmountStateOwed:
          type: number
          example: 4728.85
        q4TaxAmountStateOwed:
          type: number
          example: 6304.49
        q1TaxAmountStatePaid:
          type: number
          example: 0
        q2TaxAmountStatePaid:
          type: number
          example: 0
        q3TaxAmountStatePaid:
          type: number
          example: 0
        q4TaxAmountStatePaid:
          type: number
          example: 0
        q1DueDate:
          type: string
          format: date-time
        q2DueDate:
          type: string
          format: date-time
        q3DueDate:
          type: string
          format: date-time
        q4DueDate:
          type: string
          format: date-time
        q1FederalPaymentsRolledOverToFuture:
          type: boolean
          example: false
        q2FederalPaymentsRolledOverToFuture:
          type: boolean
          example: false
        q3FederalPaymentsRolledOverToFuture:
          type: boolean
          example: true
        q4FederalPaymentsRolledOverToFuture:
          type: boolean
          example: false
        q1StatePaymentsRolledOverToFuture:
          type: boolean
          example: false
        q2StatePaymentsRolledOverToFuture:
          type: boolean
          example: false
        q3StatePaymentsRolledOverToFuture:
          type: boolean
          example: false
        q4StatePaymentsRolledOverToFuture:
          type: boolean
          example: false
        q1FederalQuarterlyPaymentsAllocatedFromPast:
          type: number
          example: 0
        q2FederalQuarterlyPaymentsAllocatedFromPast:
          type: number
          example: 0
        q3FederalQuarterlyPaymentsAllocatedFromPast:
          type: number
          example: 0
        q4FederalQuarterlyPaymentsAllocatedFromPast:
          type: number
          example: 19585.81
        q1StateQuarterlyPaymentsAllocatedFromPast:
          type: number
          example: 0
        q2StateQuarterlyPaymentsAllocatedFromPast:
          type: number
          example: 0
        q3StateQuarterlyPaymentsAllocatedFromPast:
          type: number
          example: 0
        q4StateQuarterlyPaymentsAllocatedFromPast:
          type: number
          example: 0
        q1FederalQuarterlyPaymentsBalance:
          type: number
          example: 20585.81
        q2FederalQuarterlyPaymentsBalance:
          type: number
          example: 13726.62
        q3FederalQuarterlyPaymentsBalance:
          type: number
          example: 19585.81
        q4FederalQuarterlyPaymentsBalance:
          type: number
          example: 47030.8
        q1StateQuarterlyPaymentsBalance:
          type: number
          example: 4728.85
        q2StateQuarterlyPaymentsBalance:
          type: number
          example: 3153.2
        q3StateQuarterlyPaymentsBalance:
          type: number
          example: 4728.85
        q4StateQuarterlyPaymentsBalance:
          type: number
          example: 6304.49
        taxPayments:
          type: array
          writeOnly: true
          items:
            $ref: '#/components/schemas/TaxPaymentParam'
  securitySchemes:
    accessTokenSecurity:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: /auth/account
          scopes:
            write: ''

````