nhance/non_eb_claim_api.md
2026-04-08 12:58:17 +05:30

7.4 KiB

Non-EB Claim API — Documentation

Base URL: /employeeRest/api/v1/non-eb-claim Auth: Bearer JWT token via Authorization header (required on all endpoints) Filter: ratelimit, authJWT


1. Create Claim

POST /create

Content-Type: multipart/form-data

Request Fields

Field Type Required Notes
client_policy_id int Yes Must be active Non-EB or Marine policy
nature_of_loss string Yes Min 3 chars
loss_location string Yes
loss_date string Yes Format: DD-MM-YYYY
loss_description string No Required if asset_file is uploaded
loss_estimate numeric No
claim_number string No Alphanumeric, /, _, - only
asset_file file No Allowed: pdf, xls, xlsx, csv
asset_id_code[] array No Asset details
serial_no[] array No
vehicle_no[] array No
asset_description[] array No

Response — 200

{
  "status": true,
  "code": 200,
  "claim_id": 42,
  "asset_file": "asset_20250315_abc123.pdf",
  "message": "Non-EB Claim created successfully"
}

Error Responses

Code Reason
400 Validation failed
404 Client policy not found
409 Duplicate claim (same client + loss_date + policy_no)
415 Unsupported asset file type
422 Policy type not Non-EB/Marine, or no claim status configured
500 DB insert or file upload failed

2. List Claims

POST /list

Content-Type: application/json

Request Body (all optional)

{
  "page": 1,
  "per_page": 20,
  "client_id": 101,
  "insurer_id": 5,
  "policy_type_id": 50,
  "claim_status_id": 3,
  "claim_number": "CLM/2025",
  "nhance_claim_ref_no": "NHC/NEB",
  "date_type": "created_date",
  "start_date": "01-01-2025",
  "end_date": "31-03-2025",
  "show_closed": false
}

date_type: "created_date" (default) or "updated_date" show_closed: if falsy, excludes Settled / Closed / Rejected / Withdrawn claims

Response — 200

{
  "status": true,
  "code": 200,
  "total": 84,
  "page": 1,
  "per_page": 20,
  "data": [
    {
      "id": 42,
      "claim_number": "CLM/INS/2025/1234",
      "nhance_claim_ref_no": "NHC/NEB/2025/00042",
      "policy_no": "POL/MAR/2025/5678",
      "policy_type_id": 50,
      "claim_status_id": 3,
      "status": "surveyor_assigned",
      "status_display": "Surveyor Assigned",
      "policy_type_name": "Marine Cargo",
      "client_name": "Acme Logistics Pvt Ltd",
      "insurer_name": "New India Assurance",
      "loss_date": "2025-03-15",
      "loss_location": "Chennai Port, Gate 3",
      "nature_of_loss": "Fire and explosion damage to cargo",
      "loss_estimate": "850000.00",
      "insured_contact_name": "Ramesh Kumar",
      "insured_contact_number": "9876543210",
      "acm_name": "Priya Nair",
      "created_date": "16-03-2025",
      "updated_date": "20-03-2025"
    }
  ]
}

Error Responses

Code Reason
400 Invalid JSON body

3. Claim Detail + History

GET /history/{claim_id}

Response — 200

