Laka claims API

Claims API

OpenAPI Specification

laka-claims-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Laka accounts claims API
  description: Laka API (next)
  version: '2024-09-01'
  contact: {}
servers:
- url: https://api.uat.laka.co
  description: UAT
- url: https://api-{region}.app.laka.co
  description: Production
  variables:
    region:
      enum:
      - nl
      - fr
      - gb
      default: gb
tags:
- name: claims
  description: Claims API
paths:
  /v3/claims:
    post:
      operationId: ClaimsController_create
      summary: Create Claim
      description: Create a new claim against a policy.
      parameters:
      - name: x-api-region
        in: header
        style: simple
        description: The API region of your interaction. In most cases, this will match the customer region
        schema:
          type: string
      - name: x-api-language
        in: header
        description: Where applicable, the language for any textual content we may send to the customer.
        style: simple
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClaim'
      responses:
        '201':
          description: The created record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Claim'
      tags:
      - claims
      security:
      - x-api-key: []
    get:
      operationId: ClaimsController_findAll
      summary: Get All Claims
      description: Get all the claims you are permitted to view.
      parameters:
      - name: x-api-region
        in: header
        style: simple
        description: The API region of your interaction. In most cases, this will match the customer region
        schema:
          type: string
      - name: x-api-language
        in: header
        description: Where applicable, the language for any textual content we may send to the customer.
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: All Valid Claims
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClaimsResponse'
      tags:
      - claims
      security:
      - x-api-key: []
  /v3/claims/{claimId}/attachments:
    post:
      operationId: ClaimsController_createClaimAttachmentUploadLink
      summary: Create Claim Attachment Upload Link
      description: Create an upload link for a claim attachment. The response will contain a pre-signed URL where you are able to PUT the binary file data.
      parameters:
      - name: claimId
        required: true
        in: path
        schema:
          type: string
      - name: x-api-region
        in: header
        style: simple
        description: The API region of your interaction. In most cases, this will match the customer region
        schema:
          type: string
      - name: x-api-language
        in: header
        description: Where applicable, the language for any textual content we may send to the customer.
        style: simple
        schema:
          type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateClaimAttachmentUploadLinkResponse'
      tags:
      - claims
      security:
      - x-api-key: []
  /v3/claims/{claimId}/attachments/{attachmentId}:
    post:
      operationId: ClaimsController_createClaimAttachment
      summary: Confirm Claim Attachment Upload
      description: Confirm the upload of a claim attachment. It should be called after the file has been uploaded to the URL provided by the `createClaimAttachmentUploadLink` endpoint.
      parameters:
      - name: claimId
        required: true
        in: path
        schema:
          type: string
      - name: attachmentId
        required: true
        in: path
        schema:
          type: string
      - name: x-api-region
        in: header
        style: simple
        description: The API region of your interaction. In most cases, this will match the customer region
        schema:
          type: string
      - name: x-api-language
        in: header
        description: Where applicable, the language for any textual content we may send to the customer.
        style: simple
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClaimAttachmentRequest'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyMessage'
      tags:
      - claims
      security:
      - x-api-key: []
  /v3/claims/{claimId}/attachments/{attachmentId}/status:
    post:
      operationId: ClaimsController_updateClaimAttachmentStatus
      summary: Update Claim Attachment Status
      description: Update the status of a claim attachment.
      parameters:
      - name: claimId
        required: true
        in: path
        schema:
          type: string
      - name: attachmentId
        required: true
        in: path
        schema:
          type: string
      - name: x-api-region
        in: header
        style: simple
        description: The API region of your interaction. In most cases, this will match the customer region
        schema:
          type: string
      - name: x-api-language
        in: header
        description: Where applicable, the language for any textual content we may send to the customer.
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Updated attachment status
      tags:
      - claims
      security:
      - x-api-key: []
  /v3/claims/{claimId}/notes:
    post:
      operationId: ClaimsController_addNoteToClaim
      summary: Add Internal Note to Claim
      description: Creates an internal note that appears on the claim.
      parameters:
      - name: claimId
        required: true
        in: path
        schema:
          type: string
      - name: x-api-region
        in: header
        style: simple
        description: The API region of your interaction. In most cases, this will match the customer region
        schema:
          type: string
      - name: x-api-language
        in: header
        description: Where applicable, the language for any textual content we may send to the customer.
        style: simple
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClaimNoteRequest'
      responses:
        '201':
          description: The created note
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateClaimNoteResponse'
      tags:
      - claims
      security:
      - x-api-key: []
  /v3/claims/{claimId}/submit:
    post:
      operationId: ClaimsController_submitClaim
      summary: Submit Claim
      description: Submit a claim for processing. It should be called after all necessary information has been provided.
      parameters:
      - name: claimId
        required: true
        in: path
        schema:
          type: string
      - name: x-api-region
        in: header
        style: simple
        description: The API region of your interaction. In most cases, this will match the customer region
        schema:
          type: string
      - name: x-api-language
        in: header
        description: Where applicable, the language for any textual content we may send to the customer.
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The submitted claim
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitClaimResponse'
      tags:
      - claims
      security:
      - x-api-key: []
  /v3/claims/{id}:
    get:
      operationId: ClaimsController_findOne
      summary: Get Claim by ID
      description: Get a single claim by UUID.
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: x-api-region
        in: header
        style: simple
        description: The API region of your interaction. In most cases, this will match the customer region
        schema:
          type: string
      - name: x-api-language
        in: header
        description: Where applicable, the language for any textual content we may send to the customer.
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The found record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Claim'
      tags:
      - claims
      security:
      - x-api-key: []
    patch:
      operationId: ClaimsController_update
      summary: Update Claim
      description: Update the details of an existing claim.
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: x-api-region
        in: header
        style: simple
        description: The API region of your interaction. In most cases, this will match the customer region
        schema:
          type: string
      - name: x-api-language
        in: header
        description: Where applicable, the language for any textual content we may send to the customer.
        style: simple
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClaim'
      responses:
        '200':
          description: The updated record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateClaimResponse'
      tags:
      - claims
      security:
      - x-api-key: []
