Skip to content
Demo environment. M-Pesa and DMVIC are simulated; no real money or certificates move. Sandbox details
FlexySure

Claims

5 endpoints · base URL https://flexysure.intrepidprojects.co.ke/api/v1

Register claims on policies and move them through the lifecycle: registered → documents pending → with underwriter → under assessment → approved or repudiated → settled → closed (or withdrawn). Insurance Cloud only exports claims (GET /erp/claims); everything here is Flexysure. Agents see claims they registered, claims on policies they created and claims of clients they are the salesperson for.

MethodPathSummaryScope
GET /api/v1/claims List claims Flexysure only read
POST /api/v1/claims Register a claim Flexysure only claims
GET /api/v1/claims/{uuid} Get a claim Flexysure only read
POST /api/v1/claims/{uuid}/status Update claim status Flexysure only claims
POST /api/v1/claims/{uuid}/documents Attach a claim document Flexysure only claims
GET /api/v1/claims Flexysure only

List claims

Newest first, cursor paginated.

Scope
read
Authentication
Bearer token
Rate limit
60 requests per minute per token (per-client override)
Idempotency
Safe to repeat (read only).
Agent headers
Accepts X-Agent-Code and X-Agent-Key: the call runs as that agent and sees only the agent's own records.

Headers

HeaderMeaning
AuthorizationBearer <access_token> (scope read)
X-Agent-CodeOptional. Agent code of the selling agent; the call runs with that agent's visibility.
X-Agent-KeyOptional, with X-Agent-Code. The agent's API key; a mismatch returns 403 agent_denied.

Parameters

NameInTypeRequiredDescription
status query string No One of: registered, documents_pending, submitted_to_insurer, under_assessment, approved, repudiated, settled, closed, withdrawn
type query string No One of: Legal, Non Legal
claim_type query string No One of: accidental_damage, theft, third_party, medical, travel, death, disability, other
policy query string No Policy uuid.
from query string No Reported on or after (Y-m-d).
to query string No Reported on or before (Y-m-d).
overdue query boolean No Only claims past their status SLA.
open query boolean No true = still being worked; false = settled, closed or withdrawn.
limit query integer No Default 25, max 100.
cursor query string No

Example

Request cURL
curl -X GET 'https://flexysure.intrepidprojects.co.ke/api/v1/claims' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Accept: application/json' \
  -H 'X-Agent-Code: KK01' \
  -H "X-Agent-Key: $AGENT_KEY"
Response JSON
{
    "data": [
        {
            "uuid": "5c2e8a1b-7f3d-4e6a-9b0c-1d2e3f4a5b6c",
            "claim_no": "CLM/2026/00012",
            "status": "under_assessment",
            "status_label": "Under assessment",
            "next_statuses": [
                "approved",
                "repudiated",
                "documents_pending",
                "withdrawn"
            ],
            "claim_type": "accidental_damage",
            "claim_type_label": "Accidental damage",
            "legal": false,
            "legal_label": "Non Legal",
            "policy": {
                "uuid": "1a2b…",
                "policy_no": "SG/MP/2026/000123",
                "product_line": "motor"
            },
            "client": {
                "client_no": "C-00042",
                "name": "Wanjiru Kamau"
            },
            "insurer": {
                "id": 1,
                "name": "Savanna General"
            },
            "risk_item": "KDA 123A",
            "incident_on": "2026-10-10",
            "reported_on": "2026-10-11",
            "description": "Rear bumper damaged at the Nyayo roundabout.",
            "claimant": {
                "name": null,
                "phone": null,
                "relationship": null
            },
            "insurer_ref": "SG-CL-88812",
            "currency": "KES",
            "amounts": {
                "estimate": 150000,
                "estimate_minor": 15000000,
                "reserve": 140000,
                "reserve_minor": 14000000,
                "approved": 0,
                "approved_minor": 0,
                "paid": 0,
                "paid_minor": 0,
                "excess": 15000,
                "excess_minor": 1500000,
                "outstanding": 0,
                "outstanding_minor": 0
            },
            "sla": {
                "due_at": "2026-11-01T09:00:00+03:00",
                "overdue": false,
                "label": "18 days left",
                "days_in_status": 3
            },
            "assigned_to": {
                "id": 2,
                "name": "Faith Njeri",
                "role": "account_exec",
                "code": null
            },
            "settled_on": null,
            "closed_on": null,
            "created_at": "2026-10-11T09:00:00+03:00"
        }
    ],
    "meta": {
        "limit": 25,
        "has_more": false,
        "count": 1
    },
    "links": {
        "next": null
    }
}