{
  "status": true,
  "code": 200,
  "claim_id": 42,
  "claims_data": {
    "id": 42,
    "nhance_claim_ref_no": "NHC/NEB/2025/00042",
    "claim_number": "CLM/INS/2025/1234",
    "policy_no": "POL/MAR/2025/5678",
    "policy_type_name": "Marine Cargo",
    "client_name": "Acme Logistics Pvt Ltd",
    "branch_name": "Chennai Branch",
    "insurer_name": "New India Assurance",
    "claim_status": "surveyor_assigned",
    "status_display_name": "Surveyor Assigned",
    "insured_contact_name": "Ramesh Kumar",
    "insured_contact_number": "9876543210",
    "insured_contact_email": "ramesh@acmelogistics.com",
    "nature_of_loss": "Fire and explosion damage to cargo",
    "loss_location": "Chennai Port, Gate 3",
    "loss_date": "2025-03-15",
    "loss_description": "Fire broke out in warehouse bay during unloading",
    "loss_estimate": "850000.00",
    "loss_assessed_value": "720000.00",
    "settled_amount": null,
    "settlement_utr": null,
    "intimation_recd_date": "2025-03-16",
    "intimated_to_insurer_date": "2025-03-17",
    "surveyor_name": "Suresh Inspection Services",
    "surveyor_contact_person": "Suresh Babu",
    "surveyor_contact_number": "9444123456",
    "acm": "Priya Nair",
    "acm_mobile": "9500011122",
    "asset_file": "asset_20250315_abc123.pdf",
    "priority": 1,
    "created_at": "2025-03-16 10:30:00",
    "updated_at": "2025-03-20 14:45:00"
  },
  "required_docs": {
    "is_action_freeze": false,
    "docs": [
      { "document_name": "Claim Form", "document_received": true },
      { "document_name": "Survey Report", "document_received": false },
      { "document_name": "Police FIR Copy", "document_received": false }
    ]
  },
  "claims_files": [
    {
      "id": 101,
      "doc_name": "Claim Form",
      "file_name": "claim_form_42_20250316.pdf",
      "mime_type": "application/pdf",
      "file_type": 2,
      "docs_for_ir": 1,
      "created_at": "2025-03-16 11:00:00"
    }
  ],
  "ticket_data": [
    { "status": "Claim Registered",     "changed_at": "16-03-2025 10:30 AM" },
    { "status": "Intimated to Insurer", "changed_at": "17-03-2025 09:00 AM" },
    { "status": "Surveyor Assigned",    "changed_at": "20-03-2025 02:45 PM" }
  ]
}

Error Responses

Code Reason
404 Claim not found or inactive

4. Upload Required IR Documents

POST /upload-required-doc

Content-Type: multipart/form-data

Request Fields

Field Type Required Notes
ticket_id integer Yes The non-EB claim (ticket) ID
claim_docs[] file(s) Yes One or more files to upload
claim_doc_names[] string[] Yes Name for each file — index-matched to claim_docs[]
required_docs string (JSON) Yes Full updated checklist JSON to store (e.g. {"is_action_freeze":false,"docs":[...]})

Response — 200

{
  "status": true,
  "code": 200,
  "message": "Files uploaded successfully"
}

Error Responses

Code Reason
400 No files uploaded or ticket_id missing
401 Missing / expired token
500 File upload or DB failed

5. List Claim Statuses

GET /statuses

Response — 200

{
  "status": true,
  "code": 200,
  "data": [
    { "id": 1, "claim_status": "claim_registered",    "display_name": "Claim Registered" },
    { "id": 2, "claim_status": "intimated_to_insurer","display_name": "Intimated to Insurer" },
    { "id": 3, "claim_status": "surveyor_assigned",   "display_name": "Surveyor Assigned" }
  ]
}

6. List Policies (Non-EB / Marine)

POST /policies

Content-Type: application/json

Request Body

{
  "client_id": "5058f1af8388634f884bd49b13....",
  "client_branch_id": 7
}

client_id — MD5 hash of the client's numeric ID

Response — 200

{
  "status": true,
  "code": 200,
  "total": 3,
  "data": [
    {
      "id": 88,
      "policy_no": "POL/MAR/2025/5678",
      "policy_type_id": 50,
      "policy_type_name": "Marine Cargo",
      "insurer_id": 5,
      "insurer_name": "New India Assurance",
      "insurer_short_name": "NIA",
      "policy_start_date": "01-04-2025",
      "policy_end_date": "31-03-2026"
    }
  ]
}

Error Responses

Code Reason
400 Missing or invalid client_id / client_branch_id

Common Auth Error (all endpoints)

{
  "status": false,
  "code": 401,
  "message": "Unauthorized"
}