{
    "info": {
        "_postman_id": "tirta-ulul-albab-3-api-v1",
        "name": "Tirta Ulul Albab 3 - Mobile REST API (V1)",
        "description": "Koleksi API resmi untuk Aplikasi Mobile & Pelanggan UPAB Pesantren Ulul Albab Cabang 3, Komplek Bumi Agnes Nanjung, Desa Sangkanhurip, Kec. Katapang, Kab. Bandung.\n\n### Panduan Otorisasi:\n1. Jalankan request **Login Fleksibel**.\n2. Token akan otomatis tersimpan ke variable collection `bearer_token` oleh skrip pengujian Postman.\n3. Request pada Folder 2, 3, 4, dan 5 akan langsung bisa digunakan tanpa copy-paste manual.",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
    },
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "token",
                "value": "{{bearer_token}}",
                "type": "string"
            }
        ]
    },
    "variable": [
        {
            "key": "base_url",
            "value": "https://ula-water.epraja.net/api/v1",
            "type": "string"
        },
        {
            "key": "bearer_token",
            "value": "",
            "type": "string"
        },
        {
            "key": "customer_id",
            "value": "1",
            "type": "string"
        },
        {
            "key": "zone_id",
            "value": "1",
            "type": "string"
        },
        {
            "key": "category_id",
            "value": "1",
            "type": "string"
        }
    ],
    "item": [
        {
            "name": "1. Autentikasi & Akun Profil (Semua Role)",
            "item": [
                {
                    "name": "Login Fleksibel (Email / HP / No. Pelanggan / Username)",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "var jsonData = pm.response.json();",
                                    "if (jsonData.data && jsonData.data.token) {",
                                    "    pm.collectionVariables.set(\"bearer_token\", jsonData.data.token);",
                                    "    console.log(\"Bearer token automatically saved to collection variable:\", jsonData.data.token);",
                                    "}"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"login_id\": \"nurbaeti@gmail.com\",\n    \"password\": \"password\",\n    \"device_name\": \"Mobile Android \\/ iOS\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/auth/login",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "auth",
                                "login"
                            ]
                        },
                        "description": "Login universal untuk Warga, Petugas Catat Meter, maupun Admin Kasir.\nToken otomatis tersimpan ke variabel `{{bearer_token}}` saat login berhasil.\n\nContoh akun warga demo:\n- Email / No. Pelanggan: `nurbaeti@gmail.com` / `PDAM-2026-0003`\n- Password: `password`"
                    }
                },
                {
                    "name": "Aktivasi Akun Mandiri (Warga Terdaftar)",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "var jsonData = pm.response.json();",
                                    "if (jsonData.data && jsonData.data.token) {",
                                    "    pm.collectionVariables.set(\"bearer_token\", jsonData.data.token);",
                                    "    console.log(\"Bearer token automatically saved to collection variable:\", jsonData.data.token);",
                                    "}"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"customer_number\": \"PDAM-2026-0001\",\n    \"email\": \"warga@agnesnanjung.id\",\n    \"phone\": \"081234567890\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/auth/activate",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "auth",
                                "activate"
                            ]
                        }
                    }
                },
                {
                    "name": "Pendaftaran Pasang Baru Mandiri",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"name\": \"Bpk. Hendra Wijaya\",\n    \"nik\": \"3204123456780001\",\n    \"email\": \"hendra@gmail.com\",\n    \"phone\": \"08122334455\",\n    \"address\": \"Komplek Bumi Agnes Nanjung Blok C2 No. 12\",\n    \"category_id\": 1,\n    \"zone_id\": 1,\n    \"pipe_size\": \"1\\/2 Inch\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/auth/register",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "auth",
                                "register"
                            ]
                        }
                    }
                },
                {
                    "name": "Get Profil User Login (Me)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/auth/me",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "auth",
                                "me"
                            ]
                        }
                    }
                },
                {
                    "name": "Update Profil User",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"name\": \"Hendra Wijaya, S.T.\",\n    \"phone\": \"08122334455\",\n    \"email\": \"hendra.wijaya@gmail.com\",\n    \"address\": \"Komplek Bumi Agnes Nanjung Blok C2 No. 12\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/auth/profile",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "auth",
                                "profile"
                            ]
                        }
                    }
                },
                {
                    "name": "Ganti Kata Sandi (Update Password)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"current_password\": \"password123\",\n    \"password\": \"passwordBaru2026\",\n    \"password_confirmation\": \"passwordBaru2026\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/auth/password",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "auth",
                                "password"
                            ]
                        }
                    }
                },
                {
                    "name": "Logout Mobile",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/auth/logout",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "auth",
                                "logout"
                            ]
                        }
                    }
                }
            ]
        },
        {
            "name": "2. Role: Pengguna (Warga / Konsumen Air)",
            "item": [
                {
                    "name": "Dashboard Warga (Tagihan Aktif, Kualitas Air & Pengaduan)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/customer/dashboard?year=2026&month=9",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customer",
                                "dashboard"
                            ]
                        }
                    }
                },
                {
                    "name": "Daftar Tagihan Rekening Warga",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/customer/bills?status=Unpaid",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customer",
                                "bills"
                            ],
                            "query": [
                                {
                                    "key": "status",
                                    "value": "Unpaid",
                                    "description": "Unpaid, Paid, all"
                                },
                                {
                                    "key": "year",
                                    "value": "2026"
                                },
                                {
                                    "key": "month",
                                    "value": "9"
                                }
                            ]
                        }
                    }
                },
                {
                    "name": "Detail Tagihan & Rincian Kuitansi",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/customer/bills/1",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customer",
                                "bills",
                                "1"
                            ]
                        }
                    }
                },
                {
                    "name": "Pembayaran Tagihan Mandiri (Upload Bukti Transfer Bank)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "payment_method",
                                    "value": "Transfer Bank",
                                    "type": "text"
                                },
                                {
                                    "key": "notes",
                                    "value": "Transfer Mandiri Ref 88992211",
                                    "type": "text"
                                },
                                {
                                    "key": "proof",
                                    "type": "file",
                                    "description": "Foto bukti transfer rekening bank"
                                }
                            ]
                        },
                        "url": {
                            "raw": "{{base_url}}/customer/bills/1/pay",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customer",
                                "bills",
                                "1",
                                "pay"
                            ]
                        }
                    }
                },
                {
                    "name": "Info Periode Stand Meter Mandiri Bulan Ini",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/customer/meter/current-period?year=2026&month=9",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customer",
                                "meter",
                                "current-period"
                            ]
                        }
                    }
                },
                {
                    "name": "Catat Meter Mandiri Warga (+ Upload Foto Meteran)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "current_meter",
                                    "value": "58.5",
                                    "type": "text"
                                },
                                {
                                    "key": "period_year",
                                    "value": "2026",
                                    "type": "text"
                                },
                                {
                                    "key": "period_month",
                                    "value": "9",
                                    "type": "text"
                                },
                                {
                                    "key": "notes",
                                    "value": "Kondisi meteran jelas terbaca",
                                    "type": "text"
                                },
                                {
                                    "key": "photo",
                                    "type": "file",
                                    "description": "Foto angka meter air"
                                }
                            ]
                        },
                        "url": {
                            "raw": "{{base_url}}/customer/meter/record",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customer",
                                "meter",
                                "record"
                            ]
                        }
                    }
                },
                {
                    "name": "Riwayat Pembacaan Meter Air Warga",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/customer/meter/history",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customer",
                                "meter",
                                "history"
                            ]
                        }
                    }
                },
                {
                    "name": "Daftar Pengaduan Gangguan Warga",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/customer/complaints",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customer",
                                "complaints"
                            ]
                        }
                    }
                },
                {
                    "name": "Kirim Pengaduan Gangguan (+ Foto Bukti)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "category",
                                    "value": "Pipa Bocor",
                                    "type": "text"
                                },
                                {
                                    "key": "location",
                                    "value": "Komplek Bumi Agnes Blok C No. 12",
                                    "type": "text"
                                },
                                {
                                    "key": "description",
                                    "value": "Pipa sambungan depan rumah ada rembesan.",
                                    "type": "text"
                                },
                                {
                                    "key": "photo",
                                    "type": "file",
                                    "description": "Foto kondisi kebocoran"
                                }
                            ]
                        },
                        "url": {
                            "raw": "{{base_url}}/customer/complaints",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customer",
                                "complaints"
                            ]
                        }
                    }
                },
                {
                    "name": "Detail & Timeline Tiket Pengaduan",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Authorization",
                                "value": "Bearer {{bearer_token}}",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/customer/complaints/1",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customer",
                                "complaints",
                                "1"
                            ]
                        }
                    }
                }
            ]
        },
        {
            "name": "3. Role: Petugas Pencatatan & Lapangan (Merangkap Kasir / Admin)",
            "item": [
                {
                    "name": "Dashboard Progres Petugas (Statistik & Zonasi)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/officer/dashboard?year=2026&month=9",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "dashboard"
                            ]
                        }
                    }
                },
                {
                    "name": "Daftar Pelanggan Zonasi (Filter Belum Tercatat)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/officer/customers?year=2026&month=9&status_filter=unrecorded",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "customers"
                            ],
                            "query": [
                                {
                                    "key": "year",
                                    "value": "2026"
                                },
                                {
                                    "key": "month",
                                    "value": "9"
                                },
                                {
                                    "key": "status_filter",
                                    "value": "unrecorded",
                                    "description": "all, recorded, unrecorded"
                                },
                                {
                                    "key": "zone_id",
                                    "value": "1",
                                    "description": "Filter ID zonasi"
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Cari nama/no pelanggan/alamat"
                                }
                            ]
                        }
                    }
                },
                {
                    "name": "Info Stand Meter Awal Pelanggan",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/officer/customers/1/meter?year=2026&month=9",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "customers",
                                "1",
                                "meter"
                            ]
                        }
                    }
                },
                {
                    "name": "Input Stand Meter Pelanggan di Lapangan (+ Foto Meteran)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "customer_id",
                                    "value": "1",
                                    "type": "text"
                                },
                                {
                                    "key": "customer_number",
                                    "value": "PDAM-2026-0001",
                                    "type": "text"
                                },
                                {
                                    "key": "current_meter",
                                    "value": "152.0",
                                    "type": "text"
                                },
                                {
                                    "key": "period_year",
                                    "value": "2026",
                                    "type": "text"
                                },
                                {
                                    "key": "period_month",
                                    "value": "9",
                                    "type": "text"
                                },
                                {
                                    "key": "notes",
                                    "value": "Bpk. Hendra (Petugas Lapangan)",
                                    "type": "text",
                                    "description": "Nama petugas pencatat stand meter"
                                },
                                {
                                    "key": "photo",
                                    "type": "file",
                                    "description": "Foto fisik meteran air"
                                }
                            ]
                        },
                        "url": {
                            "raw": "{{base_url}}/officer/meters/record",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "meters",
                                "record"
                            ]
                        },
                        "description": "Mencatat angka stand meter dan otomatis menerbitkan tagihan rekening air dengan aturan pembulatan 500."
                    }
                },
                {
                    "name": "Info Periode Stand Meter Bulan Ini",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/officer/meter/current-period?year=2026&month=9",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "meter",
                                "current-period"
                            ]
                        }
                    }
                },
                {
                    "name": "Riwayat Pembacaan Stand Meter Pelanggan",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/officer/meters/history?customer_number=PDAM-2026-0001",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "meters",
                                "history"
                            ],
                            "query": [
                                {
                                    "key": "customer_number",
                                    "value": "PDAM-2026-0001",
                                    "description": "Nomor Pelanggan atau biarkan kosong untuk semua"
                                },
                                {
                                    "key": "year",
                                    "value": "2026"
                                },
                                {
                                    "key": "month",
                                    "value": "9"
                                }
                            ]
                        }
                    }
                },
                {
                    "name": "Daftar Tagihan Rekening Warga / Pelanggan (Kasir / Petugas)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/officer/bills?status=Unpaid&search=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "bills"
                            ],
                            "query": [
                                {
                                    "key": "status",
                                    "value": "Unpaid",
                                    "description": "Unpaid, Paid, all"
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Cari nama / nomor pelanggan / invoice"
                                },
                                {
                                    "key": "year",
                                    "value": "2026"
                                },
                                {
                                    "key": "month",
                                    "value": "9"
                                }
                            ]
                        }
                    }
                },
                {
                    "name": "Detail Tagihan & Rincian Kuitansi",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/officer/bills/1",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "bills",
                                "1"
                            ]
                        }
                    }
                },
                {
                    "name": "Pembayaran Tagihan / Pelunasan Kasir Lapangan",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "payment_method",
                                    "value": "Tunai (Petugas Lapangan)",
                                    "type": "text"
                                },
                                {
                                    "key": "notes",
                                    "value": "Dibayarkan langsung ke petugas di lokasi warga",
                                    "type": "text"
                                },
                                {
                                    "key": "proof",
                                    "type": "file",
                                    "description": "Foto bukti penyerahan uang/transfer (opsional)"
                                }
                            ]
                        },
                        "url": {
                            "raw": "{{base_url}}/officer/bills/1/pay",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "bills",
                                "1",
                                "pay"
                            ]
                        },
                        "description": "Memproses pelunasan rekening air di lapangan oleh petugas, mencatat transaksi keuangan kas masuk."
                    }
                },
                {
                    "name": "Daftar Pengaduan Gangguan Warga (Tiket Masuk)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/officer/complaints?status=all&search=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "complaints"
                            ],
                            "query": [
                                {
                                    "key": "status",
                                    "value": "all",
                                    "description": "all, Pending, Investigating, Resolved"
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Cari tiket / nama pelapor / lokasi"
                                }
                            ]
                        }
                    }
                },
                {
                    "name": "Kirim / Buat Pengaduan Gangguan Lapangan (+ Foto Bukti)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "category",
                                    "value": "Pipa Bocor",
                                    "type": "text"
                                },
                                {
                                    "key": "location",
                                    "value": "Komplek Bumi Agnes Blok C No. 12",
                                    "type": "text"
                                },
                                {
                                    "key": "description",
                                    "value": "Ditemukan kebocoran pipa utama saat petugas patroli.",
                                    "type": "text"
                                },
                                {
                                    "key": "photo",
                                    "type": "file",
                                    "description": "Foto bukti gangguan pipa"
                                }
                            ]
                        },
                        "url": {
                            "raw": "{{base_url}}/officer/complaints",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "complaints"
                            ]
                        }
                    }
                },
                {
                    "name": "Detail & Timeline Tiket Pengaduan",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/officer/complaints/1",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "complaints",
                                "1"
                            ]
                        }
                    }
                },
                {
                    "name": "Update Status & Tindak Lanjut Pengaduan Petugas TRC",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"status\": \"Resolved\",\n    \"resolution_notes\": \"Pipa sambungan bocor telah diperbaiki dan diganti klem baru oleh petugas.\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/officer/complaints/1/status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "officer",
                                "complaints",
                                "1",
                                "status"
                            ]
                        },
                        "description": "Memperbarui status tiket penanganan gangguan (Pending / Investigating / Resolved / Closed) dan menambahkan catatan penyelesaian teknis."
                    }
                }
            ]
        },
        {
            "name": "4. Role: Admin Kasir (Loket Pembayaran & Keuangan)",
            "item": [
                {
                    "name": "Dashboard Kasir (Penerimaan Hari Ini & Total Tertunggak)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cashier/dashboard",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cashier",
                                "dashboard"
                            ]
                        }
                    }
                },
                {
                    "name": "Cari Tagihan Pelanggan (Input No. Pelanggan / Nama / No. Meter)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cashier/bills?customer_number=PDAM-2026-0001&status=Unpaid",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cashier",
                                "bills"
                            ],
                            "query": [
                                {
                                    "key": "customer_number",
                                    "value": "PDAM-2026-0001",
                                    "description": "Nomor Pelanggan (contoh: PDAM-2026-0001)"
                                },
                                {
                                    "key": "status",
                                    "value": "Unpaid",
                                    "description": "Unpaid, Paid, all"
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Cari nama, no pelanggan, no meter, no invoice",
                                    "disabled": true
                                },
                                {
                                    "key": "year",
                                    "value": "2026",
                                    "disabled": true
                                },
                                {
                                    "key": "month",
                                    "value": "9",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Admin kasir memasukkan nomor pelanggan untuk menampilkan seluruh daftar tagihan yang belum lunas."
                    }
                },
                {
                    "name": "Detail Tagihan & Kuitansi (Input No. Pelanggan / ID Tagihan)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cashier/bills/PDAM-2026-0001",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cashier",
                                "bills",
                                "PDAM-2026-0001"
                            ]
                        },
                        "description": "Melihat rincian tagihan aktif pelanggan (bisa menggunakan No. Pelanggan, No. Invoice, atau ID Tagihan)."
                    }
                },
                {
                    "name": "Proses Pelunasan Tagihan Kasir Loket (Cetak Slip Pembayaran)",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"payment_method\": \"Tunai (Kasir)\",\n    \"amount_received\": 60000,\n    \"notes\": \"Pembayaran tunai di loket utama UPAB\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/cashier/bills/PDAM-2026-0001/pay",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cashier",
                                "bills",
                                "PDAM-2026-0001",
                                "pay"
                            ]
                        },
                        "description": "Memproses pelunasan kasir (URL bisa ID Tagihan atau No. Pelanggan), mencatat mutasi kas masuk, menghitung kembalian, dan otomatis menerbitkan struktur slip kuitansi siap cetak (receipt_slip)."
                    }
                },
                {
                    "name": "Riwayat Transaksi & Mutasi Kas Masuk Kasir",
                    "request": {
                        "auth": {
                            "type": "bearer",
                            "bearer": [
                                {
                                    "key": "token",
                                    "value": "{{bearer_token}}",
                                    "type": "string"
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cashier/transactions?date=2026-11-07",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cashier",
                                "transactions"
                            ],
                            "query": [
                                {
                                    "key": "date",
                                    "value": "2026-11-07",
                                    "description": "Filter tanggal transaksi"
                                }
                            ]
                        }
                    }
                }
            ]
        },
        {
            "name": "5. Master Data & Utilitas Publik",
            "item": [
                {
                    "name": "Daftar Zonasi Wilayah Pelayanan",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/zones",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "zones"
                            ]
                        }
                    }
                },
                {
                    "name": "Daftar Golongan Tarif Air & Komponen Biaya",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/categories",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "categories"
                            ]
                        }
                    }
                },
                {
                    "name": "Daftar Master Data Pelanggan Air (Search, Filter, Sort)",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/customers?status=Active&search=&sort_by=customer_number&sort_order=asc&per_page=20",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers"
                            ],
                            "query": [
                                {
                                    "key": "status",
                                    "value": "Active",
                                    "description": "Active, Suspended, Terminated, all"
                                },
                                {
                                    "key": "zone_id",
                                    "value": "{{zone_id}}",
                                    "description": "Filter ID zonasi wilayah",
                                    "disabled": true
                                },
                                {
                                    "key": "category_id",
                                    "value": "{{category_id}}",
                                    "description": "Filter ID golongan tarif",
                                    "disabled": true
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Cari nama, no pelanggan, no meter, no HP, NIK, alamat"
                                },
                                {
                                    "key": "sort_by",
                                    "value": "customer_number",
                                    "description": "customer_number, name, meter_number, status, installed_at"
                                },
                                {
                                    "key": "sort_order",
                                    "value": "asc",
                                    "description": "asc / desc"
                                },
                                {
                                    "key": "per_page",
                                    "value": "20",
                                    "description": "Jumlah baris per halaman"
                                }
                            ]
                        },
                        "description": "Mengambil daftar master data seluruh pelanggan air aktif di sistem lengkap dengan paginasi, zonasi, golongan tarif, dan akun mobile terhubung."
                    }
                },
                {
                    "name": "Generate No. Sambungan & No. Meter (Helper Pasang Baru)",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/customers/generate-number",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers",
                                "generate-number"
                            ]
                        },
                        "description": "Menghasilkan rekomendasi nomor sambungan otomatis (misal: PDAM-2026-0005) dan nomor seri meter (misal: MTR-92812) untuk form pasang baru."
                    }
                },
                {
                    "name": "Detail Master Data Pelanggan (ID / No Pelanggan / No Meter)",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/customers/{{customer_id}}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers",
                                "{{customer_id}}"
                            ]
                        },
                        "description": "Mengambil profil lengkap pelanggan, kategori tarif, zonasi, status, no meter, dan akun user terhubung berdasarkan ULID, nomor pelanggan, atau nomor meter."
                    }
                },
                {
                    "name": "Tambah Pelanggan Baru (Create Master Pelanggan)",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"name\": \"Bapak H. Ahmad Subagja\",\n    \"nik\": \"3204123456780001\",\n    \"phone\": \"081234567890\",\n    \"email\": \"ahmad.subagja@example.com\",\n    \"password\": \"password123\",\n    \"address\": \"Komplek Bumi Agnes Nanjung Blok D No. 12\",\n    \"zone_id\": \"{{zone_id}}\",\n    \"category_id\": \"{{category_id}}\",\n    \"customer_number\": \"PDAM-2026-0099\",\n    \"meter_number\": \"MTR-98765\",\n    \"initial_meter\": 0,\n    \"status\": \"Active\",\n    \"installed_at\": \"2026-11-07\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/customers",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers"
                            ]
                        },
                        "description": "Menambahkan data master pelanggan baru ke sistem. Jika customer_number dan meter_number tidak diisi, sistem otomatis mengenerate nomor unik. Akun login mobile warga juga otomatis dibuatkan agar warga dapat langsung login di aplikasi."
                    }
                },
                {
                    "name": "Update Data Pelanggan (Update Master Pelanggan)",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"name\": \"Bapak H. Ahmad Subagja, S.Pd\",\n    \"nik\": \"3204123456780001\",\n    \"phone\": \"081234567890\",\n    \"email\": \"ahmad.subagja@example.com\",\n    \"address\": \"Komplek Bumi Agnes Nanjung Blok D No. 12 (Renovasi Samping)\",\n    \"zone_id\": \"{{zone_id}}\",\n    \"category_id\": \"{{category_id}}\",\n    \"status\": \"Active\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/customers/{{customer_id}}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers",
                                "{{customer_id}}"
                            ]
                        },
                        "description": "Memperbarui master data pelanggan. Data nama, telepon, dan email otomatis disinkronkan ke akun mobile yang terhubung."
                    }
                },
                {
                    "name": "Hapus Data Pelanggan (Delete / Soft Delete)",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/customers/{{customer_id}}?force=false",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers",
                                "{{customer_id}}"
                            ],
                            "query": [
                                {
                                    "key": "force",
                                    "value": "false",
                                    "description": "Set true jika ingin memaksa hapus meski ada riwayat tagihan."
                                }
                            ]
                        },
                        "description": "Menghapus data pelanggan (soft delete). Jika masih ada tagihan belum lunas, sistem akan menolak penghapusan demi keamanan akuntansi kecuali parameter force=true disertakan."
                    }
                },
                {
                    "name": "Cek Tagihan Pelanggan Bebas Token (Publik / Loket Cepat)",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/bills/check/PDAM-2026-0001",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "bills",
                                "check",
                                "PDAM-2026-0001"
                            ]
                        },
                        "description": "Mengecek nilai tagihan rekening aktif pelanggan hanya dengan nomor pelanggan (PDAM-2026-0001) atau nomor seri meter tanpa perlu login / token."
                    }
                },
                {
                    "name": "Kalkulasi Estimasi Tarif (Simulasi Kubikasi dengan Pembulatan 500)",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"category_id\": 1,\n    \"volume\": 25.5\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/tariffs/calculate",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "tariffs",
                                "calculate"
                            ]
                        }
                    }
                },
                {
                    "name": "Status Pasokan Air & Mutu Laboratorium WTP",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/water-status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "water-status"
                            ]
                        }
                    }
                },
                {
                    "name": "Pengaturan Rekening Bank & Info Pembayaran Resmi",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json",
                                "type": "text"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/settings/payment",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "settings",
                                "payment"
                            ]
                        }
                    }
                }
            ]
        }
    ]
}