Responses

StatusMeaning
200 Claims

Errors are problem documents; the common codes (401, 403 insufficient_scope, 422, 429) apply to every endpoint.

POST /api/v1/claims Flexysure only

Register a claim

Only active, expired or cancelled policies carry claims, and the incident date must fall inside the cover period (before cancellation). The claim number is CLM/<year>/<sequence>; for motor the risk item defaults to the vehicle registration.

Scope
claims
Authentication
Bearer token
Rate limit
60 requests per minute per token (per-client override)
Idempotency
Required: send an Idempotency-Key; a retry with the same key replays the first response.
Agent headers
Accepts X-Agent-Code and X-Agent-Key: the call runs as that agent and sees only the agent's own records.

Headers

HeaderMeaning
AuthorizationBearer <access_token> (scope claims)
Idempotency-KeyRequired. Unique per write; a replay returns the first response.
X-Agent-CodeOptional. Agent code of the selling agent; the call runs with that agent's visibility.
X-Agent-KeyOptional, with X-Agent-Code. The agent's API key; a mismatch returns 403 agent_denied.

Body fields

FieldTypeRequiredDescription
policy string Yes Policy uuid.
claim_type string Yes One of: accidental_damage, theft, third_party, medical, travel, death, disability, other
incident_on string Yes Y-m-d, not in the future.
description string Yes
reported_on string No Y-m-d. Default today.
legal boolean No A lawyer or court is involved. Or send Insurance Cloud's type: Legal | Non Legal.
risk_item string No Registration, member or traveller name.
claimant_name string No
claimant_phone string No
claimant_relationship string No One of: self, driver, spouse, relative, employee, third_party, other
insurer_ref string No
estimate number No Shillings (or estimate_minor).
excess number No Shillings (or excess_minor).
assigned_to integer No Staff user who handles the claim.
note string No First timeline note.

Example

Request cURL
curl -X POST 'https://flexysure.intrepidprojects.co.ke/api/v1/claims' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Accept: application/json' \
  -H 'Idempotency-Key: 89f1e55a-3a36-43ca-a82a-890188a24cdb' \
  -H 'X-Agent-Code: KK01' \
  -H "X-Agent-Key: $AGENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "policy": "1a2b3c4d-…",
    "claim_type": "accidental_damage",
    "incident_on": "2026-10-10",
    "description": "Rear bumper damaged at the Nyayo roundabout.",
    "estimate": 150000,
    "excess": 15000,
    "type": "Non Legal"
}'
Request body (JSON)
Request body JSON
{
    "policy": "1a2b3c4d-…",
    "claim_type": "accidental_damage",
    "incident_on": "2026-10-10",
    "description": "Rear bumper damaged at the Nyayo roundabout.",
    "estimate": 150000,
    "excess": 15000,
    "type": "Non Legal"
}
Response JSON
{
    "data": {
        "uuid": "5c2e8a1b-7f3d-4e6a-9b0c-1d2e3f4a5b6c",
        "claim_no": "CLM/2026/00012",
        "status": "under_assessment",
        "status_label": "Under assessment",
        "next_statuses": [
            "approved",
            "repudiated",
            "documents_pending",
            "withdrawn"
        ],
        "claim_type": "accidental_damage",
        "claim_type_label": "Accidental damage",
        "legal": false,
        "legal_label": "Non Legal",
        "policy": {
            "uuid": "1a2b…",
            "policy_no": "SG/MP/2026/000123",
            "product_line": "motor"
        },
        "client": {
            "client_no": "C-00042",
            "name": "Wanjiru Kamau"
        },
        "insurer": {
            "id": 1,
            "name": "Savanna General"
        },
        "risk_item": "KDA 123A",
        "incident_on": "2026-10-10",
        "reported_on": "2026-10-11",
        "description": "Rear bumper damaged at the Nyayo roundabout.",
        "claimant": {
            "name": null,
            "phone": null,
            "relationship": null
        },
        "insurer_ref": "SG-CL-88812",
        "currency": "KES",
        "amounts": {
            "estimate": 150000,
            "estimate_minor": 15000000,
            "reserve": 140000,
            "reserve_minor": 14000000,
            "approved": 0,
            "approved_minor": 0,
            "paid": 0,
            "paid_minor": 0,
            "excess": 15000,
            "excess_minor": 1500000,
            "outstanding": 0,
            "outstanding_minor": 0
        },
        "sla": {
            "due_at": "2026-11-01T09:00:00+03:00",
            "overdue": false,
            "label": "18 days left",
            "days_in_status": 3
        },
        "assigned_to": {
            "id": 2,
            "name": "Faith Njeri",
            "role": "account_exec",
            "code": null
        },
        "settled_on": null,
        "closed_on": null,
        "created_at": "2026-10-11T09:00:00+03:00",
        "events": [
            {
                "status_from": null,
                "status_to": "registered",
                "note": null,
                "details": null,
                "user": {
                    "id": 2,
                    "name": "Faith Njeri",
                    "role": "account_exec",
                    "code": null
                },
                "occurred_at": "2026-10-11T09:00:00+03:00"
            }
        ],
        "documents": [
            {
                "uuid": "77aa…",
                "kind": "police_abstract",
                "kind_label": "Police abstract",
                "original_name": "abstract.pdf",
                "mime": "application/pdf",
                "size": 182211,
                "sha256": "e3b0…",
                "uploaded_at": "2026-10-12T11:00:00+03:00"
            }
        ]
    }
}

