GET /claims
List claims. Who: Customer, adjuster, manager, admin.
Customers see the claims they filed; staff see every claim.
Query parameters
q: Search textstatus: Submitted, Info requested, Manager review, Approved, Rejected or Withdrawnsort: One of: id, amount, status, createdAt, updatedAtdir: asc or descpage: Page number, from 1pageSize: 1 to 50 (default 10)
Responses
GET /claims/{id}
One claim, with history and allowed actions. Who: Any role who can see it.
actions lists what the signed-in role may do now. version is needed to change the claim.
Responses
200 The claim404 Not found, or not yours to see
POST /claims
File a claim. Who: Customer, adjuster (on their own policies).
The policy must be active, the date within the policy period and not in the future, and the amount within the coverage. details depends on the type: Motor needs vehicleReg and policeReport ("yes" adds reportNumber PR-12345); Home needs cause; Health needs hospital; Travel needs destination. Documents are 1 to 5 entries of name, type (application/pdf, image/jpeg, image/png) and size in bytes, under 5 MB.
Example body
{
"policyId": "POL-2001",
"incidentDate": "2026-11-01",
"amount": 1200,
"description": "Rear bumper damaged in a car park.",
"details": {
"vehicleReg": "KA01AB1234",
"policeReport": "no"
},
"documents": [
{
"name": "photo.jpg",
"type": "image/jpeg",
"size": 204800
}
]
}
Responses
201 The new claim, status Submitted403 This role cannot file claims422 Validation failed: fields says which
POST /claims/{id}/actions
Act on a claim. Who: Depends on the action.
action is request-info (adjuster, needs note), approve (adjuster or manager, optional payout up to the amount), reject (adjuster or manager, needs note as the reason), respond (customer, needs note) or withdraw (customer). An adjuster approving a claim above their limit sends it to Manager review. Nobody can decide a claim they filed. version must match the claim's current version.
Example body
{
"action": "approve",
"version": 1,
"payout": 1000,
"note": "Approved after review"
}
Responses
200 The updated claim400 version missing403 This role cannot do this, or it is their own claim409 Someone else changed the claim (version mismatch), or the action does not fit its status422 note or payout invalid
POST /claims/{id}/feedback
Rate a decided claim. Who: Customer.
Example body
{
"rating": 4,
"comment": "Quick payout"
}
Responses
200 The claim, with a Feedback event409 Not decided yet, or already rated422 rating must be 1 to 5