> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Status Pemantauan Transaksi: Referensi Transaksi & Kasus

> Referensi status transaksi, kasus, dan travel rule Didit beserta transisi dan artinya. 1,000 transaksi/bulan termasuk, lalu $0.001 per transaksi.

Transaction Monitoring memiliki tiga mesin status terpisah: **transaksi**, setiap **kasus**, dan (jika berlaku) **pemeriksaan Travel Rule**. Halaman ini adalah referensinya.

## Status transaksi

Ditetapkan saat pembuatan dan diperbarui selama siklus hidupnya.

| Status | Arti |
| - | - |
| `APPROVED` | Transaksi lolos semua aturan di bawah ambang tinjauan. |
| `IN_REVIEW` | Skor melewati ambang tinjauan, atau aturan secara eksplisit mewajibkan tinjauan. Perlu perhatian analis. |
| `DECLINED` | Skor melewati ambang penolakan, atau aturan secara eksplisit menolak. Transaksi ditolak. |
| `AWAITING_USER` | Pengguna harus bertindak sebelum transaksi dapat diselesaikan. Didit hanya menetapkannya melalui aturan: tindakan `change_status` pada aturan Anda (misalnya aturan pustaka opt-in `travel-rule-pending-action`, yang terpicu pada transfer Travel Rule dalam `ON_HOLD`), atau tindakan aturan yang mewajibkan verifikasi tambahan (sesi remediasi telah dibuat). Transfer Travel Rule yang memerlukan bukti kepemilikan dompet tidak menetapkannya dengan sendirinya: transaksi tetap mempertahankan status yang diberikan aturan Anda (biasanya `APPROVED`), dan blok `action_required` memuat URL kepemilikan dompet setiap kali sesi widget sedang menunggu. Baca blok `action_required` pada transaksi untuk mengetahui tindakan dan URL yang tepat. |

### Transisi

```mermaid theme={null}
stateDiagram-v2
    [*] --> APPROVED: Score < review threshold, no blocking rules
    [*] --> IN_REVIEW: Score >= review threshold
    [*] --> DECLINED: Score >= decline threshold, or rule decline action
    [*] --> AWAITING_USER: Rule action change_status → AWAITING_USER
    IN_REVIEW --> APPROVED: Analyst cleared
    IN_REVIEW --> DECLINED: Analyst declined
    AWAITING_USER --> APPROVED: Remediation session approved
    AWAITING_USER --> DECLINED: Remediation session declined
    AWAITING_USER --> IN_REVIEW: Remediation session ended in review
```

Catatan: di luar Travel Rule, tidak ada transisi langsung dari `APPROVED` atau `DECLINED` kembali ke status lain.
Saat Travel Rule kedaluwarsa, `timeout_outcome` Anda menetapkan `IN_REVIEW` (`HOLD`) atau `DECLINED` (`REJECT`) apa pun status saat ini, dan aturan yang terpicu setelah transisi Travel Rule dapat mengubah transaksi `APPROVED`.
Gunakan patch status melalui konsol untuk koreksi; perubahan tersebut dicatat di jejak audit.

## Alert

