---
title: "Preview Employee Import"
method: POST
path: "/v1/matters/{matter_id}/employees/actions/import/preview"
tags: ["employees"]
---

# Preview Employee Import

`POST /v1/matters/{matter_id}/employees/actions/import/preview`

## Request

- Base URL: `https://api.ender.au` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ender.au/v1/matters/{matter_id}/employees/actions/import/preview`
- Auth: HTTP bearer

## Path parameters

- `matter_id` string, uuid, required

## Request body `multipart/form-data`

- PreviewEmployeeImport
  - `file` string, binary, required
  - `source_kind` 'auto' | 'xero' | 'generic_excel'
  - `mapping` string, nullable
  - `ignored_columns` string, nullable
  - `date_order` 'day_first' | 'month_first', nullable
  - `number_format` 'auto' | 'decimal_point' | 'decimal_comma', nullable
  - `skipped_rows` string, nullable
  - `cell_edits` string, nullable
  - `preview_offset` integer
  - `preview_limit` integer
  - `suggest_mappings` boolean

## Response `200`

Successful Response

- AppModulesEmployeesSchemasImportPreview
  - `ai_mapping_status` 'not_requested' | 'applied' | 'quota_exhausted', required
  - `detected_source_kind` 'xero' | 'generic_excel', required
  - `file_sha256` string, required
  - `header_signature` string, required
  - `sheet_name` string, required
  - `header_row` integer, required
  - `header_row_count` integer, required
  - `total_row_count` integer, required
  - `importable_count` integer, required
  - `created_count` integer, required
  - `updated_count` integer, required
  - `skipped_count` integer, required
  - `review_count` integer, required
  - `omitted_value_count` integer, required
  - `unchanged_count` integer, required
  - `issue_count` integer, required
  - `unresolved_column_count` integer, required
  - `issues` ImportIssue[], required
    - `code` string, required
    - `message` string, required
    - `severity` 'error' | 'warning', required
    - `row_number` integer, nullable, required
    - `field` union, required
      - 'first_name' | 'last_name' | 'date_of_birth' | 'employment_type' | 'basis_of_employment' | 'state_employed' | 'relationship_type' | 'start_date' | 'termination_date' | 'termination_type' | 'notification_date' | 'hourly_rate' | 'average_weekly_hours' | 'weekly_allowances' | 'total_outstanding_wages' | 'unpaid_wages' | 'unpaid_allowances' | 'unpaid_commission' | 'other_unpaid' | 'unpaid_wages_comments' | 'annual_leave_hours' | 'annual_leave_winding_up_cost' | 'annual_leave_comments' | 'annual_leave_loading_rate' | 'leave_loading_winding_up_cost' | 'leave_loading_comments' | 'long_service_leave_hours' | 'long_service_leave_winding_up_cost' | 'long_service_leave_comments' | 'notice_weeks' | 'notice_winding_up_cost' | 'notice_comments' | 'redundancy_weeks' | 'redundancy_winding_up_cost' | 'redundancy_comments' | 'pat_unpaid_wages' | 'pat_annual_leave' | 'pat_long_service_leave' | 'pat_notice' | 'pat_redundancy' | 'payments_after_termination_comments'
      - 'superannuation_owed'
  - `columns` ImportColumn[], required
    - `column_id` string, required
    - `source_header` string, required
    - `mapped_field` union, required
      - 'first_name' | 'last_name' | 'date_of_birth' | 'employment_type' | 'basis_of_employment' | 'state_employed' | 'relationship_type' | 'start_date' | 'termination_date' | 'termination_type' | 'notification_date' | 'hourly_rate' | 'average_weekly_hours' | 'weekly_allowances' | 'total_outstanding_wages' | 'unpaid_wages' | 'unpaid_allowances' | 'unpaid_commission' | 'other_unpaid' | 'unpaid_wages_comments' | 'annual_leave_hours' | 'annual_leave_winding_up_cost' | 'annual_leave_comments' | 'annual_leave_loading_rate' | 'leave_loading_winding_up_cost' | 'leave_loading_comments' | 'long_service_leave_hours' | 'long_service_leave_winding_up_cost' | 'long_service_leave_comments' | 'notice_weeks' | 'notice_winding_up_cost' | 'notice_comments' | 'redundancy_weeks' | 'redundancy_winding_up_cost' | 'redundancy_comments' | 'pat_unpaid_wages' | 'pat_annual_leave' | 'pat_long_service_leave' | 'pat_notice' | 'pat_redundancy' | 'payments_after_termination_comments'
      - 'superannuation_owed'
    - `deterministic_mapped_field` union, required
      - 'first_name' | 'last_name' | 'date_of_birth' | 'employment_type' | 'basis_of_employment' | 'state_employed' | 'relationship_type' | 'start_date' | 'termination_date' | 'termination_type' | 'notification_date' | 'hourly_rate' | 'average_weekly_hours' | 'weekly_allowances' | 'total_outstanding_wages' | 'unpaid_wages' | 'unpaid_allowances' | 'unpaid_commission' | 'other_unpaid' | 'unpaid_wages_comments' | 'annual_leave_hours' | 'annual_leave_winding_up_cost' | 'annual_leave_comments' | 'annual_leave_loading_rate' | 'leave_loading_winding_up_cost' | 'leave_loading_comments' | 'long_service_leave_hours' | 'long_service_leave_winding_up_cost' | 'long_service_leave_comments' | 'notice_weeks' | 'notice_winding_up_cost' | 'notice_comments' | 'redundancy_weeks' | 'redundancy_winding_up_cost' | 'redundancy_comments' | 'pat_unpaid_wages' | 'pat_annual_leave' | 'pat_long_service_leave' | 'pat_notice' | 'pat_redundancy' | 'payments_after_termination_comments'
      - 'superannuation_owed'
    - `mapping_reason` 'exact_heading' | 'recognised_alias' | 'recognised_terms' | 'previously_confirmed' | 'ai_suggestion', nullable, required
    - `sample_values` string[], required
    - `has_values` boolean, required
    - `ignored` boolean, required
  - `targets` ImportTargetDefinition[], required
    - `target_field` union, required
      - 'first_name' | 'last_name' | 'date_of_birth' | 'employment_type' | 'basis_of_employment' | 'state_employed' | 'relationship_type' | 'start_date' | 'termination_date' | 'termination_type' | 'notification_date' | 'hourly_rate' | 'average_weekly_hours' | 'weekly_allowances' | 'total_outstanding_wages' | 'unpaid_wages' | 'unpaid_allowances' | 'unpaid_commission' | 'other_unpaid' | 'unpaid_wages_comments' | 'annual_leave_hours' | 'annual_leave_winding_up_cost' | 'annual_leave_comments' | 'annual_leave_loading_rate' | 'leave_loading_winding_up_cost' | 'leave_loading_comments' | 'long_service_leave_hours' | 'long_service_leave_winding_up_cost' | 'long_service_leave_comments' | 'notice_weeks' | 'notice_winding_up_cost' | 'notice_comments' | 'redundancy_weeks' | 'redundancy_winding_up_cost' | 'redundancy_comments' | 'pat_unpaid_wages' | 'pat_annual_leave' | 'pat_long_service_leave' | 'pat_notice' | 'pat_redundancy' | 'payments_after_termination_comments'
      - 'superannuation_owed'
    - `workbook_column` string, required
    - `label` string, required
    - `group` string, required
    - `kind` 'date' | 'decimal' | 'percentage' | 'select' | 'text', required
    - `required` boolean, required
  - `preview_rows` ImportPreviewRow[], required
    - `row_number` integer, required
    - `source_values` object, required
    - `raw_values` object, required
    - `values` object, required
    - `review_issues` EmployeeReviewIssue[], required
      - `code` string, required
      - `message` string, required
      - `field` union, required
        - 'first_name' | 'last_name' | 'date_of_birth' | 'employment_type' | 'basis_of_employment' | 'state_employed' | 'relationship_type' | 'start_date' | 'termination_date' | 'termination_type' | 'notification_date' | 'hourly_rate' | 'average_weekly_hours' | 'weekly_allowances' | 'total_outstanding_wages' | 'unpaid_wages' | 'unpaid_allowances' | 'unpaid_commission' | 'other_unpaid' | 'unpaid_wages_comments' | 'annual_leave_hours' | 'annual_leave_winding_up_cost' | 'annual_leave_comments' | 'annual_leave_loading_rate' | 'leave_loading_winding_up_cost' | 'leave_loading_comments' | 'long_service_leave_hours' | 'long_service_leave_winding_up_cost' | 'long_service_leave_comments' | 'notice_weeks' | 'notice_winding_up_cost' | 'notice_comments' | 'redundancy_weeks' | 'redundancy_winding_up_cost' | 'redundancy_comments' | 'pat_unpaid_wages' | 'pat_annual_leave' | 'pat_long_service_leave' | 'pat_notice' | 'pat_redundancy' | 'payments_after_termination_comments'
        - 'superannuation_owed'
      - `kind` 'correction' | 'confirmation' | 'classification', required
      - `blocking` boolean, required
    - `outcome` 'create' | 'update' | 'skip', required
    - `omitted_fields` union[], required
      - union
        - 'first_name' | 'last_name' | 'date_of_birth' | 'employment_type' | 'basis_of_employment' | 'state_employed' | 'relationship_type' | 'start_date' | 'termination_date' | 'termination_type' | 'notification_date' | 'hourly_rate' | 'average_weekly_hours' | 'weekly_allowances' | 'total_outstanding_wages' | 'unpaid_wages' | 'unpaid_allowances' | 'unpaid_commission' | 'other_unpaid' | 'unpaid_wages_comments' | 'annual_leave_hours' | 'annual_leave_winding_up_cost' | 'annual_leave_comments' | 'annual_leave_loading_rate' | 'leave_loading_winding_up_cost' | 'leave_loading_comments' | 'long_service_leave_hours' | 'long_service_leave_winding_up_cost' | 'long_service_leave_comments' | 'notice_weeks' | 'notice_winding_up_cost' | 'notice_comments' | 'redundancy_weeks' | 'redundancy_winding_up_cost' | 'redundancy_comments' | 'pat_unpaid_wages' | 'pat_annual_leave' | 'pat_long_service_leave' | 'pat_notice' | 'pat_redundancy' | 'payments_after_termination_comments'
        - 'superannuation_owed'
    - `duplicate_fields` union[], required
      - union
        - 'first_name' | 'last_name' | 'date_of_birth' | 'employment_type' | 'basis_of_employment' | 'state_employed' | 'relationship_type' | 'start_date' | 'termination_date' | 'termination_type' | 'notification_date' | 'hourly_rate' | 'average_weekly_hours' | 'weekly_allowances' | 'total_outstanding_wages' | 'unpaid_wages' | 'unpaid_allowances' | 'unpaid_commission' | 'other_unpaid' | 'unpaid_wages_comments' | 'annual_leave_hours' | 'annual_leave_winding_up_cost' | 'annual_leave_comments' | 'annual_leave_loading_rate' | 'leave_loading_winding_up_cost' | 'leave_loading_comments' | 'long_service_leave_hours' | 'long_service_leave_winding_up_cost' | 'long_service_leave_comments' | 'notice_weeks' | 'notice_winding_up_cost' | 'notice_comments' | 'redundancy_weeks' | 'redundancy_winding_up_cost' | 'redundancy_comments' | 'pat_unpaid_wages' | 'pat_annual_leave' | 'pat_long_service_leave' | 'pat_notice' | 'pat_redundancy' | 'payments_after_termination_comments'
        - 'superannuation_owed'
    - `warning_fields` union[], required
      - union
        - 'first_name' | 'last_name' | 'date_of_birth' | 'employment_type' | 'basis_of_employment' | 'state_employed' | 'relationship_type' | 'start_date' | 'termination_date' | 'termination_type' | 'notification_date' | 'hourly_rate' | 'average_weekly_hours' | 'weekly_allowances' | 'total_outstanding_wages' | 'unpaid_wages' | 'unpaid_allowances' | 'unpaid_commission' | 'other_unpaid' | 'unpaid_wages_comments' | 'annual_leave_hours' | 'annual_leave_winding_up_cost' | 'annual_leave_comments' | 'annual_leave_loading_rate' | 'leave_loading_winding_up_cost' | 'leave_loading_comments' | 'long_service_leave_hours' | 'long_service_leave_winding_up_cost' | 'long_service_leave_comments' | 'notice_weeks' | 'notice_winding_up_cost' | 'notice_comments' | 'redundancy_weeks' | 'redundancy_winding_up_cost' | 'redundancy_comments' | 'pat_unpaid_wages' | 'pat_annual_leave' | 'pat_long_service_leave' | 'pat_notice' | 'pat_redundancy' | 'payments_after_termination_comments'
        - 'superannuation_owed'
    - `import_locked` boolean, required
    - `skip_reason` string, nullable, required
  - `preview_offset` integer, required
  - `preview_limit` integer, required
  - `has_more` boolean, required
  - `used_saved_mapping` boolean, required
  - `selected_date_order` 'day_first' | 'month_first', nullable, required
  - `selected_number_format` 'auto' | 'decimal_point' | 'decimal_comma', required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ender/apis/ender-backend.md) - [All operations](https://skmtc.dev/ender/apis/ender-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/ender/apis/ender-backend/revisions/bf4373130521?raw)
