OpenAPI Specification
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