Tidak ada status alert terpisah.
Alert yang terbuka adalah transaksi dalam `IN_REVIEW` atau `AWAITING_USER`, jadi gunakan status transaksi di atas.
Lihat [Alert](https://docs.didit.me/id/transaction-monitoring/alerts.md).

## Status kasus

Lihat [Manajemen Kasus](https://docs.didit.me/id/console/case-management/cases.md) untuk detail lengkap.

| Status | Arti |
| - | - |
| `OPEN` | Sedang dalam investigasi aktif. |
| `AWAITING_USER` | Menunggu masukan dari sisi pengguna. |
| `RESOLVED` | Ditutup dengan resolusi: `FALSE_POSITIVE`, `VALID_THREAT`, `INCONCLUSIVE`, `REQUIREMENTS_NOT_MET` atau `REQUIREMENTS_SATISFIED`. |

Kasus memiliki **prioritas** terpisah (`LOW`, `MEDIUM`, `HIGH`).

## Status pemeriksaan Travel Rule

Transfer aset virtual berdasarkan FATF Travel Rule menjalankan **pertukaran 13 status** khusus, terpisah dari status transaksi di atas.
Transfer keluar dimulai pada `AWAITING_COUNTERPARTY`, `NOT_APPLICABLE` (di bawah `threshold_amount`), `UNCONFIRMED_OWNERSHIP` (dompet pihak lawan dinyatakan swakelola), `COMPLETED` atau `COUNTERPARTY_MISMATCHED_DATA` (kecocokan `INTERNAL` pada dompet terverifikasi, bergantung pada kecocokan nama), `COUNTERPARTY_VASP_NOT_FOUND`, atau `COUNTERPARTY_VASP_NOT_REACHABLE`.
Transfer masuk juga dapat dimulai pada `ON_HOLD` atau `NOT_ENOUGH_COUNTERPARTY_DATA`, dan pendaftaran sunrise yang cocok dengan dompet terverifikasi, dengan nama penerima yang cocok atau tidak ada, langsung melewati `COMPLETED` menuju `FINISHED`.
Pertukaran berakhir di `FINISHED`, `CANCELLED`, atau `EXPIRED`.

| Status | Arti |
| - | - |
| `AWAITING_COUNTERPARTY` | Dikirim ke pihak lawan; menunggu responsnya. Transfer yang dikirim melalui TRUST tetap di status ini hingga kedaluwarsa, karena TRUST tidak mengirim kembali apa pun yang dapat dibaca Didit. Dalam aplikasi sandbox, transfer dikirim ke [Didit Test VASP](https://docs.didit.me/id/transaction-monitoring/travel-rule-sandbox.md), yang merespons di dalam Didit dengan skenario yang Anda pilih. |
| `UNCONFIRMED_OWNERSHIP` | Kepemilikan dompet penerima belum terbukti. |
| `ON_HOLD` | Didit hanya menetapkannya pada transfer masuk: pendaftaran sunrise atau kueri `TRP` masuk yang dompetnya tidak ada di buku alamat Anda (atau, untuk kueri yang hanya berisi nama, yang namanya tidak cocok dengan satu pemegang terverifikasi), atau kueri `TRP` masuk yang memerlukan keputusan manual Anda (terima otomatis nonaktif, atau balasan otomatis tidak dapat dikirim). Status ini tidak mengubah status transaksi dengan sendirinya; aturan pustaka opt-in `travel-rule-pending-action` menetapkan `AWAITING_USER`. Selesaikan dengan `POST /v3/transactions/{id}/travel-rule/ownership/`. |
| `COMPLETED` | Data pengirim dan penerima cocok - aman untuk disiarkan on-chain. |
| `FINISHED` | Hash on-chain telah dilaporkan; pertukaran ditutup. |
| `CANCELLED` | Dibatalkan dari status yang belum final. |
| `EXPIRED` | Batas waktu konfirmasi telah berlalu. Hanya transfer yang masih berada di `AWAITING_COUNTERPARTY` ketika batas waktunya tercapai yang akan kedaluwarsa; pemeriksaan dilakukan setiap 15 menit. Status lainnya tidak pernah terkena batas waktu. `timeout_outcome` Anda diterapkan pada transaksi, dan perubahan tersebut tidak mengirim webhook `transaction.status.updated`. |
| `COUNTERPARTY_MISMATCHED_DATA` | Nama penerima tidak cocok. |
| `COUNTERPARTY_VASP_NOT_FOUND` | Tidak ada jalur yang dapat menemukan pihak lawan. |
| `COUNTERPARTY_VASP_NOT_REACHABLE` | Pihak lawan teridentifikasi, tetapi Didit tidak dapat mengirim: endpoint `TRP`-nya tidak dapat dijangkau atau melaporkan LEI yang berbeda atau tidak ada, atau nama yang berbeda, atau jalur jaringan (GTR, TRUST, VerifyVASP, Sygna Bridge) tidak dapat mengirim pesan. |
| `COUNTERPARTY_VASP_GENERAL_DECLINE` | Pihak lawan menolak pertukaran. |
| `NOT_ENOUGH_COUNTERPARTY_DATA` | Kueri `TRP` masuk tidak mengidentifikasi penerima baik dengan nama maupun alamat dompet. Status ini tidak memiliki batas waktu, dan endpoint kepemilikan tidak dapat menyelesaikannya, jadi batalkan dengan `action: "cancel"`; pengirim tidak diberi tahu. Didit tidak pernah menetapkannya pada transfer keluar; status ini hanya muncul di sana jika Anda mencatatnya sendiri, dan Anda dapat mencoba ulang transfer tersebut dengan `action: "resend"`. |
| `NOT_APPLICABLE` | Di bawah `threshold_amount`, sehingga tidak ada yang dipertukarkan, atau nilai yang Anda catat pada transfer yang tidak dijalankan Didit (Travel Rule dinonaktifkan, transaksi yang tipenya bukan `travelRule`, atau nilai lama). |

Integrasi lama mungkin masih mengirim nilai lama `UNKNOWN`, `COMPLIANT`, `PENDING_ACTION`, `PENDING_COUNTERPARTY`, `FAILED`, dan `EXEMPT`; Didit memetakannya ke status di atas secara otomatis.

Lihat [Travel Rule](https://docs.didit.me/id/transaction-monitoring/travel-rule.md#siklus-hidup) untuk referensi resmi.

## Status hasil penyedia

Setiap hasil dari penyedia eksternal (skrining dompet, pemantauan fiat, skrining sanksi) disimpan dengan statusnya sendiri. Status ini ditampilkan di `provider_results[]` dalam respons transaksi.

| Status | Keterangan |
| - | - |
| `PENDING` | Kueri ke penyedia sedang berjalan. |
| `COMPLETED` | Hasil berhasil dikembalikan. |
| `FAILED` | Penyedia mengalami error atau waktu habis. |
| `SKIPPED` | Penyedia sengaja dilewati (misalnya, transaksi di bawah ambang batas). |

## Hasil eksekusi aturan

Setiap `TransactionRuleRun` memiliki:

* `matched` (boolean): apakah aturan terpicu?
* `is_test` (boolean): apakah aturan berada dalam mode TEST?
* `mode`: `ACTIVE`, `DISABLED`, `TEST` pada saat evaluasi.
* `score_delta`: kontribusi terhadap skor (jika cocok dan aktif).
* `status_target`: status yang diminta aturan (jika tindakan `change_status`).

Lihat [Aturan](https://docs.didit.me/id/transaction-monitoring/rules.md) untuk anatomi aturan.

## Kode alasan keputusan

Nilai `reason` yang umum pada transisi status:

| Alasan | Keterangan |
| - | - |
| `rule_score_threshold` | Skor melewati ambang batas peninjauan/penolakan. |
| `rule_change_status` | Tindakan `change_status` pada aturan memaksa suatu status. |
| `analyst_approved` / `analyst_declined` / `analyst_cleared` | Tindakan manual oleh analis. |
| `user_action_approved` / `user_action_declined` / `user_action_in_review` | Hasil dari sesi remediasi yang terkait (tindakan pengguna yang diminta saat `AWAITING_USER`). |
| `provider_update` | Penyedia eksternal memperbarui hasil. |
| `aml_confirmed_sanction` | Skrining AML mengonfirmasi kecocokan sanksi. |
| `blocklist_applicant` / `blocklist_counterparty` | Penegakan daftar blokir terhadap suatu pihak. |

## Langkah berikutnya

> [card] [Penilaian risiko](https://docs.didit.me/id/transaction-monitoring/risk-scoring.md)
>
> Cara skor dipetakan ke status.

> [card] [Alert](https://docs.didit.me/id/transaction-monitoring/alerts.md)
>
> Siklus hidup alert.

> [card] [Kasus](https://docs.didit.me/id/transaction-monitoring/cases.md)
>
> Siklus hidup kasus.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.