> ## 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.

# Kunci API Terbatas - Akses API KYC Berlingkup

> Beri tiap layanan atau mitra kunci API Didit sendiri dengan akses terbatas: baca/tulis per resource, allowlist IP, kedaluwarsa, dan cabut instan.



Prompt kunci API dengan akses terbatas
        Salin prompt ke papan klip



      
      

\<pre>

\````# Goal - call Didit with a scoped API key

Every application has a primary secret with full access, and any number of named API keys.
A named key carries its own access: read or write per resource, optional limits, an optional IP allowlist and an optional expiry date.
Keys are created, edited, rotated and revoked in the Business Console (Developers -> API keys); there is no API to manage them.

\## Sending the key

\```bash
curl https://verification.didit.me/v3/session/$SESSION_ID/decision/ \
-H "x-api-key: $DIDIT_API_KEY"
\```

Read the key from an environment variable or a secrets manager, never from source code.

\## What each answer means

\| Status | Meaning |
\|---|---|
\| 401 | The key is missing, wrong, revoked or expired |
\| 403 | The key has no access to this resource or action, or the request came from an address outside its IP list |
\| 404 | The session is outside the key's workflows or statuses, so to this key it does not exist |

A key without media access receives decisions with every image, video and PDF URL set to null, and gets 403 on PDF reports.
A key without sessions write receives session_url and session_token as null.

\## Resources

sessions, decisions, media (read only), users, businesses, transactions, workflows, webhooks, applications, analytics (read only), api-keys.
Read covers GET requests, write covers POST, PUT, PATCH and DELETE.
Standalone checks (face match, ID verification, AML screening and the other /v3 standalone APIs) need sessions write.
Creating a person with send_verification_link: true (POST /v3/users/create/) needs users write and sessions write; without sessions write it answers 403 and nothing is created.

\## Limits

\- workflow_ids: only sessions of these workflows are visible, and sessions can only be created with them.
\- approved sessions only: declined, in-review and unfinished sessions are hidden.
\- A key with either limit cannot have access to users, businesses, transactions or analytics.

\## Rotation

Rotating a key returns a new secret once; the previous secret keeps working for 24 hours.````

\</pre>



      
      

Tempel ke

Setiap aplikasi dimulai dengan **rahasia utama** yang memiliki akses penuh ke semua yang dapat dilakukan aplikasi.
Anda dapat menambahkan **kunci API bernama** di samping rahasia utama, satu untuk setiap layanan atau mitra, masing-masing hanya dengan akses yang dibutuhkan.
Berikan kepada penyedia pencairan dana Anda kunci yang hanya dapat membaca sesi yang disetujui dari satu alur kerja dan tidak dapat mengubah apa pun, simpan kunci terpisah untuk backend Anda, dan cabut salah satunya tanpa memengaruhi yang lain.> [!NOTE]
>
> Kunci yang dibuat sebelum akses terbatas tersedia tetap memiliki akses penuh.
> Tidak ada perubahan untuk kunci tersebut sampai Anda mengedit aksesnya.***## Tempat menemukannyaDi [**Konsol Bisnis**](https://business.didit.me), pilih aplikasi Anda dan buka **Developers -> API keys**.Daftar ini menampilkan setiap kunci aplikasi beserta statusnya, jumlah permintaannya selama 30 hari terakhir, siapa yang membuatnya, aksesnya, dan kapan terakhir digunakan.
Klik kunci untuk melihat pratinjaunya di sebelah kanan, atau buka halaman lengkapnya untuk penggunaan, akses, permintaan terbaru, cuplikan panduan cepat, dan aktivitasnya.Kunci dimiliki oleh satu aplikasi dan hanya berfungsi untuk aplikasi tersebut.
Kunci mengikuti lingkungan aplikasinya: kunci dari aplikasi sandbox tidak pernah membuat verifikasi yang ditagih.***## URL pengalihan dan domain yang diizinkanBuka **Developers > API keys > Redirects and domains** untuk mengatur dua daftar bagi aplikasi dan lingkungan yang Anda pilih.| Daftar | Yang dikendalikannya |
| - | - |
| **URL pengalihan** | Tempat Didit mengarahkan browser setelah halaman verifikasi yang di-hosting selesai. URL harus cocok persis, termasuk path-nya. |
| **Domain yang diizinkan** | Origin (skema, host, dan port opsional, misalnya `https://app.example.com`) tempat alur verifikasi yang di-hosting boleh disematkan dan ke mana pengguna boleh diarahkan kembali. |Jika daftar **Domain yang diizinkan** berisi entri, [Buat sesi](https://docs.didit.me/id/sessions-api/create-session.md) menolak `callback` yang tidak termasuk salah satunya dengan galat `400`.
Daftar kosong berarti tidak ada pembatasan.
Panggilan server-ke-server tidak terpengaruh.***## Membuat kunci**1. Detail**Beri nama kunci sesuai layanan yang akan menggunakannya, lalu pilih kapan kunci itu kedaluwarsa: tidak pernah, dalam 30 hari, 90 hari, satu tahun, atau pada tanggal yang Anda pilih.
Kunci yang sudah kedaluwarsa berhenti berfungsi pada akhir hari tersebut, UTC.**2. Akses**Mulai dari preset, lalu sesuaikan per resource.
Kunci tidak akan pernah bisa melakukan lebih dari ini.**3. Tinjauan**Konsol menjelaskan secara rinci apa yang bisa dan tidak bisa dilakukan kunci tersebut, sebelum Anda membagikannya.**4. Kunci rahasia**Salin rahasia dan simpan di pengelola rahasia Anda.
Ini adalah satu-satunya saat rahasia lengkap ditampilkan.
Jika Anda kehilangannya, lakukan rotasi kunci untuk mendapatkan yang baru.### Preset| Preset | Akses |
| - | - |
| **Akses penuh** | Setiap resource, baca dan tulis, termasuk kunci API lainnya. Untuk backend Anda sendiri. |
| **Hanya baca** | Sesi dan keputusan, dengan media opsional. Tidak dapat membuat, mengubah, atau menghapus apa pun. Untuk mitra yang membutuhkan hasil. |
| **Kustom** | Anda memilih Tidak ada, Baca, atau Tulis untuk setiap resource. |### ResourceBaca mencakup permintaan `GET` pada suatu resource; tulis juga mencakup `POST`, `PUT`, `PATCH` dan `DELETE`.| Resource | Baca | Tulis |
| - | - | - |
| **Sesi** | Menampilkan daftar dan membuka sesi | Membuat, memperbarui, dan menghapus sesi, mengimpor sesi, serta menjalankan pemeriksaan mandiri (pencocokan wajah, verifikasi identitas, skrining AML, dan API mandiri lainnya) |
| **Keputusan** | Hasil, skor risiko, data yang diekstrak, dan riwayat skrining AML | Menyetujui, menolak, atau mengirim untuk peninjauan, serta mengubah status fitur dan temuan AML |
| **Media** | Gambar ID, swafoto, video, dan laporan PDF | - |
| **Orang** (`users`) | Pengguna akhir dan semua yang telah diverifikasi tentang mereka | Membuat, memperbarui, dan menghapus pengguna, serta pemantauannya. Membuat pengguna dengan tautan verifikasi juga memerlukan izin tulis **Sesi** |
| **Perusahaan** (`businesses`) | Profil bisnis, dokumennya, dan pemiliknya | Membuat, memperbarui, dan menghapus bisnis, serta pemantauannya |
| **Transaksi** | Transaksi, alert, aturan, event pemantauan, data Travel Rule, dan skrining dompet | Mengirim transaksi dan event, mengubah statusnya, serta mengelola pengaturan Travel Rule, buku alamat dompet, dan transfer |
| **Alur kerja** | Alur kerja, kuesioner, daftar, dan daftar blokir | Membuat dan mengubahnya |
| **Webhook** | Endpoint, dan pengiriman (dengan izin baca **Keputusan**, karena pengiriman membawa payload sesi yang dikirimnya) | Menambah, mengubah, dan menghapus endpoint, serta mengirim ulang pengiriman |
| **Pengaturan aplikasi** (`applications`) | Kustomisasi dan saldo | Mengubah kustomisasi dan mengisi saldo |
| **Analitik** | Metrik dan ekspor laporan | - |
| **Kunci API** | Dicadangkan untuk pengelolaan kunci | Dicadangkan untuk pengelolaan kunci |Kunci dengan akses kustom berfungsi di API publik: endpoint sesi, pengguna, bisnis, transaksi, alur kerja, dan webhook, serta pemeriksaan mandiri.
Endpoint yang hanya digunakan oleh Business Console mengembalikan `403` untuk kunci ini; endpoint tersebut memerlukan kunci akses penuh.Kunci tanpa izin baca **Media** menerima keputusan sesi dengan setiap URL gambar, video, dan PDF diatur ke `null`, dan endpoint laporan PDF mengembalikan `403`.
Kunci tanpa izin tulis **Sesi** tidak pernah menerima tautan verifikasi atau token sesi, karena siapa pun yang memegangnya dapat menyelesaikan verifikasi atas nama pengguna akhir: kolom tersebut dikembalikan sebagai `null`.
Dengan alasan yang sama, membuat pengguna dengan `send_verification_link: true` memerlukan izin tulis **Sesi** selain izin tulis **Orang**, karena panggilan itu membuat sesi dan mengirim tautannya melalui email.
Tanpa itu, panggilan mengembalikan `403` dan tidak membuat apa pun.### Batasan| Batasan | Fungsinya |
| - | - |
| **Alur kerja** | Kunci hanya melihat sesi dari alur kerja yang Anda pilih, dan hanya dapat membuat sesi dengan alur kerja tersebut. Sesi lain mengembalikan `404`, seolah-olah tidak ada. |
| **Hanya sesi yang disetujui** | Sesi yang ditolak, dalam peninjauan, dan belum selesai tetap tersembunyi dari kunci. |
| **Alamat IP** | Kunci hanya berfungsi dari alamat atau rentang CIDR yang Anda daftarkan (hingga 20, IPv4 atau IPv6). Permintaan dari alamat lain mengembalikan `403`. |
| **Kedaluwarsa** | Setelah tanggal ini, setiap permintaan dengan kunci mengembalikan `401`. |Kunci yang dibatasi pada alur kerja tertentu atau pada sesi yang disetujui berfungsi pada endpoint sesi, tempat batasan tersebut dapat diterapkan.
Kunci tidak dapat mengakses orang, perusahaan, transaksi, atau analitik, dan tidak dapat menjalankan pemeriksaan mandiri.***## Cara API merespons kunci dengan cakupan terbatas| Status | Arti |
| - | - |
| **401** | Kunci hilang, salah, dicabut, atau kedaluwarsa. |
| **403** | Kunci tidak memiliki akses ke resource atau tindakan ini, atau permintaan berasal dari alamat di luar daftar IP-nya. |
| **404** | Sesi berada di luar alur kerja atau status yang diizinkan bagi kunci. |Daftar sesi hanya mengembalikan sesi yang diizinkan oleh batasan kunci.***## Ubah aksesBuka menu kunci, pratinjaunya, atau halamannya, lalu pilih **Ubah akses**.
Ubah preset, resource, batasan, atau kedaluwarsa, lalu tinjau hanya yang berubah, sebelum dan sesudah.
Rahasia tetap sama sehingga tidak ada yang perlu di-deploy ulang, dan akses baru berlaku dalam satu menit.Rahasia utama selalu memiliki akses penuh dan tidak dapat diubah.***## Rotasi kunciMelakukan rotasi akan mengganti rahasia sebuah kunci.
Rahasia baru ditampilkan sekali, dan rahasia saat ini tetap berfungsi selama **24 jam** agar Anda dapat men-deploy yang baru tanpa waktu henti.
Setelah itu, setiap permintaan dengan rahasia lama mengembalikan `401`.Rahasia utama dirotasi dengan cara yang sama, dengan masa tumpang tindih 24 jam.***## Cabut kunciMencabut kunci menghentikannya seketika: setiap permintaan yang dibuat dengannya mengembalikan `401`.
Tindakan ini tidak dapat dibatalkan.
Rahasia utama tidak dapat dicabut; lakukan rotasi sebagai gantinya.***## Penggunaan dan jejak auditSetiap kunci menampilkan permintaannya selama 30 hari terakhir, tingkat kesalahan dan latensinya, serta permintaan terbarunya beserta kode statusnya, termasuk permintaan yang ditolak oleh batasannya.Setiap panggilan yang dibuat dengan kunci API muncul di [log audit](https://docs.didit.me/id/console/audit-logs.md) organisasi beserta nama kunci yang membuatnya.***## Siapa yang dapat mengelola kunciMengelola kunci API memerlukan izin **Kunci API**: baca untuk melihat kunci, tulis untuk membuat, mengedit, merotasi, dan mencabut kunci.
Lihat [Peran dan izin](https://docs.didit.me/id/console/roles-permissions.md).


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