Responses

StatusMeaning
201 Claim registered (with its timeline)
422 Validation failed, unknown policy, or a claims rule (domain_rule: policy not on cover, incident outside the cover period…)

Errors are problem documents; the common codes (401, 403 insufficient_scope, 422, 429) apply to every endpoint.

GET /api/v1/claims/{uuid} Flexysure only

Get a claim

The claim with its timeline (events, oldest first) and documents.

Scope
read
Authentication
Bearer token
Rate limit
60 requests per minute per token (per-client override)
Idempotency
Safe to repeat (read only).
Agent headers
Accepts X-Agent-Code and X-Agent-Key: the call runs as that agent and sees only the agent's own records.

Headers

HeaderMeaning
AuthorizationBearer <access_token> (scope read)
X-Agent-CodeOptional. Agent code of the selling agent; the call runs with that agent's visibility.
X-Agent-KeyOptional, with X-Agent-Code. The agent's API key; a mismatch returns 403 agent_denied.

Parameters

NameInTypeRequiredDescription
uuid path string Yes Claim uuid. Example: 5c2e8a1b-7f3d-4e6a-9b0c-1d2e3f4a5b6c

Example

Request cURL
curl -X GET 'https://flexysure.intrepidprojects.co.ke/api/v1/claims/5c2e8a1b-7f3d-4e6a-9b0c-1d2e3f4a5b6c' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Accept: application/json' \
  -H 'X-Agent-Code: KK01' \
  -H "X-Agent-Key: $AGENT_KEY"
Response JSON
{
    "data": {
        "uuid": "5c2e8a1b-7f3d-4e6a-9b0c-1d2e3f4a5b6c",
        "claim_no": "CLM/2026/00012",
        "status": "under_assessment",
        "status_label": "Under assessment",
        "next_statuses": [
            "approved",
            "repudiated",
            "documents_pending",
            "withdrawn"
        ],
        "claim_type": "accidental_damage",
        "claim_type_label": "Accidental damage",
        "legal": false,
        "legal_label": "Non Legal",
        "policy": {
            "uuid": "1a2b…",
            "policy_no": "SG/MP/2026/000123",
            "product_line": "motor"
        },
        "client": {
            "client_no": "C-00042",
            "name": "Wanjiru Kamau"
        },
        "insurer": {
            "id": 1,
            "name": "Savanna General"
        },
        "risk_item": "KDA 123A",
        "incident_on": "2026-10-10",
        "reported_on": "2026-10-11",
        "description": "Rear bumper damaged at the Nyayo roundabout.",
        "claimant": {
            "name": null,
            "phone": null,
            "relationship": null
        },
        "insurer_ref": "SG-CL-88812",
        "currency": "KES",
        "amounts": {
            "estimate": 150000,
            "estimate_minor": 15000000,
            "reserve": 140000,
            "reserve_minor": 14000000,
            "approved": 0,
            "approved_minor": 0,
            "paid": 0,
            "paid_minor": 0,
            "excess": 15000,
            "excess_minor": 1500000,
            "outstanding": 0,
            "outstanding_minor": 0
        },
        "sla": {
            "due_at": "2026-11-01T09:00:00+03:00",
            "overdue": false,
            "label": "18 days left",
            "days_in_status": 3
        },
        "assigned_to": {
            "id": 2,
            "name": "Faith Njeri",
            "role": "account_exec",
            "code": null
        },
        "settled_on": null,
        "closed_on": null,
        "created_at": "2026-10-11T09:00:00+03:00",
        "events": [
            {
                "status_from": null,
                "status_to": "registered",
                "note": null,
                "details": null,
                "user": {
                    "id": 2,
                    "name": "Faith Njeri",
                    "role": "account_exec",
                    "code": null
                },
                "occurred_at": "2026-10-11T09:00:00+03:00"
            }
        ],
        "documents": [
            {
                "uuid": "77aa…",
                "kind": "police_abstract",
                "kind_label": "Police abstract",
                "original_name": "abstract.pdf",
                "mime": "application/pdf",
                "size": 182211,
                "sha256": "e3b0…",
                "uploaded_at": "2026-10-12T11:00:00+03:00"
            }
        ]
    }
}