components:
  schemas:
    ClaimsResponse:
      type: object
      properties:
        rows:
          description: List of items in the response
          type: array
          items:
            $ref: '#/components/schemas/Claim'
        count:
          type: number
          description: Total count of items
          example: 42
      required:
      - rows
      - count
    CreateClaimAttachmentRequest:
      type: object
      properties:
        fileName:
          type: string
        mimeType:
          type: string
        url:
          type: string
      required:
      - fileName
      - mimeType
      - url
    SubmitClaimResponse:
      type: object
      properties:
        id:
          type: string
        claimStatus:
          type: string
        claimReference:
          type: string
      required:
      - id
      - claimStatus
      - claimReference
    Address:
      type: object
      properties:
        houseNo:
          type: string
          description: The house number of the address
          example: '123'
        streetAddress:
          type: string
          description: The street address - may include the house number in some locales
          example: 123 Main St
        postalTown:
          type: string
          description: The postal town or city
          example: London
        postalCode:
          type: string
          description: The postal code
          example: SW1A 2AB
        locality:
          type: string
          description: The locality or district
          example: Westminster
        region:
          type: string
          description: The region or state
          example: Greater London
        country:
          type: string
          description: The country. Accepts an ISO 3166-1 alpha-2 code (e.g. 'UK') or full country name (e.g. 'United Kingdom').
          example: United Kingdom
        id:
          type: string
    CreateClaimAttachmentUploadLinkResponse:
      type: object
      properties:
        key:
          type: string
          description: The upload key for the attachment.  This is an internal identifier but you may use it to reference the attachment in your application.
          example: claims-service/attachments/12345.zip
        url:
          type: string
          description: The URL to upload the attachment to.  You can PUT the file data directly to this URL. Please call the confirm endpoint afterwards to confirm the upload.
          example: https://example.com/upload/attachment
        attachmentId:
          type: string
          description: The identifier for the attachment, used to confirm the upload
          example: 123e4567-e89b-12d3-a456-426614174000
      required:
      - key
      - url
      - attachmentId
    CreateClaimNoteResponse:
      type: object
      properties:
        userId:
          type: string
          description: Unique identifier (UUID v4 format)
          example: 123e4567-e89b-12d3-a456-426614174000
          format: uuid
          externalDocs:
            url: https://docs.laka.co/docs/glossary
        id:
          type: string
        claimId:
          type: string
        note:
          type: string
        createdAt:
          type: string
        updatedAt:
          type: string
      required:
      - id
      - claimId
      - note
      - createdAt
      - updatedAt
    Claim:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier (UUID v4 format)
          example: 123e4567-e89b-12d3-a456-426614174000
          format: uuid
        personId:
          type: string
          description: Unique identifier (UUID v4 format)
          example: 7dd76d65-54a1-4166-9c3f-2adf7c8a1e06
          default: null
          format: uuid
          externalDocs:
            url: https://docs.laka.co/docs/glossary
        userId:
          type: string
          description: Unique identifier (UUID v4 format)
          example: 123e4567-e89b-12d3-a456-426614174000
          format: uuid
          externalDocs:
            url: https://docs.laka.co/docs/glossary
        createdAt:
          type: string
          description: Creation timestamp in ISO 8601 format
          example: '2023-01-01T12:00:00Z'
          format: date-time
        updatedAt:
          type: string
          description: Last update timestamp in ISO 8601 format
          example: '2023-01-01T12:00:00Z'
          format: date-time
        address:
          description: The incident address — where the incident occurred. Not the policyholder's home address. address.country is required when creating or submitting a claim. Accepts an ISO 3166-1 alpha-2 code (e.g. 'UK') or full country name (e.g. 'United Kingdom').
          allOf:
          - $ref: '#/components/schemas/Address'
        incidentDate:
          type: string
          description: An ISO-formatted date value
          example: '2024-11-11T12:00:00Z'
        policyId:
          type: string
          description: Policy identifier (UUID format)
          format: uuid
        claimType:
          type: string
          enum:
          - theft
          - damage
          - health
          - liability
        claimStatus:
          type: string
          enum:
          - Created
          - Incomplete
          - Submitted
          - In Progress
          - On Hold
          - Underwriter Review
          - Settled
          - Rejected
          - Closed
        incidentDetails:
          description: Details about the incident
          type: array
          items:
            type: string
        claimReference:
          type: string
          description: Human readable claim reference
          example: C-12345
        claimsDeeplink:
          type: string
        person:
          $ref: '#/components/schemas/Person'
        private:
          type: boolean
        crimeReferenceNumber:
          type: string
        productIds:
          description: A list of productIds on the claim
          example:
          - 21093dc7-ceb2-41d0-84ac-69aa01dbeae4
          type: array
          items:
            type: string
      required:
      - id
      - personId
      - createdAt
      - updatedAt
      - claimReference
      - productIds
    Person:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier (UUID v4 format)
          example: 123e4567-e89b-12d3-a456-426614174000
          format: uuid
        externalId:
          type: string
          description: External identifier for integration purposes. You may use any identifier for this entity (e.g., CRM ID, internal user ID). We will store this and return it in future responses.
          example: CRM_123456
        userId:
          type: string
          description: Unique identifier (UUID v4 format)
          example: 123e4567-e89b-12d3-a456-426614174000
          format: uuid
          externalDocs:
            url: https://docs.laka.co/docs/glossary
        dateOfBirth:
          type: string
          description: Date of birth in ISO 8601 format
          example: '1990-01-01'
          format: date
        type:
          type: string
          description: Type of person
          enum:
          - Person
          - Organisation
          - Rider
          example: Person
        email:
          type: string
        firstName:
          type: string
          description: The first name of the person.
          example: John
          maxLength: 100
        lastName:
          type: string
          description: The last name(s) of the person.
          example: Doe
        companyName:
          type: string
          description: The company name for business entities.
        address:
          $ref: '#/components/schemas/Address'
        cityOfBirth:
          type: string
        countryOfBirth:
          type: string
        telephoneNumber:
          type: string
        region:
          type: string
        defaultCurrency:
          type: string
      required:
      - id
      - type
      - email
    CreateClaim:
      type: object
      properties:
        personId:
          type: string
          default: null
          description: Unique identifier (UUID v4 format)
          example: 7dd76d65-54a1-4166-9c3f-2adf7c8a1e06
          format: uuid
          externalDocs:
            url: https://docs.laka.co/docs/glossary
        userId:
          type: string
          description: Unique identifier (UUID v4 format)
          example: 123e4567-e89b-12d3-a456-426614174000
          format: uuid
          externalDocs:
            url: https://docs.laka.co/docs/glossary
        address:
          description: The incident address — where the incident occurred, not the policyholder's home address. `address.country` is required. Accepts an ISO 3166-1 alpha-2 code (e.g. 'UK') or full country name (e.g. 'United Kingdom').
          allOf:
          - $ref: '#/components/schemas/Address'
        incidentDate:
          type: string
          description: An ISO-formatted date value
          example: '2024-11-11T12:00:00Z'
        policyId:
          type: string
          description: Policy identifier (UUID format)
          format: uuid
        claimType:
          type: string
          enum:
          - theft
          - damage
          - health
          - liability
        incidentDetails:
          description: Details about the incident
          type: array
          items:
            type: string
        crimeReferenceNumber:
          type: string
          description: Crime reference number
          example: CRIME-1000
        createClaimDeeplink:
          type: boolean
        person:
          $ref: '#/components/schemas/Person'
        private:
          type: boolean
        productIds:
          description: A list of productIds on the claim
          example:
          - 21093dc7-ceb2-41d0-84ac-69aa01dbeae4
          type: array
          items:
            type: string
      required:
      - personId
      - productIds
    CreateClaimNoteRequest:
      type: object
      properties:
        note:
          type: string
          maxLength: 3000
          description: The claim note
      required:
      - note
    UpdateClaimResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier (UUID v4 format)
          example: 123e4567-e89b-12d3-a456-426614174000
          format: uuid
        personId:
          type: string
          description: Unique identifier (UUID v4 format)
          example: 7dd76d65-54a1-4166-9c3f-2adf7c8a1e06
          default: null
          format: uuid
          externalDocs:
            url: https://docs.laka.co/docs/glossary
        userId:
          type: string
          description: Unique identifier (UUID v4 format)
          example: 123e4567-e89b-12d3-a456-426614174000
          format: uuid
          externalDocs:
            url: https://docs.laka.co/docs/glossary
        createdAt:
          type: string
          description: Creation timestamp in ISO 8601 format
          example: '2023-01-01T12:00:00Z'
          format: date-time
        updatedAt:
          type: string
          description: Last update timestamp in ISO 8601 format
          example: '2023-01-01T12:00:00Z'
          format: date-time
        address:
          description: The incident address — where the incident occurred. Not the policyholder's home address. address.country is required when creating or submitting a claim. Accepts an ISO 3166-1 alpha-2 code (e.g. 'UK') or full country name (e.g. 'United Kingdom').
          allOf:
          - $ref: '#/components/schemas/Address'
        incidentDate:
          type: string
          description: An ISO-formatted date value
          example: '2024-11-11T12:00:00Z'
        policyId:
          type: string
          description: Policy identifier (UUID format)
          format: uuid
        claimType:
          type: string
          enum:
          - theft
          - damage
          - health
          - liability
        claimStatus:
          type: string
          enum:
          - Created
          - Incomplete
          - Submitted
          - In Progress
          - On Hold
          - Underwriter Review
          - Settled
          - Rejected
          - Closed
        incidentDetails:
          description: Details about the incident
          type: array
          items:
            type: string
        claimReference:
          type: string
          description: Human readable claim reference
          example: C-12345
        claimsDeeplink:
          type: string
        person:
          $ref: '#/components/schemas/Person'
        private:
          type: boolean
        crimeReferenceNumber:
          type: string
        productIds:
          description: A list of productIds on the claim
          example:
          - 21093dc7-ceb2-41d0-84ac-69aa01dbeae4
          type: array
          items:
            type: string
        completeClaim:
          type: string
          description: 'URL to complete the claim

            Provide this to your customer to enable them to self-service the claim from within the Laka application'
      required:
      - id
      - personId
      - createdAt
      - updatedAt
      - claimReference
      - productIds
    EmptyMessage:
      type: object
      properties: {}
  securitySchemes:
    x-api-key:
      type: apiKey
      in: header
      name: x-api-key