Case Records

Case records are the central entity in CMS Admin. A case record tracks a filed case from initial intake all the way through raffling, branch assignment, hearings, and closure, along with its parties (plaintiffs, defendants, counsels) and court classification.

The case record model

The case record model is large — beyond the core fields below it also tracks monetary claims (obligation_amount, interests, surcharges, penalties, property_amount, litigation_cost, attorneys_fee, total_damages), JDR/mediation flags, and counsel/party contact details. The properties below cover the fields you'll use most often.

Properties

  • Name
    id
    Type
    string
    Description

    Unique UUID identifier for the case record.

  • Name
    docket_number
    Type
    string | null
    Description

    The court's docket number, if different from case_number.

  • Name
    case_number
    Type
    string
    Description

    The official case number. Auto-generated (year + case-type initials + zero-padded sequence) when a case transitions to for_raffling. Uppercased on read.

  • Name
    case_title
    Type
    string
    Description

    The case title, e.g. "Juan Dela Cruz vs. Pedro Santos". Uppercased on read.

  • Name
    service_type
    Type
    string
    Description

    The filing service requested. One of case_filing ("File Case, Supplemental Pleadings, and Answers"), application ("Filing of Applications, Motions, or Requests"), or another free-text value. The raw code is exposed as service_type_code; service_type in the API response is the human-readable label.

  • Name
    party_type
    Type
    string
    Description

    The filer's party type, e.g. Petitioner.

  • Name
    status
    Type
    string
    Description

    Current case status. One of: pending, draft, occ_pending, branch_receiving, deferred_raffling, for_raffling, received, inhibit, with_appeal, case_closed, archived.

  • Name
    stage
    Type
    string
    Description

    Current procedural stage. One of: PRELIMINARY_PROCEEDINGS, PRE_TRIAL_CONFERENCE, TRIAL_PROPER, JUDGMENT, APPEAL, POST_JUDGMENT.

  • Name
    payment_status
    Type
    string | null
    Description

    Filing fee payment status, e.g. paid.

  • Name
    classification
    Type
    string
    Description

    Filer classification. One of Individual, Juridical, Government Agency.

  • Name
    corporation
    Type
    string | null
    Description

    Corporation/entity name, when classification is Juridical or Government Agency.

  • Name
    court_type_id
    Type
    string
    Description

    Foreign key to the assigned court type.

  • Name
    court_level_id
    Type
    string
    Description

    Foreign key to the assigned court level.

  • Name
    case_category_id
    Type
    string
    Description

    Foreign key to the case category.

  • Name
    case_type_id
    Type
    string
    Description

    Foreign key to the case type.

  • Name
    court_station_id
    Type
    string | null
    Description

    Foreign key to the court station (province-scoped grouping of branches for a court type).

  • Name
    branch_id
    Type
    string | null
    Description

    Foreign key to the court branch the case is assigned to, set by raffling or manual assignment.

  • Name
    jdr_id
    Type
    string | null
    Description

    Foreign key to the branch handling Judicial Dispute Resolution, when has_jdr is true.

  • Name
    region_code
    Type
    string | null
    Description

    PSGC region code of the filer's address.

  • Name
    province_code
    Type
    string | null
    Description

    PSGC province code of the filer's address.

  • Name
    city_code
    Type
    string | null
    Description

    PSGC city/municipality code of the filer's address.

  • Name
    filed_at
    Type
    date | null
    Description

    Date the case was filed. Required when the filer is BCC/OCC staff.

  • Name
    raffled_at
    Type
    date | null
    Description

    Date the case was raffled to a branch.

  • Name
    received_at
    Type
    date | null
    Description

    Date the branch received/acknowledged the case.

  • Name
    closed_at
    Type
    timestamp | null
    Description

    Timestamp when the case was closed.

  • Name
    archived_at
    Type
    timestamp | null
    Description

    Timestamp when the case was archived.

  • Name
    has_mediation
    Type
    boolean
    Description

    Whether the case has gone through mediation.

  • Name
    has_jdr
    Type
    boolean
    Description

    Whether the case is subject to Judicial Dispute Resolution.

  • Name
    defendants_count
    Type
    integer
    Description

    Number of defendants named in the case.

  • Name
    with_fee_exemption
    Type
    boolean
    Description

    Whether the filer has been granted a filing fee exemption (e.g. pauper litigant).

  • Name
    user_id
    Type
    string | null
    Description

    The user (typically Counsel) who filed the case.

  • Name
    created_at
    Type
    timestamp
    Description

    Timestamp when the case record was created.

  • Name
    updated_at
    Type
    timestamp
    Description

    Timestamp when the case record was last updated.


GET/api/case-records

List all case records

This endpoint allows you to retrieve a paginated list of case records. Supports filtering and sorting via laravel-query-builder query parameters.