Responses

StatusMeaning
200 Claim
404 Not found or not visible to this caller

Errors are problem documents; the common codes (401, 403 insufficient_scope, 422, 429) apply to every endpoint.

POST /api/v1/claims/{uuid}/status Flexysure only

Update claim status

Moves the claim to one of next_statuses and/or records amounts and a note (omit status to keep it). Approving needs an approved amount; settling needs a paid amount and stamps the settlement date. Every call writes one timeline event.

Scope
claims
Authentication
Bearer token
Rate limit
60 requests per minute per token (per-client override)
Idempotency
Required: send an Idempotency-Key; a retry with the same key replays the first response.
Agent headers
Accepts X-Agent-Code and X-Agent-Key: the call runs as that agent and sees only the agent's own records.

Headers

HeaderMeaning
AuthorizationBearer <access_token> (scope claims)
Idempotency-KeyRequired. Unique per write; a replay returns the first response.
X-Agent-CodeOptional. Agent code of the selling agent; the call runs with that agent's visibility.
X-Agent-KeyOptional, with X-Agent-Code. The agent's API key; a mismatch returns 403 agent_denied.

Parameters

NameInTypeRequiredDescription
uuid path string Yes Claim uuid. Example: 5c2e8a1b-7f3d-4e6a-9b0c-1d2e3f4a5b6c

Body fields

FieldTypeRequiredDescription
status string No One of: registered, documents_pending, submitted_to_insurer, under_assessment, approved, repudiated, settled, closed, withdrawn
note string No
amounts object No
amounts.estimate number No Estimate in whole shillings (or estimate_minor in cents).
amounts.reserve number No Reserve in whole shillings (or reserve_minor in cents).
amounts.approved number No Approved in whole shillings (or approved_minor in cents).
amounts.paid number No Paid in whole shillings (or paid_minor in cents).
amounts.excess number No Excess in whole shillings (or excess_minor in cents).
amounts.insurer_ref string No The underwriter's claim reference.

Example

