# API Audit Summary

## Audit Notes
- Source route utama: app/Config/Routes.php mengaktifkan legacy auto routing dan route eksplisit `POST api/jatelindo/va`.
- Seluruh endpoint API yang terbukti ditemukan berasal dari app/Controllers/Api.php.
- Filter global auth tidak ditemukan di app/Config/Filters.php; auth API dilakukan manual di Api::initController() lewat header custom token.
- CSRF global tidak aktif pada source yang diaudit.
- Tidak ditemukan controller lain yang mengembalikan JSON atau API; folder AJAX Endpoints tidak dibuat karena source yang ada hanya Api.php.

## Totals
- Total endpoint API teridentifikasi: 31
- Endpoint public: 7
- Endpoint butuh token header token: 24
- Endpoint perlu verifikasi manual: 4

## Endpoint Groups
### Auth
- `POST /api/auth` | auth: `public`
- `POST /api/auth2` | auth: `public`

### Master
- `GET /api/petugas/{id}` | auth: `token`
- `GET /api/jenisagunan` | auth: `token`
- `GET /api/product` | auth: `token`
- `GET /api/jenisangsuran` | auth: `token`
- `GET /api/jenisbunga` | auth: `token`

### Anggota
- `GET /api` | auth: `public`
- `GET /api/anggota/{id}` | auth: `token`
- `POST /api/pendaftarananggota` | auth: `public`

### Simpanan
- `GET /api/simpanan/{id}` | auth: `token`
- `GET /api/ceksimpanan/{id}` | auth: `token`
- `GET /api/mutasisimpanan/{id}` | auth: `token`
- `POST /api/setorsimpanan` | auth: `public` | note: perlu verifikasi manual: token check is disabled in _setortariksimpanan.
- `POST /api/tariksimpanan` | auth: `public` | note: perlu verifikasi manual: token check is disabled in _setortariksimpanan.
- `POST /api/transfer` | auth: `token`

### Pembiayaan
- `GET /api/getPinjaman/{agt_num}` | auth: `token`
- `GET /api/pinjaman/{id}` | auth: `token`
- `GET /api/cekpinjaman/{id}` | auth: `token`
- `POST /api/angsuranpembiayaan` | auth: `token`
- `GET /api/gettagihan/{id}` | auth: `token`
- `GET /api/gettagihanangsuran/{norekening}/{angsranke}` | auth: `token`
- `GET /api/gettagihansingle/{norekening}/{angsranke}` | auth: `token` | note: perlu verifikasi manual: Core_model::_get_pembiayaan_single() is missing in source.
- `POST /api/rekeningpinjaman` | auth: `token`
- `POST /api/angsuranmulti` | auth: `token`
- `POST /api/angsuranpembiayaan_mobile` | auth: `token`
- `GET /api/mutasiangsuran/{id}` | auth: `token`

### PPOB
- `POST /api/transaksippob` | auth: `token`
- `POST /api/topupvirtualaccount` | auth: `token`
- `POST /api/reservalppob` | auth: `token` | note: perlu verifikasi manual: col_name in PPOB log uses $$emp_name.

### Jatelindo VA
- `POST /api/jatelindo/va` | auth: `public` | note: Jatelindo VA JSON v1.5, alias `H2H92`, ID Institusi `214`.

## Manual Verification
- `POST /api/setorsimpanan`: perlu verifikasi manual: token check is disabled in _setortariksimpanan.
- `POST /api/tariksimpanan`: perlu verifikasi manual: token check is disabled in _setortariksimpanan.
- `GET /api/gettagihansingle/{norekening}/{angsranke}`: perlu verifikasi manual: Core_model::_get_pembiayaan_single() is missing in source.
- `POST /api/reservalppob`: perlu verifikasi manual: col_name in PPOB log uses $$emp_name.

## Files Generated
- `postman/devapi.postman_collection.json`
- `postman/devapi.postman_environment.json`
- `postman/API_AUDIT_SUMMARY.md`

## Jatelindo VA Curl
```bash
curl -X POST "{{base_url}}/api/jatelindo/va" \
  -H "Content-Type: application/json" \
  -d @postman/jatelindo-va/inquiry-success.json

curl -X POST "{{base_url}}/api/jatelindo/va" \
  -H "Content-Type: application/json" \
  -d @postman/jatelindo-va/payment-success.json

curl -X POST "{{base_url}}/api/jatelindo/va" \
  -H "Content-Type: application/json" \
  -d @postman/jatelindo-va/advice-success.json
```