Optional attributes

  • Name
    filter[search]
    Type
    string
    Description

    Search case records by case number, case title, or docket number.

  • Name
    filter[status]
    Type
    string
    Description

    Filter by case status.

  • Name
    filter[branch_id]
    Type
    string
    Description

    Filter to cases assigned to a specific court branch.

  • Name
    per_page
    Type
    integer
    Description

    Number of case records to return per page (default: 15).

  • Name
    page
    Type
    integer
    Description

    Page number for pagination (default: 1).

Request

GET
/api/case-records
curl -G https://your-domain.com/api/case-records \
  -H "Accept: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}" \
  --data-urlencode "filter[status]=for_raffling"

Response

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "case_number": "2026-CV-000123",
      "case_title": "JUAN DELA CRUZ VS. PEDRO SANTOS",
      "service_type": "File Case, Supplemental Pleadings, and Answers",
      "service_type_code": "case_filing",
      "status": "for_raffling",
      "stage": "PRELIMINARY_PROCEEDINGS",
      "classification": "Individual",
      "court_type": "Regional Trial Court",
      "court_level": "First Level",
      "case_category": "Civil",
      "case_type": "Collection of Sum of Money",
      "branch": null,
      "station": "Quezon City",
      "filed_at": "2026-02-10",
      "raffled_at": null,
      "created_at": "2026-02-10T09:00:00+00:00",
      "updated_at": "2026-02-10T09:00:00+00:00"
    }
  ],
  "links": {
    "first": "https://your-domain.com/api/case-records?page=1",
    "last": "https://your-domain.com/api/case-records?page=12",
    "prev": null,
    "next": "https://your-domain.com/api/case-records?page=2"
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 12,
    "per_page": 15,
    "to": 15,
    "total": 176
  }
}

POST/api/case-records

Create a case record

This endpoint allows you to file a new case record.

Required attributes

  • Name
    case_title
    Type
    string
    Description

    Title of the case. Maximum 1000 characters.

  • Name
    case_category
    Type
    string
    Description

    The code of an existing case category.

  • Name
    case_type
    Type
    string
    Description

    The code of an existing case type.

  • Name
    court_level
    Type
    string
    Description

    The code of an existing court level.

  • Name
    court_station
    Type
    string
    Description

    The code of an existing court station.

  • Name
    court_type
    Type
    string
    Description

    The code of an existing court type.

  • Name
    party_type
    Type
    string
    Description

    The filer's party type, e.g. Petitioner. Maximum 255 characters.

  • Name
    classification
    Type
    string
    Description

    One of Individual, Juridical, Government Agency. Maximum 50 characters.

  • Name
    service_type
    Type
    string
    Description

    The requested filing service. Maximum 255 characters.

Optional attributes

  • Name
    case_number
    Type
    string
    Description

    Only required and validated for uniqueness when the authenticated user is BCC/OCC staff.

  • Name
    counsel_first_name
    Type
    string
    Description

    Counsel's first name (plus counsel_middle_name, counsel_last_name).

  • Name
    counsel_email
    Type
    string
    Description

    Counsel's email. Must not already be in use by any counsel, defendant, or plaintiff on the case.

  • Name
    counsel_region_code
    Type
    string
    Description

    Counsel's region code (plus counsel_province_code, counsel_city_code, counsel_address_1, counsel_address_2, counsel_zipcode).

  • Name
    corporation
    Type
    string
    Description

    Corporation/entity name. 2–500 characters.

  • Name
    address
    Type
    string
    Description

    Filer's address. 2–500 characters.

  • Name
    filed_at
    Type
    date
    Description

    Required if the filer is BCC/OCC staff.

  • Name
    raffled_at
    Type
    date
    Description

    Required if the filer is BCC/OCC staff.

  • Name
    received_at
    Type
    date
    Description

    Required if the filer is BCC/OCC staff.

  • Name
    attorneys_fee
    Type
    decimal
    Description

    Claimed attorney's fees. Also: litigation_cost, interests, other_claims, property_amount, surcharges — all nullable, numeric, min 0.

Request

POST
/api/case-records
curl -X POST https://your-domain.com/api/case-records \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}" \
  -d '{
    "case_title": "Juan Dela Cruz vs. Pedro Santos",
    "case_category": "CIV",
    "case_type": "COLL-SUM",
    "court_level": "RTC",
    "court_station": "QC-RTC",
    "court_type": "RTC",
    "party_type": "Petitioner",
    "classification": "Individual",
    "service_type": "case_filing"
  }'

Response

