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

# Get the effective tax code and NI category for an employee on a specific date



## OpenAPI

````yaml /api-reference/specs/pay-api.yaml get /employees/{employeeId}/effective-tax-info
openapi: 3.0.3
info:
  title: FlowPayroll API
  description: >-
    API for payroll management, including payroll upload, lock, HMRC submission,
    employee management
  version: 0.1.0
servers:
  - url: https://api.sandbox.flowpayroll.ai/v1
security:
  - XAuthToken: []
    XOrgId: []
tags:
  - name: Employees
    description: >-
      Create, retrieve, update, and delete employee records, and look them up by
      NI number or payroll ID.
  - name: Starters & leavers
    description: Set and clear starter and leaver details, individually or in bulk.
  - name: Tax codes
    description: >-
      Manage employee tax codes and query the effective tax code and NI category
      on a given date.
  - name: NI & identifiers
    description: Manage NI categories, National Insurance numbers, and payroll IDs.
  - name: Student loans
    description: Start and end student and postgraduate loans.
  - name: Payroll setup
    description: Assign an employee's payroll config and set opening balances.
  - name: Payroll
  - name: Payroll lines
  - name: PayrollConfig
  - name: Pay Elements
  - name: Calculator
  - name: Payslip
  - name: RTI
  - name: YearEnd
  - name: Organisation
paths:
  /employees/{employeeId}/effective-tax-info:
    get:
      tags:
        - Tax codes
      summary: >-
        Get the effective tax code and NI category for an employee on a specific
        date
      operationId: GetEffectiveTaxInfo
      parameters:
        - name: employeeId
          in: path
          required: true
          schema:
            type: string
          description: The ID of the employee
        - name: date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            The date to get effective tax info for (YYYY-MM-DD). Defaults to
            today if not provided.
      responses:
        '200':
          description: Effective tax info retrieved successfully
          content:
            application/json:
              schema:
                type: object
                allOf:
                  - $ref: '#/components/schemas/ResponseBody'
                  - properties:
                      content:
                        type: object
                        properties:
                          data:
                            $ref: '#/components/schemas/EffectiveTaxInfoDto'
        '400':
          description: Invalid date format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBody'
        '404':
          description: Employee not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBody'
        '500':
          description: An internal server error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBody'
components:
  schemas:
    ResponseBody:
      type: object
      properties:
        message:
          $ref: '#/components/schemas/MessageWithTokenResponse'
        content:
          type: object
          properties:
            data:
              type: object
              nullable: true
            metadata:
              type: object
              nullable: true
              properties:
                dateFormat:
                  type: string
                  default: yyyy-MM-dd
                dateTimeFormat:
                  type: string
                  default: yyyy-MM-ddTHH:mm:ss.fffZ
                paginationToken:
                  type: string
                  nullable: true
        validationIssues:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssue'
        messageToken:
          type: string
    EffectiveTaxInfoDto:
      type: object
      description: >-
        Response containing the effective tax code and NI category for a
        specific date
      required:
        - effectiveTaxCode
        - effectiveNiCategory
        - effectiveDate
        - taxYear
      properties:
        effectiveTaxCode:
          $ref: '#/components/schemas/EmployeeTaxCodeDto'
        effectiveNiCategory:
          $ref: '#/components/schemas/EmployeeNiCategoryDto'
        effectiveDate:
          type: string
          format: date
          description: The date for which the effective values were calculated
          example: '2024-06-15'
        taxYear:
          type: integer
          description: The tax year for which the effective values were calculated
          example: 2024
      example:
        effectiveTaxCode:
          code: 1257L
          effectiveDate: '2024-04-06'
          reason: Annual Review
          issuedBy: HMRC
          week1Month1: false
        effectiveNiCategory:
          category: A
          effectiveDate: '2024-04-06'
          reason: Annual Review
          issuedBy: HMRC
        effectiveDate: '2024-06-15'
        taxYear: 2024
    MessageWithTokenResponse:
      type: object
      properties:
        text:
          type: string
        token:
          type: string
        tokenArguments:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssueArgument'
    ValidationIssue:
      type: object
      description: >
        Field validation item. `reasonToken` is a stable snake_case key for i18n
        or custom client messages; `reason` is the default English text from the
        API.
      properties:
        field:
          type: string
          description: Dot-path of the field (e.g. name.firstName, address.line1).
        reason:
          type: string
          description: Default human-readable message.
        reasonToken:
          type: string
          description: Machine-readable error identifier (snake_case).
        reasonTokenArguments:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ValidationIssueArgument'
    EmployeeTaxCodeDto:
      type: object
      required:
        - code
      properties:
        code:
          type: string
          description: The tax code for the employee.
          example: 1257L
        effectiveDate:
          type: string
          nullable: true
          description: >-
            The effective date of the tax code, if none is set, created date is
            used.
          example: '2024-04-06'
        reason:
          type: string
          description: Reason for the tax code change
          example: Standard tax code
        issuedBy:
          type: string
          description: 'Who issued the tax code change. Valid values: ''HMRC'', ''Employer'''
          example: HMRC
        week1Month1:
          type: boolean
          description: Whether the tax code is week1Month1, meaning basis non cumulative
          example: false
    EmployeeNiCategoryDto:
      type: object
      required:
        - category
        - effectiveDate
        - reason
        - issuedBy
      properties:
        category:
          type: string
          description: HMRC-published NI category letter for payroll submissions.
          example: A
          enum:
            - A
            - B
            - C
            - D
            - E
            - F
            - H
            - I
            - J
            - K
            - L
            - M
            - 'N'
            - S
            - V
            - X
            - Z
        effectiveDate:
          type: string
          format: date
          description: Date when this category becomes effective
          example: '2025-04-06'
        reason:
          type: string
          description: Reason for the category
          example: HMRC Update
        issuedBy:
          type: string
          description: 'Who issued the category. Valid values: ''HMRC'', ''Employer'''
          example: HMRC
    ValidationIssueArgument:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
  securitySchemes:
    XAuthToken:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: Access token obtained from OAuth2 client credentials flow
    XOrgId:
      type: apiKey
      in: header
      name: X-Org-Id
      description: >-
        Organisation to scope the request to. Required when the principal can
        access more than one organisation; optional for single-organisation
        principals (the authorizer resolves it automatically).

````