---
swagger: "2.0"
info:
  version: 2.0.0
  description: Welcome to the ACC Claim APIs. These provide the ability for the Provider to see create or check whether a claim has been registered with ACC and what diagnosis details have been registered to the injury claim. If the claim is registered, the Provider will be able to provide treatment and invoice ACC for their services. Each API has a specific purpose; discussion with your user base regards whjere the value lies for them is encouraged.
  title: ACC Claims API
  termsOfService: https://developer.acc.co.nz/terms-conditions
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
host: apiservicesnpe.acc.co.nz
basePath: /api/v2
tags:
- name: Claims
  description: Claims Controller
- name: Query Claims
  description: Query Claims Controller
schemes:
  - https
securityDefinitions:
  apiKeyHeader:
    type: apiKey
    name: apikey
    in: header
security:
  - apiKeyHeader: []
paths:
  /claims:
    get:
      tags:
      - Query Claims
      summary: Get details of the specified Claim by claimId.
      description: '<p>One of a series of APIs that allows software vendors to give the ability for the Provider to see whether a claim has been accepted & what are the latest diagnoses if other Providers have been referred to.This specific API returns the status of a selected claim submitted by the organisation sending the query.A valid, authorised query from the following endpoint returns complete details of the selected claim request, in its submitted status whether Failed or Receipted:<br>Results generally include, for each claim retrieved:<br>• ACC45 number or Eos number<br>• claim number<br>• cover status<br>• injury details*<br>• partial NHI number*<br>• accident date*<br>• diagnoses*, including for each diagnosis:<br>– code type and code, with the SNOMED code if available<br>– diagnosis action, description, and side<br>– the registration status (see Table 4 for possible values)<br>– any error codes<br>• the result code (0 or 1) for each diagnosis.<br>*If the claim is sensitive, or the patient is working for an accredited employer, the starred details are not available.</p>'
      operationId: "claims/claimid"
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: claimId
        in: query
        description: claimId
        required: true
        type: string
      responses:
        200:
          description: Success
          schema:
            $ref: '#/definitions/ClaimResponse'
        400:
          description: 'Bad Request: invalid data'
          schema:
            $ref: '#/definitions/ApiException'
        401:
          description: 'Unauthorized: authentication error'
          schema:
            $ref: '#/definitions/ApiException'
        403:
          description: 'Forbidden: authorization error'
          schema:
            $ref: '#/definitions/ApiException'
        404:
          description: Not Found
          schema:
            $ref: '#/definitions/ApiException'
        500:
          description: Internal Server Error
          schema:
            $ref: '#/definitions/ApiException'
    post:
      tags:
      - Claims
      summary: Create a new Claim.
      description: '<p>Allows software vendors to create a new claim with ACC. Registered providers (e.g. General Practitioner / Physio) can lodge claims on behalf of their patient if they think they have an injury ACC covers. It’s best they complete the claim (and supporting material) with their patient during their first visit. To learn more about the overall process check out <a href name="https://www.acc.co.nz/for-providers/lodging-claims/lodging-a-claim-for-a-patient/">Learn More</a> </p>'
      operationId: claims/create
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/Claim'
      responses:
        200:
          description: OK
          schema:
            $ref: '#/definitions/ClaimsCreatedResponse'
        202:
          description: Accepted
          schema:
            $ref: '#/definitions/ClaimsCreatedResponse'
        400:
          description: 'Bad Request: invalid data'
          schema:
            $ref: '#/definitions/ApiException'
        401:
          description: 'Unauthorized: authentication error'
          schema:
            $ref: '#/definitions/ApiException'
        403:
          description: 'Forbidden: authorization error'
          schema:
            $ref: '#/definitions/ApiException'
        404:
          description: Not Found
          schema:
            $ref: '#/definitions/ApiException'
        500:
          description: Internal Server Error
          schema:
            $ref: '#/definitions/ApiException'
  /claims/status:
    get:
      tags:
      - Query Claims
      summary: Get ACC status of the specified Claim.
      description: '<p>One of a series of APIs that allows software vendors to give the ability for the Provider to see whether a claim has been accepted & what are the latest diagnoses if other Providers have been referred to.<br>This specific API returns the registration status for a specific claim submitted by the organisation sending the query.Relevant status values are ‘Receipted’ and ‘Failed’.</p>'
      operationId: "claims/claimid/status"
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: claimNumber
        in: query
        description: claimNumber
        required: true
        type: string
      - name: vendorId
        in: query
        description: vendorId
        required: true
        type: string
      - name: providerId
        in: query
        description: providerId
        required: true
        type: string
      responses:
        200:
          description: Success
          schema:
            $ref: '#/definitions/ClaimStatusResponseList'
        400:
          description: 'Bad Request: invalid data'
          schema:
            $ref: '#/definitions/ApiException'
        401:
          description: 'Unauthorized: authentication error'
          schema:
            $ref: '#/definitions/ApiException'
        403:
          description: 'Forbidden: authorization error'
          schema:
            $ref: '#/definitions/ApiException'
        404:
          description: Not Found
          schema:
            $ref: '#/definitions/ApiException'
        500:
          description: Internal Server Error
          schema:
            $ref: '#/definitions/ApiException'
    post:
      tags:
      - Query Claims
      summary: Get ACC status for a list of Claims.
      description: '<p>One of a series of APIs that allows software vendors to give the ability for the Provider to see whether a claim has been accepted & what are the latest diagnoses if other Providers have been referred to.<br>This specific API returns the registration status for a list of claims submitted by the organisation sending the query.Relevant status values are ‘Receipted’ and ‘Failed’.</p>'
      operationId: claims/status
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - in: body
        name: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/ClaimItem'
      - name: vendorId
        in: query
        description: vendorId
        required: true
        type: string
      - name: providerId
        in: query
        description: providerId
        required: true
        type: string
      responses:
        200:
          description: Success
          schema:
            $ref: '#/definitions/ClaimStatusResponseList'
        400:
          description: 'Bad Request: invalid data'
          schema:
            $ref: '#/definitions/ApiException'
        401:
          description: 'Unauthorized: authentication error'
          schema:
            $ref: '#/definitions/ApiException'
        403:
          description: 'Forbidden: authorization error'
          schema:
            $ref: '#/definitions/ApiException'
        404:
          description: Not Found
          schema:
            $ref: '#/definitions/ApiException'
        500:
          description: Internal Server Error
          schema:
            $ref: '#/definitions/ApiException'
  /claims/status/filter:
    get:
      tags:
      - Query Claims
      summary: Get a list of claim status by filtering for specific values.
      description: '<p>One of a series of APIs that allows software vendors to give the ability for the Provider to see whether a claim has been accepted & what are the latest diagnoses if other Providers have been referred to.This specific API returns the status of a selected claim submitted by the organisation sending the query.A valid, authorised query from the following endpoint returns filtered details of the selected claim request, in its submitted status whether Failed or Receipted:<br>Results generally include, for each claim retrieved:<br>• ACC45 number or Eos number<br>• claim number<br>• cover status<br>• injury details*<br>• partial NHI number*<br>• accident date*<br>• diagnoses*, including for each diagnosis:<br>– code type and code, with the SNOMED code if available<br>– diagnosis action, description, and side<br>– the registration status (see Table 4 for possible values)<br>– any error codes<br>• the result code (0 or 1) for each diagnosis.<br>*If the claim is sensitive, or the patient is working for an accredited employer, the starred details are not available.</p>'
      operationId: "claims/status/filter"
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: vendorId
        in: query
        description: vendorId
        required: true
        type: string
      - name: providerId
        in: query
        description: providerId
        required: true
        type: string
      - name: nhi
        in: query
        description: nhi
        required: true
        type: string
      - name: dateOfBirth
        in: query
        description: dateOfBirth
        required: true
        type: string
      responses:
        200:
          description: Success
          schema:
            $ref: '#/definitions/ClaimStatusResponseList'
        400:
          description: 'Bad Request: invalid data'
          schema:
            $ref: '#/definitions/ApiException'
        401:
          description: 'Unauthorized: authentication error'
          schema:
            $ref: '#/definitions/ApiException'
        403:
          description: 'Forbidden: authorization error'
          schema:
            $ref: '#/definitions/ApiException'
        404:
          description: Not Found
          schema:
            $ref: '#/definitions/ApiException'
        500:
          description: Internal Server Error
          schema:
            $ref: '#/definitions/ApiException'
  /claims/summary/patient:
    get:
      tags:
      - Query Claims
      summary: Get a list of Claims for an organisation.
      description: '<p>One of a series of APIs that allows software vendors to give the ability for the Provider to see whether a claim has been accepted & what are the latest diagnoses if other Providers have been referred to.This specific API returns athe submission status of claims<br>• for a given patient<br>• submitted by the organisation sending the query.<br>Results include:<br>• claim ID, the unique identifier for this submitted claim<br>• claim number, the ACC45 number<br>• the date the claim request was submitted<br>• the submission status, that is Failed or Receipted<br>• patient’s first name and family name<br>• the names of the facility and the treatment provider.</p>'
      operationId: claims/status/patient
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: firstName
        in: query
        description: firstName
        required: true
        type: string
      - name: surname
        in: query
        description: surname
        required: true
        type: string
      - name: page
        in: query
        description: page
        required: false
        type: integer
        default: 1
        format: int32
      - name: pageSize
        in: query
        description: pageSize
        required: false
        type: integer
        default: 25
        format: int32
      responses:
        200:
          description: Success
          schema:
            $ref: '#/definitions/QueryClaimSummaryResponseList'
        400:
          description: 'Bad Request: invalid data'
          schema:
            $ref: '#/definitions/ApiException'
        401:
          description: 'Unauthorized: authentication error'
          schema:
            $ref: '#/definitions/ApiException'
        403:
          description: 'Forbidden: authorization error'
          schema:
            $ref: '#/definitions/ApiException'
        404:
          description: Not Found
          schema:
            $ref: '#/definitions/ApiException'
        500:
          description: Internal Server Error
          schema:
            $ref: '#/definitions/ApiException'
  /claims/summary/status:
    get:
      tags:
      - Query Claims
      summary: Get a list of Claims for an organisation.
      description: '<p>One of a series of APIs that allows software vendors to give the ability for the Provider to see whether a claim has been accepted & what are the latest diagnoses if other Providers have been referred to.This specific API returns the status of a selected claim submitted by the organisation sending the query.<br>Results include:<br>• claim ID, the unique identifier for this submitted claim<br>• claim number, the ACC45 number<br>• the date the claim request was submitted<br>• the submission status, that is Failed or Receipted<br>• patient’s first name and family name<br>• the names of the facility and the treatment provider.</p>'
      operationId: "claims/organisation"
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: status
        in: query
        description: status
        required: true
        type: string
        enum:
        - FAILED
        - RECEIPTED
      - name: startDate
        in: query
        description: startDate
        required: false
        type: string
      - name: endDate
        in: query
        description: endDate
        required: false
        type: string
      - name: page
        in: query
        description: page
        required: false
        type: integer
        default: 1
        format: int32
      - name: pageSize
        in: query
        description: pageSize
        required: false
        type: integer
        default: 25
        format: int32
      responses:
        200:
          description: Success
          schema:
            $ref: '#/definitions/QueryClaimSummaryResponseList'
        400:
          description: 'Bad Request: invalid data'
          schema:
            $ref: '#/definitions/ApiException'
        401:
          description: 'Unauthorized: authentication error'
          schema:
            $ref: '#/definitions/ApiException'
        403:
          description: 'Forbidden: authorization error'
          schema:
            $ref: '#/definitions/ApiException'
        404:
          description: Not Found
          schema:
            $ref: '#/definitions/ApiException'
        500:
          description: Internal Server Error
          schema:
            $ref: '#/definitions/ApiException'
  /claims/summary/{claimNumber}:
    get:
      tags:
      - Query Claims
      summary: Get a list of Claims for an organisation.
      description: '<p>One of a series of APIs that allows software vendors to give the ability for the Provider to see whether a claim has been accepted & what are the latest diagnoses if other Providers have been referred to.This specific API returns the status of claims with a given claim number, submitted by the organisation sending the query.<br>Results include:<br>• claim ID, the unique identifier for this submitted claim<br>• claim number, the ACC45 number<br>• the date the claim request was submitted<br>• the submission status, that is Failed or Receipted<br>• patient’s first name and family name<br>• the names of the facility and the treatment provider.</p>'
      operationId: "claims/claimnumber"
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: claimNumber
        in: path
        description: claimNumber
        required: true
        type: string
      responses:
        200:
          description: Success
          schema:
            $ref: '#/definitions/QueryClaimSummaryResponseList'
        400:
          description: 'Bad Request: invalid data'
          schema:
            $ref: '#/definitions/ApiException'
        401:
          description: 'Unauthorized: authentication error'
          schema:
            $ref: '#/definitions/ApiException'
        403:
          description: 'Forbidden: authorization error'
          schema:
            $ref: '#/definitions/ApiException'
        404:
          description: Not Found
          schema:
            $ref: '#/definitions/ApiException'
        500:
          description: Internal Server Error
          schema:
            $ref: '#/definitions/ApiException'
  /claims/icp/{claimNumber}:
    get:
      description: Get ICP Claim qualified by claimNumber, birthDate, vendorId, and AccProviderId
      operationId: get-icp-claim
      summary: getIcpClaim
      tags:
        - ICP
      parameters:
        - name: claimNumber
          in: path
          description: To validate the genuine request vendorId is mandatory for ACC to check against
          required: true
          type: string
        - name: providerId
          in: query
          description: This represents the individual initiating the query
          required: true
          type: string
        - name: vendorId
          in: query
          description: This represents the company/organisation contracted as an ICP supplier
          required: true
          type: string
        - name: dateOfBirth
          in: query
          description: Date of the patient's birth
          required: true
          type: string
        - name: ACC-CorrelationId
          in: header
          description: Unique UUID to track the incoming requests.
          type: string
          format: uuid
          required: false
      responses:
        200:
          description: Successful operation
          schema:
            $ref: '#/definitions/IcpClaim'
        default:
          description: Represents different errors when calling the api
          schema:
            $ref: '#/definitions/ApiException'
      produces:
        - application/json            