{
  "data": {
    "id": "c3d4e5f6-a7b8-9012-cdef-ab3456789012",
    "case_title": "JUAN DELA CRUZ VS. PEDRO SANTOS",
    "case_number": null,
    "status": "draft",
    "stage": "PRELIMINARY_PROCEEDINGS",
    "classification": "Individual",
    "court_type": "Regional Trial Court",
    "case_category": "Civil",
    "case_type": "Collection of Sum of Money",
    "created_at": "2026-02-20T10:30:00+00:00",
    "updated_at": "2026-02-20T10:30:00+00:00"
  }
}

GET/api/case-records/{caseRecord}

Retrieve a case record

This endpoint allows you to retrieve a single case record by ID, including its parties, evidence, stage history, and media.

Path parameters

  • Name
    caseRecord
    Type
    string
    Description

    The UUID of the case record to retrieve.

Request

GET
/api/case-records/{caseRecord}
curl https://your-domain.com/api/case-records/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "Accept: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}"

Response

{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "case_number": "2026-CV-000123",
    "case_title": "JUAN DELA CRUZ VS. PEDRO SANTOS",
    "status": "received",
    "stage": "PRELIMINARY_PROCEEDINGS",
    "branch": "Branch 12",
    "station": "Quezon City",
    "court_type": "Regional Trial Court",
    "case_category": "Civil",
    "case_type": "Collection of Sum of Money",
    "plaintiffs": [],
    "case_defendants": [],
    "collaborators": [],
    "evidence": [],
    "stages": [],
    "medias": [],
    "created_at": "2026-02-10T09:00:00+00:00",
    "updated_at": "2026-02-15T14:00:00+00:00"
  }
}

PUT/api/case-records/{caseRecord}

Update a case record

This endpoint allows you to update a case record's core filing information. Uses the same validation as create.

Path parameters

  • Name
    caseRecord
    Type
    string
    Description

    The UUID of the case record to update.

Request

PUT
/api/case-records/{caseRecord}
curl -X PUT https://your-domain.com/api/case-records/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}" \
  -d '{"case_title": "Juan Dela Cruz vs. Pedro Santos, et al."}'

Response

{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "case_title": "JUAN DELA CRUZ VS. PEDRO SANTOS, ET AL.",
    "updated_at": "2026-02-20T11:00:00+00:00"
  }
}

DELETE/api/case-records/{caseRecord}

Delete a case record

Soft-deletes a case record. The record and its history are retained (SoftDeletes) and can be restored by an administrator.

Path parameters

  • Name
    caseRecord
    Type
    string
    Description

    The UUID of the case record to delete.

Request

DELETE
/api/case-records/{caseRecord}
curl -X DELETE https://your-domain.com/api/case-records/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "Accept: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}"

Response

{
  "message": "Case record deleted successfully."
}

GET/api/case-records/search

Search case records

Search across case number, case title, and docket number in a single query parameter, without pagination metadata overhead.

Optional attributes

  • Name
    q
    Type
    string
    Description

    The search term.

Request

GET
/api/case-records/search
curl -G https://your-domain.com/api/case-records/search \
  -H "Accept: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}" \
  --data-urlencode "q=Dela Cruz"

Response

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "case_number": "2026-CV-000123",
      "case_title": "JUAN DELA CRUZ VS. PEDRO SANTOS"
    }
  ]
}

PUT/api/backoffice/case-records/{caseRecord}/update-status

Update case status

Transition a case record to a new status. Requires the Update Case Status permission. When transitioning to for_raffling, the system auto-generates the case's official case_number.

Path parameters

  • Name
    caseRecord
    Type
    string
    Description

    The UUID of the case record.

Required attributes

  • Name
    status
    Type
    string
    Description

    One of: revived, occ_pending, for_raffling, branch_receiving, deferred_raffling, inhibit, received, case_closed, with_appeal, archived.

Optional attributes

  • Name
    branch_id
    Type
    string
    Description

    Must reference an existing court branch. Used to re-assign the branch alongside the status change.

Request

PUT
/api/backoffice/case-records/{caseRecord}/update-status
curl -X PUT https://your-domain.com/api/backoffice/case-records/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update-status \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}" \
  -d '{"status": "for_raffling"}'

Response

{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "for_raffling",
    "case_number": "2026-CIV-000045",
    "updated_at": "2026-02-20T12:00:00+00:00"
  }
}

Error - Missing Permission (403)

{
  "message": "This action is unauthorized."
}

GET/api/dashboard/for-raffling

Get case records pending raffling

Retrieve case records currently in the for_raffling status, used to populate the raffling dashboard queue.

Request

GET
/api/dashboard/for-raffling
curl https://your-domain.com/api/dashboard/for-raffling \
  -H "Accept: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}"

Response

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "case_number": "2026-CIV-000045",
      "case_title": "JUAN DELA CRUZ VS. PEDRO SANTOS",
      "status": "for_raffling",
      "court_station_id": "5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9a0b"
    }
  ]
}

Was this page helpful?