Request cURL
curl -X POST 'https://flexysure.intrepidprojects.co.ke/api/v1/claims/5c2e8a1b-7f3d-4e6a-9b0c-1d2e3f4a5b6c/status' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Accept: application/json' \
  -H 'Idempotency-Key: b8ab06bc-90fd-40f2-a4d9-6d29671854c8' \
  -H 'X-Agent-Code: KK01' \
  -H "X-Agent-Key: $AGENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "status": "approved",
    "note": "Assessor report accepted.",
    "amounts": {
        "approved": 135000
    }
}'
Request body (JSON)
Request body JSON
{
    "status": "approved",
    "note": "Assessor report accepted.",
    "amounts": {
        "approved": 135000
    }
}
Response JSON
{
    "data": {
        "uuid": "5c2e8a1b-7f3d-4e6a-9b0c-1d2e3f4a5b6c",
        "claim_no": "CLM/2026/00012",
        "status": "under_assessment",
        "status_label": "Under assessment",
        "next_statuses": [
            "approved",
            "repudiated",
            "documents_pending",
            "withdrawn"
        ],
        "claim_type": "accidental_damage",
        "claim_type_label": "Accidental damage",
        "legal": false,
        "legal_label": "Non Legal",
        "policy": {
            "uuid": "1a2b…",
            "policy_no": "SG/MP/2026/000123",
            "product_line": "motor"
        },
        "client": {
            "client_no": "C-00042",
            "name": "Wanjiru Kamau"
        },
        "insurer": {
            "id": 1,
            "name": "Savanna General"
        },
        "risk_item": "KDA 123A",
        "incident_on": "2026-10-10",
        "reported_on": "2026-10-11",
        "description": "Rear bumper damaged at the Nyayo roundabout.",
        "claimant": {
            "name": null,
            "phone": null,
            "relationship": null
        },
        "insurer_ref": "SG-CL-88812",
        "currency": "KES",
        "amounts": {
            "estimate": 150000,
            "estimate_minor": 15000000,
            "reserve": 140000,
            "reserve_minor": 14000000,
            "approved": 0,
            "approved_minor": 0,
            "paid": 0,
            "paid_minor": 0,
            "excess": 15000,
            "excess_minor": 1500000,
            "outstanding": 0,
            "outstanding_minor": 0
        },
        "sla": {
            "due_at": "2026-11-01T09:00:00+03:00",
            "overdue": false,
            "label": "18 days left",
            "days_in_status": 3
        },
        "assigned_to": {
            "id": 2,
            "name": "Faith Njeri",
            "role": "account_exec",
            "code": null
        },
        "settled_on": null,
        "closed_on": null,
        "created_at": "2026-10-11T09:00:00+03:00",
        "events": [
            {
                "status_from": null,
                "status_to": "registered",
                "note": null,
                "details": null,
                "user": {
                    "id": 2,
                    "name": "Faith Njeri",
                    "role": "account_exec",
                    "code": null
                },
                "occurred_at": "2026-10-11T09:00:00+03:00"
            }
        ],
        "documents": [
            {
                "uuid": "77aa…",
                "kind": "police_abstract",
                "kind_label": "Police abstract",
                "original_name": "abstract.pdf",
                "mime": "application/pdf",
                "size": 182211,
                "sha256": "e3b0…",
                "uploaded_at": "2026-10-12T11:00:00+03:00"
            }
        ]
    }
}

Responses

StatusMeaning
200 Updated claim
404 Not found
422 Transition not allowed or amount missing (domain_rule)

Errors are problem documents; the common codes (401, 403 insufficient_scope, 422, 429) apply to every endpoint.

POST /api/v1/claims/{uuid}/documents Flexysure only

Attach a claim document

multipart/form-data. PDF, JPG or PNG up to 10 MB. Stored privately with a SHA-256; noted on the timeline. Closed and withdrawn claims take no more documents.

Scope
claims
Authentication
Bearer token
Rate limit
60 requests per minute per token (per-client override)
Idempotency
Required: send an Idempotency-Key; a retry with the same key replays the first response.
Agent headers
Accepts X-Agent-Code and X-Agent-Key: the call runs as that agent and sees only the agent's own records.

Headers

HeaderMeaning
AuthorizationBearer <access_token> (scope claims)
Idempotency-KeyRequired. Unique per write; a replay returns the first response.
Content-Typemultipart/form-data
X-Agent-CodeOptional. Agent code of the selling agent; the call runs with that agent's visibility.
X-Agent-KeyOptional, with X-Agent-Code. The agent's API key; a mismatch returns 403 agent_denied.

Parameters

NameInTypeRequiredDescription
uuid path string Yes Claim uuid. Example: 5c2e8a1b-7f3d-4e6a-9b0c-1d2e3f4a5b6c

Body fields

FieldTypeRequiredDescription
file string Yes The file (binary form field).
kind string Yes One of: claim_form, police_abstract, driving_licence, logbook, photos, assessor_report, repair_quote, medical_report, invoice, discharge_voucher, other
note string No

Example

Request cURL
curl -X POST https://flexysure.intrepidprojects.co.ke/api/v1/claims/<uuid>/documents \
  -H 'Authorization: Bearer <token>' -H 'Idempotency-Key: 5f0c…' \
  -F kind=police_abstract -F file=@abstract.pdf
Response JSON
{
    "data": {
        "uuid": "77aa…",
        "kind": "police_abstract",
        "kind_label": "Police abstract",
        "original_name": "abstract.pdf",
        "mime": "application/pdf",
        "size": 182211,
        "sha256": "e3b0…",
        "uploaded_at": "2026-10-12T11:00:00+03:00"
    }
}

Responses

StatusMeaning
201 Document stored
404 Not found
422 Wrong file type or size, or claim finished

Errors are problem documents; the common codes (401, 403 insufficient_scope, 422, 429) apply to every endpoint.