API Documentation (Inferred from Logs)
This document outlines the API endpoints, methods, and payloads observed in the provided logs for api.knzonline.com.
Base URL
https://api.knzonline.com/api/v1
Account
Get Account Info
Retrieves information for the currently authenticated account.
- Method:
GET - Endpoint:
/account - Headers:
{
"accept": "application/json"
}Example Response (200 SUCCESS):
{ "data": { "id": "cmcldixxd0001ov145caraimj", "nama": "KNZ OFFICIAL", "email": "[email protected]", "jenisPengguna": "KANTOR", "KelompokPengguna": { "id": 1, "nama": "Super Admin", "warna": "red", "akses": [ { "id": 1213, "izin": "TUGAS", "status": true }, { "id": 1214, "izin": "MENGATUR_TUGAS", "status": true }, { "id": 1215, "izin": "SURAT_BERKAS_UMUM", "status": true }, { "id": 1218, "izin": "PELANGGAN", "status": true }, { "id": 1223, "izin": "PERMOHONAN", "status": true } ] } } }
Orders (Permohonan)
Get Order List
Retrieves a paginated list of orders. Supports pagination, sorting, and searching.
Method:
GETEndpoint:
/office/admin/orderQuery Parameters:
page(number): The page number to retrieve (e.g.,1).size(number): The number of items per page (e.g.,10).sort(string): The field to sort by (e.g.,tanggal).direction(string): The sort direction (e.g.,desc).search(string): The search term (e.g.,818,KNZ,DALAM_PROSES).by(string): The field to search by (e.g.,nomor,nama,status).
Example Request (Search by nomor):
GET /api/v1/office/admin/order?page=1&size=10&sort=tanggal&direction=desc&search=818&by=nomor
Example Response (200 SUCCESS):
{ "data": [ { "id": "cmhaectpd00a5pl8g00lvrrwb", "nomor_permohonan": 818, "pemohonId": "cmgi4gbuf0079lu1so5eepyqa", "layananId": 60, "status": "DALAM_PROSES", "ownerId": "cmcldixxd0001ov145caraimj", "petugasId": "cmcjzdsed000bl71hbmsax05r", "pemohon": { "nama_lengkap": "Faris Balatif, S.T Qq BM BSI KCP Stabat" }, "layanan": { "kelompok": "NOTARIS", "nama": "AKAD BANK SYARIAH INDONESIA (BSI)" }, "tagihan": { "status": "BELUM_LUNAS" }, "PermohonanIdentitas": [], "owner": { "status": "NONAKTIF", "nama": "KNZ OFFICIAL", "telepon": "8116787893" } } ], "meta": { "page": 1, "size": 10, "total": 1, "totalPages": 1 } }
Get Single Order
Retrieves the details for a specific order by its ID.
Method:
GETEndpoint:
/office/admin/order/{id}Example Request:
GET /api/v1/office/admin/order/cmgam31ek00pppk1s2vghchde
Example Response (200 SUCCESS):
{ "message": "Data berhasil ditemukan", "data": { "id": "cmgam31ek00pppk1s2vghchde", "nomor_permohonan": 696, "pemohonId": "cmdpxxand0001lp1kk0nobrpo", "layananId": 2, "status": "DALAM_PROSES", "petugasId": "cmcjzbt4s0007l71h36wpyw5k", "PermohonanIdentitas": [ { "identitasId": "cmgamao9a00pzpk1ssci55xks", "identitas": { "id": "cmgamao9a00pzpk1ssci55xks", "nik": "1205095806830003", "nama_lengkap": "ASMARANI" }, "peran": "PIHAK_PERTAMA" }, { "identitasId": "cmgamcggo00q1pk1s3862mgar", "identitas": { "id": "cmgamcggo00q1pk1s3862mgar", "nik": "1205092707990016", "nama_lengkap": "AZHAR" }, "peran": "PIHAK_KEDUA" } ], "tugasPermohonan": [ { "id": 1462, "nama": "MEMERIKSA KEABSAHAN DOKUMEN", "statusTugas": "SELESAI", "pelaksanaId": "cmcjz6et60003l71h0f2qefat" }, { "id": 1463, "nama": "KONSEP AKTA", "statusTugas": "SELESAI", "pelaksanaId": "cmcjzbt4s0007l71h36wpyw5k" } ] } }
Create New Order
Creates a new order with associated tasks, fees, and subjects.
Method:
POSTEndpoint:
/office/admin/orderHeaders:
{ "accept": "application/json", "content-type": "application/json" }Example Request Body:
{ "layanan": 6, "penghadap": [ { "identitasId": "cmha0knmh003apl8gjpd4u7wy", "peran": "PIHAK_PERTAMA" }, { "identitasId": "cmha0jheg0038pl8gglw30oyo", "peran": "PIHAK_PERTAMA" }, { "identitasId": "cmha0hec70036pl8g1pb6128b", "peran": "PIHAK_KEDUA" } ], "pemohon": "cmha0m4tr003cpl8golnb1yts", "petugas": "cmcjz6et60003l71h0f2qefat", "alasan_hak": "CONTOH DASAR PENUGASAN", "bentukHukum": "PERJANJIAN KAWIN", "status": "MENUNGGU_DISETUJUI", "berkas": [ { "id": 18, "nama": "KTP Calon Suami dan Istri", "keterangan": "KTP yang masih berlaku", "scan": true, "pernyataan": true, "pelayananId": 6 }, { "id": 19, "nama": "Kartu Keluarga", "keterangan": "Kartu Keluarga", "scan": true, "pernyataan": true, "pelayananId": 6 } ], "biaya": [ { "id": 98, "nama": "CONTOH BIAYA", "nominal": 1000000, "layananId": 6 }, { "nama": "Pajak PPh", "nominal": null }, { "nama": "Pajak BPHTB", "nominal": null } ], "tugas": [ { "id": 25, "nama": "Mendengarkan keterangan para pihak", "layananId": 6 }, { "id": 26, "nama": "Memberikan penjelasan hukum...", "layananId": 6 } ], "tenggat_waktu": "2025-10-29T10:25:26.090Z", "created_at": "2025-10-29T10:25:26.090Z", "tagihan": { "siklus": 1, "jangka_waktu": 30, "tenggat_waktu": "2025-11-27", "status": "BELUM_LUNAS" }, "objekPajak": [ { "letakObjek": "TERISI", "luasTanah": 1945, "luasBangunan": 1945, "harga": 1945, "njop": 1945, "nop": "1945", "ssp": "2025-10-07T17:00:00.000Z", "ssb": "2025-10-07T17:00:00.000Z" } ] }Example Response (200 SUCCESS):
{ "message": "Berhasil menambahkan permohonan", "data": { "permohonan": { "id": "cmhafaqx300agpl8gc5oia5lr", "pemohonId": "cmha0m4tr003cpl8golnb1yts", "layananId": 6, "alasan_hak": "CONTOH DASAR PENUGASAN", "bentukHukum": "PERJANJIAN KAWIN", "status": "MENUNGGU_DISETUJUI", "ownerId": "cmcldixxd0001ov145caraimj", "petugasId": "cmcjz6et60003l71h0f2qefat" } } }
Update Order Detail
Updates the core details of an order, such as the applicant (pemohon).
Method:
PATCHEndpoint:
/office/admin/order/{id}/detailHeaders:
{ "accept": "application/json", "content-type": "application/json" }Example Request Body:
{ "pemohon": { "id": "cmha0knmh003apl8gjpd4u7wy", "pemilikId": null, "penulisId": "cmcldixxd0001ov145caraimj", "nik": "12050948046500001", "nama_lengkap": "WAGINEM", "status": "TERVERIFIKASI", "created_at": "2025-10-28T03:35:35.322Z", "updated_at": "2025-10-28T03:35:35.322Z", "kartuId": "cmha0knma0039pl8gez6vz1bh", "penulis": { "id": "cmcldixxd0001ov145caraimj", "nama": "KNZ OFFICIAL", "email": "[email protected]" }, "pemilik": null } }Example Response (200 SUCCESS):
{ "message": "Permohonan updated successfully", "data": { "id": "cmhafaqx300agpl8gc5oia5lr", "pemohonId": "cmha0knmh003apl8gjpd4u7wy", "status": "MENUNGGU_DISETUJUI", "pemohon": { "id": "cmha0knmh003apl8gjpd4u7wy", "nama_lengkap": "WAGINEM", "nik": "12050948046500001" } } }
Update Order Subjects (Identitas)
Updates the list of subjects (penghadap or identities) associated with an order.
Method:
PUTEndpoint:
/office/admin/order/{id}/subjectHeaders:
{ "accept": "application/json", "content-type": "application/json" }Example Request Body:
{ "penghadap": [ { "identitasId": "cmha0knmh003apl8gjpd4u7wy", "identitas": { "id": "cmha0knmh003apl8gjpd4u7wy", "nik": "12050948046500001", "nama_lengkap": "WAGINEM", "status": "TERVERIFIKASI" }, "peran": "PIHAK_PERTAMA" }, { "identitasId": "cmha0hec70036pl8g1pb6128b", "identitas": { "id": "cmha0hec70036pl8g1pb6128b", "nik": "1205091710830001", "nama_lengkap": "ATHERI", "status": "TERVERIFIKASI" }, "peran": "PIHAK_KEDUA" } ] }Example Response (200 SUCCESS):
{ "message": "Subjects berhasil diperbarui" }
Update Order Tasks
Updates the list of tasks for an order. Can be used to add or remove tasks.
Method:
PUTEndpoint:
/office/admin/order/{id}/taskHeaders:
{ "accept": "application/json", "content-type": "application/json" }Example Request Body (Adding a task):
json{ "tugas": [ { "id": 2120, "nama": "Mendengarkan keterangan para pihak", "permohonanId": "cmhafaqx300agpl8gc5oia5lr", "statusTugas": "BELUM_DIMULAI" }, { "id": 2121, "nama": "Memberikan penjelasan hukum terkait perjanjian kawin", "permohonanId": "cmhafaqx300agpl8gc5oia5lr", "statusTugas": "BELUM_DIMULAI" }, { "nama": "CONTOH TAMBAH TUGAS", "tenggat_waktu": "2025-10-29" } ] }Example Response (200 SUCCESS):
json{ "message": "Tasks berhasil diperbarui" }
Update Order Fees
Updates the list of fees (biaya) for an order.
Method:
PUTEndpoint:
/office/admin/order/{id}/feeHeaders:
json{ "accept": "application/json", "content-type": "application/json" }Example Request Body:
json{ "biaya": [ { "id": 1273, "nama": "CONTOH BIAYA", "nominal": 1000000, "tagihanId": 415 }, { "id": 1274, "nama": "Pajak PPh", "nominal": 0, "tagihanId": 415 } ] }Example Response (200 SUCCESS):
json{ "message": "Fees berhasil diperbarui" }
Add File/Document (Berkas) to Order
Adds a new file/document registry entry to a specific order.
Method:
POSTEndpoint:
/office/admin/order/{id}/registryHeaders:
json{ "accept": "application/json", "content-type": "application/json" }Example Request Body:
json{ "nama": "CONTOH BERKAS", "keterangan": "CONTOH BERKAS", "scan": true, "pernyataan": true, "JenisBerkas": "MASUK" }Example Response (200 SUCCESS):
json{ "message": "Tasks berhasil diperbarui.", "data": { "id": 2382, "nama": "CONTOH BERKAS", "keterangan": "CONTOH BERKAS", "status": "KOSONG", "JenisBerkas": "MASUK", "permohonanId": "cmhafaqx300agpl8gc5oia5lr", "updatedAt": "2025-10-28T10:34:09.459Z", "createdAt": "2025-10-28T10:34:09.459Z", "authorId": "cmcldixxd0001ov145caraimj" } }
Delete Order
Deletes an order and optionally its related invoices (tagihan) and documents (berkas).
Method:
DELETEEndpoint:
/office/admin/order/{id}Query Parameters:
tagihan(boolean): Whether to delete associated invoices (e.g.,true).berkas(boolean): Whether to delete associated documents (e.g.,true).
Example Request:
DELETE /api/v1/office/admin/order/cmhafaqx300agpl8gc5oia5lr?tagihan=true&berkas=true
Example Response (200 SUCCESS):
json{ "message": "Permohonan berhasil dihapus beserta data terkait" }
Users
Get Users by Role
Retrieves a list of all users, seemingly filterable by role (though no role is specified in the log).
Method:
GETEndpoint:
/office/admin/user/role/Headers:
json{ "accept": "application/json" }Example Response (200 SUCCESS):
json{ "data": [ { "id": "cmcjz4sfd0001l71hxd9d0le3", "nama": "Ayu Tri Lestari, S.AB.", "email": "[email protected]", "telepon": "82251697237", "status": "NONAKTIF", "jenisPengguna": "KANTOR", "kelompokPenggunaId": 4, "profile": "cmfnnrnn50000o719u8xrtecc" }, { "id": "cmcjz6et60003l71h0f2qefat", "nama": "Tri Widya Agustin, SE", "email": "[email protected]", "telepon": "83169397623", "status": "NONAKTIF", "jenisPengguna": "KANTOR", "kelompokPenggunaId": 3 } ], "meta": { "page": 1, "size": 10, "total": 10, "totalPages": 1 } }
Services (Layanan)
Get Service List
Retrieves a list of available services.
Method:
GETEndpoint:
/office/admin/serviceQuery Parameters (Optional):
page(number): e.g.,1size(number): e.g.,10
Example Response (200 SUCCESS):
json{ "data": [ { "id": 2, "nama": "JUAL BELI", "keterangan": "Akta otentik untuk pengalihan hak milik...", "kelompok": "PPAT", "syaratBerkas": [ { "id": 4, "nama": "Sertifikat Asli", "scan": true, "pernyataan": true }, { "id": 7, "nama": "Bukti PBB Terakhir (khusus tanah dan bangunan)", "scan": true } ], "tugasLayanan": [ { "id": 212, "nama": "MEMERIKSA KEABSAHAN DOKUMEN" }, { "id": 213, "nama": "KONSEP AKTA" } ], "biayaLayanan": [], "permohonan": [ { "id": "cmd76gi88000hl01knvawas0c", "nomor_permohonan": 481, "status": "SELESAI" } ] }, { "id": 6, "nama": "PERJANJIAN KAWIN", "keterangan": "Akta yang mengatur harta benda...", "kelompok": "NOTARIS", "syaratBerkas": [ { "id": 18, "nama": "KTP Calon Suami dan Istri", "scan": true }, { "id": 19, "nama": "Kartu Keluarga", "scan": true } ], "tugasLayanan": [ { "id": 25, "nama": "Mendengarkan keterangan para pihak" } ], "biayaLayanan": [ { "id": 98, "nama": "CONTOH BIAYA", "nominal": 1000000 } ] } ] }
Get Service Detail
Retrieves the full details for a single service, including its required documents, tasks, and fees.
Method:
GETEndpoint:
/office/admin/service/{id}Example Request:
GET /api/v1/office/admin/service/6
Example Response (200 SUCCESS):
json{ "message": "Successfully retrieved service details", "data": { "id": 6, "nama": "PERJANJIAN KAWIN", "kelompok": "NOTARIS", "syaratBerkas": [ { "id": 18, "nama": "KTP Calon Suami dan Istri", "keterangan": "KTP yang masih berlaku", "scan": true, "pernyataan": true, "pelayananId": 6 }, { "id": 19, "nama": "Kartu Keluarga", "keterangan": "Kartu Keluarga", "scan": true, "pernyataan": true, "pelayananId": 6 } ], "tugasLayanan": [ { "id": 25, "nama": "Mendengarkan keterangan para pihak", "layananId": 6 }, { "id": 26, "nama": "Memberikan penjelasan hukum terkait perjanjian kawin", "layananId": 6 } ], "biayaLayanan": [ { "id": 98, "nama": "CONTOH BIAYA", "nominal": 1000000, "layananId": 6 } ] } }
Subjects (Identitas)
Get Subject List
Retrieves a list of subjects (identities).
Method:
GETEndpoint:
/office/admin/subjectHeaders:
json{ "accept": "application/json" }Example Response (200 SUCCESS):
json{ "message": "Berhasil mendapatkan daftar identitas", "data": [ { "id": "cmha0m4tr003cpl8golnb1yts", "pemilikId": null, "penulisId": "cmcldixxd0001ov145caraimj", "nik": "1205095203770001", "nama_lengkap": "MARDIANA", "status": "TERVERIFIKASI", "created_at": "2025-10-28T03:36:44.272Z", "kartuId": "cmha0m4tk003bpl8gqz4x7zxv", "penulis": { "id": "cmcldixxd0001ov145caraimj", "nama": "KNZ OFFICIAL", "email": "[email protected]" }, "pemilik": null }, { "id": "cmha0knmh003apl8gjpd4u7wy", "nik": "12050948046500001", "nama_lengkap": "WAGINEM", "status": "TERVERIFIKASI", ... } ] }
Registry (Berkas)
Delete Document (Berkas)
Deletes a single document/file (berkas) from the registry by its ID.
Method:
DELETEEndpoint:
/office/admin/registry/{id}Example Request:
DELETE /api/v1/office/admin/registry/2379
Example Response (200 SUCCESS):
json{ "message": "Registry entry with ID 2379 has been successfully deleted.", "data": { "id": 2379, "nama": "KTP Calon Suami dan Istri", "status": "KOSONG", "JenisBerkas": "MASUK", "createdAt": "2025-10-28T10:27:47.272Z" } }
Invitations
Check Invitation Status
Checks if an invitation for a subject ID is valid.
Method:
GETEndpoint:
/office/admin/invitation/check/{subjectId}Example Request:
GET /api/v1/office/admin/invitation/check/cmha0knmh003apl8gjpd4u7wy
Example Response (404 NOT FOUND):
(Note: This endpoint returned a 404 in the log, indicating the invitation was not found or expired.)
json{ "message": "Undangan tidak ditemukan atau sudah kedaluwarsa." }