definitions:
  Address:
    type: object
    required:
      - city
      - country
      - line1
      - postCode
      - type
    properties:
      type:
        type: string
        enum:
          - Home
          - Postal
      line1:
        type: string
      line2:
        type: string
      suburb:
        type: string
        description: Supply suburb if different to city
      city:
        type: string
      postCode:
        type: string
      country:
        type: string
  ApiError:
    type: object
    properties:
      field:
        type: string
      message:
        type: string
  ApiException:
    type: object
    properties:
      errors:
        type: array
        items:
          $ref: '#/definitions/ApiError'
  Claim:
    type: object
    required:
      - declaration
      - diagnosis
      - employment
      - injury
      - patient
      - pmsSoftwareName
      - pmsSoftwareVersion
      - provider
      - vendor
    properties:
      pmsSoftwareName:
        type: string
      pmsSoftwareVersion:
        type: string
      claimNumber:
        type: string
        example: AB12345
        description: 'The ACC45 claim number, which must be unique. Format [A-Za-z][A-Za-z0-9][0-9]{5}.'
      vendor:
        $ref: '#/definitions/Vendor'
      provider:
        $ref: '#/definitions/Provider'
      patient:
        $ref: '#/definitions/Patient'
      employment:
        $ref: '#/definitions/Employment'
      injury:
        $ref: '#/definitions/Injury'
      diagnosis:
        type: array
        description: Up to 10 diagnoses can be included.
        items:
          $ref: '#/definitions/Diagnosis'
      workCapacity:
        $ref: '#/definitions/WorkCapacity'
      referrals:
        type: array
        description: Up to 5 referrals may be included.
        items:
          $ref: '#/definitions/Referral'
      declaration:
        $ref: '#/definitions/Declaration'
    description: The entire payload for create/update/get about a Claim
  ClaimItem:
    type: object
    properties:
      claim:
        type: string
        description: claimId
  ClaimResponse:
    type: object
    properties:
      claim:
        type: array
        items:
          $ref: '#/definitions/Claim'
      generatedAt:
        type: string
        format: date
      message:
        type: string
      page:
        type: integer
        format: int32
      pageSize:
        type: integer
        format: int32
      totalPages:
        type: integer
        format: int32
  ClaimStatusDiagnosis:
    type: object
    required:
      - diagnosisCode
      - diagnosisCodeType
      - diagnosisDescription
      - diagnosisSide
    properties:
      diagnosisAction:
        type: string
        description: Required for medical certificates if modifying diagnosis.
        enum:
          - add
          - modify
          - delete
      injuryStatus:
        type: string
      resultError:
        type: string
      resultErrorCode:
        type: string
      snomedCode:
        type: string
      snomedCodeDescription:
        type: string
      diagnosisCodeType:
        type: string
        description: See codetables for list of valid code types
      diagnosisCode:
        type: string
        description: See codetables for list of valid codes
      diagnosisDescription:
        type: string
      diagnosisSide:
        type: string
        enum:
          - left
          - right
          - notApplicable
  ClaimStatusResponse:
    type: object
    properties:
      acc45Number:
        type: string
      accidentDate:
        type: string
        format: date
      claimNumber:
        type: string
      coverStatus:
        type: string
      diagnoses:
        type: array
        items:
          $ref: '#/definitions/ClaimStatusDiagnosis'
      injuryResolved:
        type: string
      injuryResolvedFromDate:
        type: string
        format: date
      injuryResolvedToDate:
        type: string
        format: date
      partialNHINumber:
        type: string
  ClaimStatusResponseList:
    type: object
    properties:
      claimStatusList:
        type: array
        items:
          $ref: '#/definitions/ClaimStatusResponse'
      generatedAt:
        type: string
        format: date
      message:
        type: string
      page:
        type: integer
        format: int32
      pageSize:
        type: integer
        format: int32
      totalPages:
        type: integer
        format: int32
  ClaimsCreatedResponse:
    type: object
    properties:
      claim:
        $ref: '#/definitions/Claim'
      status:
        type: string
      createdAt:
        type: string
        format: date
      lastUpdate:
        type: string
        format: date
  Contact:
    type: object
    properties:
      emailAddress:
        type: string
        description: 'If the patient has an email address, enter it (must be in valid email address format).'
      mobilePhone:
        type: string
        example: '0211234567'
        description: 'If the patient has a mobile number, enter it. Include the network code but no spaces or parentheses.'
      homePhone:
        type: string
        example: '041234567'
        description: 'Include the area code, but no spaces or parentheses.'
      workPhone:
        type: string
        example: '041234567'
        description: 'Include the area code, but no spaces or parentheses.'
  DateRange:
    type: object
    required:
      - fromDate
      - toDate
    properties:
      fromDate:
        type: string
        format: date
        description: Date ranges must have no gaps and no overlaps.
      toDate:
        type: string
        format: date
        description: Date ranges must have no gaps and no overlaps.
    description: A valid date is required for each incapacity type selected.
  Declaration:
    type: object
    required:
      - providerDeclaration
    properties:
      providerDeclaration:
        type: string
        format: date
        description: The date the form was submitted.
  Diagnosis:
    type: object
    required:
      - diagnosisCode
      - diagnosisCodeType
      - diagnosisDescription
      - diagnosisSide
    properties:
      diagnosisCodeType:
        type: string
        description: See the DiagnosisCodingSystem code tables for valid values.
      diagnosisCode:
        type: string
        description: 'Alphanumeric, can include ''.'''
      diagnosisDescription:
        type: string
      diagnosisSide:
        type: string
        enum:
          - left
          - right
          - notApplicable
          - bilateral
  Employer:
    type: object
    properties:
      employerName:
        type: string
        description: 'Required when inPaidEmployment is true, otherwise optional.'
      address:
        $ref: '#/definitions/Address'
    description: Only required if paid employment = true.
  Employment:
    type: object
    required:
      - inPaidEmployment
    properties:
      inPaidEmployment:
        type: string
        description: True if patient is in paid employment.
        enum:
          - 'True'
          - 'False'
      employmentStatusCode:
        type: string
        description: Only required when the patient is in paid employment. See the EmploymentStatus code table for valid values.
      otherEmployment:
        type: string
        description: Only required when employment status is 5 (other). Describe the employment.
      workTypeCode:
        type: string
        description: Only required when inPaidEmployment is true. See the WorkType code table for valid values.
      employer:
        $ref: '#/definitions/Employer'
  Incapacity:
    type: object
    required:
      - incapacityDateRange
      - incapacityType
    properties:
      incapacityType:
        type: string
        description: One type required when canResumeNormalWork is false (both types can be selected); otherwise not permitted.
        enum:
          - Fitforselectedwork
          - Fullyunfitforwork
      incapacityDateRange:
        $ref: '#/definitions/DateRange'
      selectedAlternativeWork:
        $ref: '#/definitions/SelectedAlternativeWork'
  Injury:
    type: object
    required:
      - accidentDate
      - accidentLocationCode
      - accidentSceneCode
      - causeOfAccident
      - involvesVehicle
      - sportingInjury
      - workInjury
    properties:
      accidentDate:
        type: string
        format: date
        description: ISO8601 complete date format YYYY-MM-DD.
      accidentLocationCode:
        type: string
        description: See GeoLocation codetable for valid codes.
      accidentSceneCode:
        type: string
        description: See Scene codetable for valid codes.
      causeOfAccident:
        type: string
        example: fell off ladder
        description: For the specific event.
      involvesVehicle:
        type: string
        description: True if accident involved a vehicle.
        enum:
          - 'True'
          - 'False'
      medicalTreatmentInjury:
        type: string
        description: True for an injury received during treatment by a registered health professional.
        enum:
          - 'True'
          - 'False'
      workInjury:
        type: string
        description: True for an injury related to work.
        enum:
          - 'True'
          - 'False'
      sportingInjury:
        type: string
        description: True for an accident related to playing sport.
        enum:
          - 'True'
          - 'False'
      sportNameCode:
        type: string
        description: Only required if sportingInjury=true. See sport codetable for valid codes.
      gradualProcessInjury:
        type: string
        enum:
          - 'True'
          - 'False'
      admittedToHospital:
        type: string
        description: Only DHBs can set this to true.
        enum:
          - 'True'
          - 'False'
      injuryComments:
        type: string
      assistanceRequired:
        type: string
        description: Only DHBs can set this to true.
        enum:
          - 'True'
          - 'False'
      accContactProvider:
        type: string
        description: See the rehabilitation code table for valid values.
  Patient:
    type: object
    required:
      - address
      - details
    properties:
      details:
        $ref: '#/definitions/PatientDetails'
      occupationCode:
        type: string
        description: See the Occupation code table for valid values.
      contact:
        $ref: '#/definitions/Contact'
      address:
        $ref: '#/definitions/Address'
  PatientDetails:
    type: object
    required:
      - dateOfBirth
      - ethnicityCode
      - firstName
      - gender
      - surname
    properties:
      nhi:
        type: string
        description: National Health Index number.
      firstName:
        type: string
      middleName:
        type: string
      surname:
        type: string
      dateOfBirth:
        type: string
        format: date
        description: Mandatory for Claims. ISO8601 complete date format YYYY-MM-DD.
      gender:
        type: string
        enum:
          - M
          - F
          - U
          - O
      ethnicityCode:
        type: string
        description: See the Ethnicity code table for valid values.
      otherEthnicity:
        type: string
        description: Only required when ethnicityCode is 54.
  PhysicalRestrictions:
    type: object
    properties:
      restriction:
        type: string
        enum:
          - Lifting
          - Posture
          - Heavy Physical
          - Repetition
          - Vibration
          - Temperature
          - Driving
          - Prolonged Sitting
          - Prolonged Walking
          - Prolonged Standing
          - Other
  Provider:
    type: object
    required:
      - address
      - details
    properties:
      details:
        $ref: '#/definitions/ProviderDetails'
      address:
        $ref: '#/definitions/Address'
  ProviderDetails:
    type: object
    required:
      - firstName
      - providerId
      - providerTypeCode
      - surname
    properties:
      providerId:
        type: string
        description: ACC provider ID
      providerTypeCode:
        type: string
        description: See ProviderType codetable for list of valid codes
      firstName:
        type: string
      middleName:
        type: string
      surname:
        type: string
  QueryClaimSummaryResponse:
    type: object
    properties:
      claimNumber:
        type: string
      claimStatus:
        type: string
      dateCreated:
        type: string
        format: date
      facilityName:
        type: string
      id:
        type: string
      idType:
        type: string
      invalidReason:
        type: string
      invalidReasonDescription:
        type: string
      lockId:
        type: string
      organisation:
        type: string
      organisationUser:
        type: string
      patientName:
        type: string
      pmsName:
        type: string
      submissionChannel:
        type: string
      treatmentProvider:
        type: string
    description: Response after querying claim summary list
  QueryClaimSummaryResponseList:
    type: object
    properties:
      claimSummaryList:
        type: array
        items:
          $ref: '#/definitions/QueryClaimSummaryResponse'
      generatedAt:
        type: string
        format: date
      message:
        type: string
      page:
        type: integer
        format: int32
      pageSize:
        type: integer
        format: int32
      totalPages:
        type: integer
        format: int32
  Referral:
    type: object
    required:
      - providerTypeCode
    properties:
      providerTypeCode:
        type: string
        description: 'See ProviderType codetable for list of valid codes. Example: referral for Physiotherapy = 81'
      referralReason:
        type: string
  SelectedAlternativeWork:
    type: object
    properties:
      alternativeWorkTypeCode:
        type: string
        description: Only required when Fitforselectedwork is selected. See the WorkType code table for valid values.
      physicalRestrictions:
        type: array
        description: 'When Fitforselectedwork is selected, you may choose one or more options from this list.'
        items:
          $ref: '#/definitions/PhysicalRestrictions'
      restrictedHoursPerDay:
        type: integer
        format: int32
        description: 'When Fitforselectedwork is selected, you can choose 1-24.'
      restrictionComment:
        type: string
        description: 'When Fitforselectedwork is selected, you may add more details here.'
    description: Required when incapacityType=Fitforselectedwork.
  Vendor:
    type: object
    required:
      - hpiOrganisationNumber
      - practiceName
    properties:
      practiceName:
        type: string
      hpiOrganisationNumber:
        type: string
        description: The ACC vendor ID (doesn’t have to be HPI format)
      hpiFacilityNumber:
        type: string
        description: The ACC facility number (doesn’t have to be HPI format)
  WorkCapacity:
    type: object
    properties:
      canResumeNormalWork:
        type: string
        description: Only for a patient who is employed or self-employed.
        enum:
          - 'True'
          - 'False'
      incapacity:
        type: array
        description: Only required when canResumeNormalWork is false.
        items:
          $ref: '#/definitions/Incapacity'
      returnToNormalWorkDate:
        type: string
        format: date
        description: Optional when canResumeNormalWork is false.
  MedicalIncapacity:
    type: object
    properties:
      incapacityType:
        type: string
        enum:
          - FULLY_UNFIT
          - FIT_FOR_SELECTED_WORK
      source:
        type: string
      providerHpiNumber:
        type: string
      incapacityDateRange:
        $ref: "#/definitions/MedicalIncapacityIncapacityDateRange"
      selectedAlternativeWork:
        $ref: "#/definitions/MedicalIncapacitySelectedAlternativeWork"
  IcpClaimLatestApprovedIncapacity:
    type: object
    properties:
      toDate:
        type: string
        format: date
      type:
        type: string
  ServiceReceived:
    type: object
    properties:
      serviceCode:
        type: string
      serviceDate:
        type: string
        format: date
      serviceDescription:
        type: string
      qtyValue:
        type: string
      qtyUnits:
        type: string
  IcpClaim:
    type: object
    properties:
      acc45Number:
        type: string
      claimNumber:
        type: string
      coverStatus:
        type: string
      accidentDescription:
        type: string
      accidentDate:
        type: string
        format: date
      occurredAtWork:
        type: boolean
      patientIndicators:
        $ref: "#/definitions/IcpClaimPatientIndicators"
      diagnoses:
        type: array
        items:
          $ref: "#/definitions/Diagnosis"
      weeklyCompensationDetails:
        $ref: "#/definitions/IcpClaimWeeklyCompensationDetails"
      medicalIncapacity:
        type: array
        items:
          $ref: "#/definitions/MedicalIncapacity"
      latestApprovedIncapacity:
        $ref: "#/definitions/IcpClaimLatestApprovedIncapacity"
      servicesReceived:
        type: array
        items:
          $ref: "#/definitions/ServiceReceived"
  IcpClaimPatientIndicators:
    type: object
    properties:
      careIndicator:
        type: boolean
      vulnerableSituation:
        type: boolean
  IcpClaimWeeklyCompensationDetails:
    type: object
    properties:
      daysPaid:
        type: integer
      dateOfFirstEntitlement:
        type: string
        format: date
      latestPaymentDate:
        type: string
        format: date
  MedicalIncapacityIncapacityDateRange:
    type: object
    properties:
      fromDate:
        type: string
        format: date
      toDate:
        type: string
        format: date
  MedicalIncapacitySelectedAlternativeWork:
    type: object
    properties:
      restrictedHoursPerDay:
        type: number
        format: double
      restrictedDaysPerWeek:
        type: integer
      restrictionComment:
        type: string
      physicalRestrictions:
        type: array
        items:
          type: string
          enum:
            - LIFTING
            - POSTURE
            - HEAVY_PHYSICAL
            - REPETITION
            - VIBRATION
            - TEMPERATURE
            - DRIVING
            - PROLONGED_SITTING
            - PROLONGED_WALKING
            - PROLONGED_STANDING
            - OTHER