v1 · draft
View .md

API reference

Claims

The full claim workflow: submitted → under_review ⇄ documents_requested → approved → settled → closed, or rejected → closed. The customer can withdraw before a decision. Your staff can work the same claims in the Wathiqaty portal at the same time; both see the same state.

Base URL https://sandbox-api.wathiqaty.com/api/v1 (sandbox) · https://api.wathiqaty.com/api/v1 (production)

List claims

GET/partner/claims
Scope: claims:read

Drafts are never visible to you.

Query parameters

NameDescription
status
string

Claim status.

One of: submitted, under_review, documents_requested, approved, rejected, settled, closed, withdrawn

policyId
uuid

On this policy.

categoryId
uuid

Claim category.

insuranceType
string

Line of business.

One of: individual_medical, new_cars

updatedSince
date-time

Only rows changed at or after this instant. Pass the updatedAt of the last row you processed (change feed).

page
integer

Page number, from 1. Default 1.

size
integer

Items per page, 1–100. Default 20.

sortOrder
string

Default desc. Use asc with sortBy=updatedAt for a change feed.

One of: asc, desc

curl -X GET "https://sandbox-api.wathiqaty.com/api/v1/partner/claims" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
200 · A page of claims.
{
  "status": "success",
  "data": {
    "items": [
      {
        "id": "c9e8d7f6-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
        "number": "CLM-00000107",
        "externalReference": null,
        "policyId": "6f1c2d3e-4b5a-4c69-8d7e-1f2a3b4c5d6e",
        "categoryId": "4c5d6e7f-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
        "status": "submitted",
        "incidentDate": "2026-12-01",
        "claimedAmount": "4200.00",
        "approvedAmount": null,
        "items": [
          {
            "lineId": "l1",
            "description": "Outpatient consultation",
            "claimedAmount": "700.00"
          },
          {
            "lineId": "l2",
            "description": "MRI scan",
            "claimedAmount": "3500.00"
          }
        ],
        "documents": [
          {
            "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
            "requirementKey": "medical_report",
            "status": "pending",
            "fileName": "report.pdf",
            "url": "https://files.wathiqaty.com/claims/report.pdf"
          }
        ],
        "documentRequests": [],
        "policyCoverage": {
          "sumInsured": "250000.00",
          "consumed": "0.00",
          "remaining": "250000.00"
        },
        "submittedAt": "2026-12-02T08:30:00.000Z",
        "updatedAt": "2026-12-02T08:30:00.000Z"
      }
    ],
    "meta": {
      "page": 1,
      "size": 20,
      "totalItems": 1,
      "totalPages": 1,
      "hasNextPage": false,
      "hasPreviousPage": false
    }
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "GET",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

Get a claim

GET/partner/claims/{id}
Scope: claims:read

With items, documents (download from url), open document requests and policyCoverage (what is left of the sum insured).

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

Errors

StatusCodeWhen
404not_foundClaim doesn't exist or isn't your company's.

Plus the generic errors any route can return: Errors.

curl -X GET "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
200 · The claim.
{
  "status": "success",
  "data": {
    "id": "c9e8d7f6-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
    "number": "CLM-00000107",
    "externalReference": null,
    "policyId": "6f1c2d3e-4b5a-4c69-8d7e-1f2a3b4c5d6e",
    "categoryId": "4c5d6e7f-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
    "status": "submitted",
    "incidentDate": "2026-12-01",
    "claimedAmount": "4200.00",
    "approvedAmount": null,
    "items": [
      {
        "lineId": "l1",
        "description": "Outpatient consultation",
        "claimedAmount": "700.00"
      },
      {
        "lineId": "l2",
        "description": "MRI scan",
        "claimedAmount": "3500.00"
      }
    ],
    "documents": [
      {
        "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
        "requirementKey": "medical_report",
        "status": "pending",
        "fileName": "report.pdf",
        "url": "https://files.wathiqaty.com/claims/report.pdf"
      }
    ],
    "documentRequests": [],
    "policyCoverage": {
      "sumInsured": "250000.00",
      "consumed": "0.00",
      "remaining": "250000.00"
    },
    "submittedAt": "2026-12-02T08:30:00.000Z",
    "updatedAt": "2026-12-02T08:30:00.000Z"
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "GET",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

Set your claim number

PUT/partner/claims/{id}/external-reference
Scope: claims:writeIf-Match

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

Body (JSON)

NameDescription
externalReference
stringrequired

Your own reference, 1–100 characters, unique within your company.

Errors

StatusCodeWhen
404not_foundClaim doesn't exist or isn't your company's.
412version_conflictChanged since you read it (If-Match doesn't match). Reload and retry.

Plus the generic errors any route can return: Errors.

curl -X PUT "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}/external-reference" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "If-Match: W/"7"" \
  -d '{"externalReference":"CL/2026/000981"}'
200 · The claim.
{
  "status": "success",
  "data": {
    "id": "c9e8d7f6-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
    "number": "CLM-00000107",
    "externalReference": "CL/2026/000981",
    "policyId": "6f1c2d3e-4b5a-4c69-8d7e-1f2a3b4c5d6e",
    "categoryId": "4c5d6e7f-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
    "status": "submitted",
    "incidentDate": "2026-12-01",
    "claimedAmount": "4200.00",
    "approvedAmount": null,
    "items": [
      {
        "lineId": "l1",
        "description": "Outpatient consultation",
        "claimedAmount": "700.00"
      },
      {
        "lineId": "l2",
        "description": "MRI scan",
        "claimedAmount": "3500.00"
      }
    ],
    "documents": [
      {
        "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
        "requirementKey": "medical_report",
        "status": "pending",
        "fileName": "report.pdf",
        "url": "https://files.wathiqaty.com/claims/report.pdf"
      }
    ],
    "documentRequests": [],
    "policyCoverage": {
      "sumInsured": "250000.00",
      "consumed": "0.00",
      "remaining": "250000.00"
    },
    "submittedAt": "2026-12-02T08:30:00.000Z",
    "updatedAt": "2026-12-02T08:30:00.000Z"
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "PUT",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

Start reviewing

POST/partner/claims/{id}/start-review
Scope: claims:write

submitted → under_review.

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

Errors

StatusCodeWhen
404not_foundClaim doesn't exist or isn't your company's.
400bad_requestNot allowed in the current status (details.from, details.to).

Plus the generic errors any route can return: Errors.

curl -X POST "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}/start-review" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
200 · The claim.
{
  "status": "success",
  "data": {
    "id": "c9e8d7f6-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
    "number": "CLM-00000107",
    "externalReference": null,
    "policyId": "6f1c2d3e-4b5a-4c69-8d7e-1f2a3b4c5d6e",
    "categoryId": "4c5d6e7f-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
    "status": "under_review",
    "incidentDate": "2026-12-01",
    "claimedAmount": "4200.00",
    "approvedAmount": null,
    "items": [
      {
        "lineId": "l1",
        "description": "Outpatient consultation",
        "claimedAmount": "700.00"
      },
      {
        "lineId": "l2",
        "description": "MRI scan",
        "claimedAmount": "3500.00"
      }
    ],
    "documents": [
      {
        "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
        "requirementKey": "medical_report",
        "status": "pending",
        "fileName": "report.pdf",
        "url": "https://files.wathiqaty.com/claims/report.pdf"
      }
    ],
    "documentRequests": [],
    "policyCoverage": {
      "sumInsured": "250000.00",
      "consumed": "0.00",
      "remaining": "250000.00"
    },
    "submittedAt": "2026-12-02T08:30:00.000Z",
    "updatedAt": "2026-12-02T08:30:00.000Z"
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "POST",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

Request documents

POST/partner/claims/{id}/document-requests
Scope: claims:writeIdempotency-Key optional

→ documents_requested (or adds to the open round). The customer is notified and resubmits (claim.resubmitted).

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

Body (JSON)

NameDescription
requests
object[]required

1–20 of { requirementKey | name (1–255), note?, dueDate? }.

Errors

StatusCodeWhen
404not_foundClaim doesn't exist or isn't your company's.
400bad_requestNot allowed in the current status (details.from, details.to).

Plus the generic errors any route can return: Errors.

curl -X POST "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}/document-requests" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"requests":[{"name":"Itemised hospital invoice","note":"Stamped by the hospital","dueDate":"2026-12-15"}]}'
200 · The claim.
{
  "status": "success",
  "data": {
    "id": "c9e8d7f6-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
    "number": "CLM-00000107",
    "externalReference": null,
    "policyId": "6f1c2d3e-4b5a-4c69-8d7e-1f2a3b4c5d6e",
    "categoryId": "4c5d6e7f-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
    "status": "documents_requested",
    "incidentDate": "2026-12-01",
    "claimedAmount": "4200.00",
    "approvedAmount": null,
    "items": [
      {
        "lineId": "l1",
        "description": "Outpatient consultation",
        "claimedAmount": "700.00"
      },
      {
        "lineId": "l2",
        "description": "MRI scan",
        "claimedAmount": "3500.00"
      }
    ],
    "documents": [
      {
        "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
        "requirementKey": "medical_report",
        "status": "pending",
        "fileName": "report.pdf",
        "url": "https://files.wathiqaty.com/claims/report.pdf"
      }
    ],
    "documentRequests": [],
    "policyCoverage": {
      "sumInsured": "250000.00",
      "consumed": "0.00",
      "remaining": "250000.00"
    },
    "submittedAt": "2026-12-02T08:30:00.000Z",
    "updatedAt": "2026-12-02T08:30:00.000Z"
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "POST",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

Accept or reject a document

POST/partner/claims/{id}/documents/{documentId}/review
Scope: claims:write

Rejecting reopens a request for it and moves under_review → documents_requested.

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

documentId
uuidrequired

The document's id.

Body (JSON)

NameDescription
decision
stringrequired

Your decision.

One of: accepted, rejected

reason
string

3–2000 characters. Required to reject.

Errors

StatusCodeWhen
404not_foundClaim or document doesn't exist or isn't your company's.
400bad_requestNot allowed in the current status (details.from, details.to).

Plus the generic errors any route can return: Errors.

curl -X POST "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}/documents/{documentId}/review" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"decision":"rejected","reason":"The report is not signed."}'
200 · The claim.
{
  "status": "success",
  "data": {
    "id": "c9e8d7f6-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
    "number": "CLM-00000107",
    "externalReference": null,
    "policyId": "6f1c2d3e-4b5a-4c69-8d7e-1f2a3b4c5d6e",
    "categoryId": "4c5d6e7f-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
    "status": "submitted",
    "incidentDate": "2026-12-01",
    "claimedAmount": "4200.00",
    "approvedAmount": null,
    "items": [
      {
        "lineId": "l1",
        "description": "Outpatient consultation",
        "claimedAmount": "700.00"
      },
      {
        "lineId": "l2",
        "description": "MRI scan",
        "claimedAmount": "3500.00"
      }
    ],
    "documents": [
      {
        "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
        "requirementKey": "medical_report",
        "status": "pending",
        "fileName": "report.pdf",
        "url": "https://files.wathiqaty.com/claims/report.pdf"
      }
    ],
    "documentRequests": [],
    "policyCoverage": {
      "sumInsured": "250000.00",
      "consumed": "0.00",
      "remaining": "250000.00"
    },
    "submittedAt": "2026-12-02T08:30:00.000Z",
    "updatedAt": "2026-12-02T08:30:00.000Z"
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "POST",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

Preview an approval

GET/partner/claims/{id}/approval-preview
Scope: claims:read

What the customer would be paid after the deductible, and what would remain of the cover. Changes nothing.

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

Query parameters

NameDescription
approvedAmount
decimalrequired

Amount you intend to approve, > 0.

Errors

StatusCodeWhen
404not_foundClaim doesn't exist or isn't your company's.

Plus the generic errors any route can return: Errors.

curl -X GET "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}/approval-preview?approvedAmount=<approvedAmount>" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
200 · The preview.
{
  "status": "success",
  "data": {
    "deductibleApplied": "0.00",
    "payableAmount": "4200.00",
    "remainingAfter": "245800.00"
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "GET",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

Approve a claim

POST/partner/claims/{id}/approve
Scope: claims:writeIdempotency-Key optional

under_review → approved. Itemised claims list every item once (an item below its claimed amount needs a reason); other claims send approvedAmount. Every document must be reviewed first, and the total can't exceed what is left of the sum insured.

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

Body (JSON)

NameDescription
items
object[]

Itemised claims: { lineId, approvedAmount, reason? } for every item.

approvedAmount
decimal

Other claims: > 0 and ≤ the claimed amount.

Errors

StatusCodeWhen
404not_foundClaim doesn't exist or isn't your company's.
400bad_requestNot allowed in the current status (details.from, details.to).
400documents_pendingA document is still pending (details.pendingDocumentIds).
400claim_not_payableOver the remaining cover (details.remaining, details.sumInsured, details.consumed).
422validation_errorWrong form for the claim, or items missing or repeated.

Plus the generic errors any route can return: Errors.

curl -X POST "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}/approve" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"items":[{"lineId":"l1","approvedAmount":"700.00"},{"lineId":"l2","approvedAmount":"3000.00","reason":"Network price for MRI is 3000"}]}'
200 · The claim, now approved.
{
  "status": "success",
  "data": {
    "id": "c9e8d7f6-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
    "number": "CLM-00000107",
    "externalReference": null,
    "policyId": "6f1c2d3e-4b5a-4c69-8d7e-1f2a3b4c5d6e",
    "categoryId": "4c5d6e7f-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
    "status": "approved",
    "incidentDate": "2026-12-01",
    "claimedAmount": "4200.00",
    "approvedAmount": "3700.00",
    "items": [
      {
        "lineId": "l1",
        "description": "Outpatient consultation",
        "claimedAmount": "700.00"
      },
      {
        "lineId": "l2",
        "description": "MRI scan",
        "claimedAmount": "3500.00"
      }
    ],
    "documents": [
      {
        "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
        "requirementKey": "medical_report",
        "status": "pending",
        "fileName": "report.pdf",
        "url": "https://files.wathiqaty.com/claims/report.pdf"
      }
    ],
    "documentRequests": [],
    "policyCoverage": {
      "sumInsured": "250000.00",
      "consumed": "0.00",
      "remaining": "250000.00"
    },
    "submittedAt": "2026-12-02T08:30:00.000Z",
    "updatedAt": "2026-12-02T08:30:00.000Z"
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "POST",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

Reject a claim

POST/partner/claims/{id}/reject
Scope: claims:writeIdempotency-Key optional

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

Body (JSON)

NameDescription
reason
stringrequired

3–2000 characters, shown to the customer.

Errors

StatusCodeWhen
404not_foundClaim doesn't exist or isn't your company's.
400bad_requestNot allowed in the current status (details.from, details.to).

Plus the generic errors any route can return: Errors.

curl -X POST "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}/reject" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"reason":"The treatment is excluded under section 4.2 of the wording."}'
200 · The claim, now rejected.
{
  "status": "success",
  "data": {
    "id": "c9e8d7f6-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
    "number": "CLM-00000107",
    "externalReference": null,
    "policyId": "6f1c2d3e-4b5a-4c69-8d7e-1f2a3b4c5d6e",
    "categoryId": "4c5d6e7f-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
    "status": "rejected",
    "incidentDate": "2026-12-01",
    "claimedAmount": "4200.00",
    "approvedAmount": null,
    "items": [
      {
        "lineId": "l1",
        "description": "Outpatient consultation",
        "claimedAmount": "700.00"
      },
      {
        "lineId": "l2",
        "description": "MRI scan",
        "claimedAmount": "3500.00"
      }
    ],
    "documents": [
      {
        "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
        "requirementKey": "medical_report",
        "status": "pending",
        "fileName": "report.pdf",
        "url": "https://files.wathiqaty.com/claims/report.pdf"
      }
    ],
    "documentRequests": [],
    "policyCoverage": {
      "sumInsured": "250000.00",
      "consumed": "0.00",
      "remaining": "250000.00"
    },
    "submittedAt": "2026-12-02T08:30:00.000Z",
    "updatedAt": "2026-12-02T08:30:00.000Z"
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "POST",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

Mark a claim paid

POST/partner/claims/{id}/settle
Scope: claims:writeIdempotency-Key optional

approved → settled, with your payment reference.

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

Body (JSON)

NameDescription
settlementReference
stringrequired

1–255 characters.

Errors

StatusCodeWhen
404not_foundClaim doesn't exist or isn't your company's.
400bad_requestNot allowed in the current status (details.from, details.to).

Plus the generic errors any route can return: Errors.

curl -X POST "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}/settle" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"settlementReference":"PAY-2026-55120"}'
200 · The claim, now settled.
{
  "status": "success",
  "data": {
    "id": "c9e8d7f6-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
    "number": "CLM-00000107",
    "externalReference": null,
    "policyId": "6f1c2d3e-4b5a-4c69-8d7e-1f2a3b4c5d6e",
    "categoryId": "4c5d6e7f-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
    "status": "settled",
    "incidentDate": "2026-12-01",
    "claimedAmount": "4200.00",
    "approvedAmount": null,
    "items": [
      {
        "lineId": "l1",
        "description": "Outpatient consultation",
        "claimedAmount": "700.00"
      },
      {
        "lineId": "l2",
        "description": "MRI scan",
        "claimedAmount": "3500.00"
      }
    ],
    "documents": [
      {
        "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
        "requirementKey": "medical_report",
        "status": "pending",
        "fileName": "report.pdf",
        "url": "https://files.wathiqaty.com/claims/report.pdf"
      }
    ],
    "documentRequests": [],
    "policyCoverage": {
      "sumInsured": "250000.00",
      "consumed": "0.00",
      "remaining": "250000.00"
    },
    "submittedAt": "2026-12-02T08:30:00.000Z",
    "updatedAt": "2026-12-02T08:30:00.000Z"
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "POST",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

Close a claim

POST/partner/claims/{id}/close
Scope: claims:write

settled or rejected → closed.

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

Errors

StatusCodeWhen
404not_foundClaim doesn't exist or isn't your company's.
400bad_requestNot allowed in the current status (details.from, details.to).

Plus the generic errors any route can return: Errors.

curl -X POST "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}/close" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
200 · The claim, now closed.
{
  "status": "success",
  "data": {
    "id": "c9e8d7f6-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
    "number": "CLM-00000107",
    "externalReference": null,
    "policyId": "6f1c2d3e-4b5a-4c69-8d7e-1f2a3b4c5d6e",
    "categoryId": "4c5d6e7f-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
    "status": "closed",
    "incidentDate": "2026-12-01",
    "claimedAmount": "4200.00",
    "approvedAmount": null,
    "items": [
      {
        "lineId": "l1",
        "description": "Outpatient consultation",
        "claimedAmount": "700.00"
      },
      {
        "lineId": "l2",
        "description": "MRI scan",
        "claimedAmount": "3500.00"
      }
    ],
    "documents": [
      {
        "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
        "requirementKey": "medical_report",
        "status": "pending",
        "fileName": "report.pdf",
        "url": "https://files.wathiqaty.com/claims/report.pdf"
      }
    ],
    "documentRequests": [],
    "policyCoverage": {
      "sumInsured": "250000.00",
      "consumed": "0.00",
      "remaining": "250000.00"
    },
    "submittedAt": "2026-12-02T08:30:00.000Z",
    "updatedAt": "2026-12-02T08:30:00.000Z"
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "POST",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

List claim messages

GET/partner/claims/{id}/messages
Scope: claims:read

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

Query parameters

NameDescription
after
uuid

Messages after this message id.

limit
integer

1–100. Default 50.

Errors

StatusCodeWhen
404not_foundClaim doesn't exist or isn't your company's.

Plus the generic errors any route can return: Errors.

curl -X GET "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}/messages" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
200 · Messages, oldest first.
{
  "status": "success",
  "data": [
    {
      "id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
      "author": "customer",
      "body": "I uploaded the stamped invoice.",
      "attachments": [],
      "createdAt": "2026-12-03T09:00:00.000Z"
    }
  ],
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "GET",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}

Message the customer

POST/partner/claims/{id}/messages
Scope: claims:write

A public reply on the claim. Retries with the same clientMessageId don't post twice.

Path parameters

NameDescription
id
uuidrequired

The claim's Wathiqaty id.

Body (JSON)

NameDescription
body
stringrequired

1–5000 characters.

clientMessageId
uuid

Your id for the message, for safe retries.

Errors

StatusCodeWhen
404not_foundClaim doesn't exist or isn't your company's.
400bad_requestThe claim is closed or withdrawn.

Plus the generic errors any route can return: Errors.

curl -X POST "https://sandbox-api.wathiqaty.com/api/v1/partner/claims/{id}/messages" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"body":"Thank you, we are reviewing the invoice.","clientMessageId":"3c4d5e6f-7a8b-4c9d-8e0f-1a2b3c4d5e6f"}'
201 · The message.
{
  "status": "success",
  "data": {
    "id": "4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a",
    "author": "insurer",
    "body": "Thank you, we are reviewing the invoice.",
    "attachments": [],
    "createdAt": "2026-12-03T09:05:00.000Z"
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-11-05T09:15:02.481Z",
    "path": "/api/v1/partner/…",
    "method": "POST",
    "requestId": "8d7e2c1a-41f0-4a4e-9a55-6f0b3c2d1e77"
  }
}