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 asservice_type_code;service_typein 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
classificationisJuridicalorGovernment 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_jdris 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.
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
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
}
}
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
codeof an existing case category.
- Name
case_type- Type
- string
- Description
The
codeof an existing case type.
- Name
court_level- Type
- string
- Description
The
codeof an existing court level.
- Name
court_station- Type
- string
- Description
The
codeof an existing court station.
- Name
court_type- Type
- string
- Description
The
codeof 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
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"
}
}
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
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"
}
}
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
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 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
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."
}
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
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"
}
]
}
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
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 case records pending raffling
Retrieve case records currently in the for_raffling status, used to populate the raffling dashboard queue.
Request
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"
}
]
}