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

# Aplikasi KYC Shopify - Verifikasi Identitas & Usia

> Aplikasi Shopify dari Didit untuk verifikasi identitas dan usia saat checkout. Tanpa coding, mulai $0.33 per cek KYC penuh, gratis $10/bulan.

Tambahkan verifikasi identitas Didit dan pembatasan usia ke toko Shopify Anda dalam hitungan menit.
Aplikasi Shopify **Didit Verify** memasang blok tema yang dapat Anda letakkan di halaman mana pun (akun, checkout, atau halaman landing kustom) dan membuat sesi verifikasi di sisi server. Kunci API Anda tetap berada di dalam aplikasi tertanam dan tidak pernah terekspos ke etalase toko.
Hasil verifikasi muncul langsung di tab **Verifikasi** dalam aplikasi di admin Shopify Anda tanpa memerlukan backend terpisah. Hasil tersebut juga tersedia melalui [webhook](https://docs.didit.me/id/integration/webhooks.md) dan [Didit API](https://docs.didit.me/id/sessions-api/retrieve-session.md) bagi merchant yang menjalankan backend sendiri.
Anda tidak perlu masuk ke Didit Business Console untuk mengakses data verifikasi yang dikumpulkan melalui Shopify.

## Prasyarat

* Toko Shopify (paket apa pun)
* Akun [Didit Console](https://business.didit.me) dengan setidaknya satu alur kerja

***

### Langkah 1: Pasang aplikasi

1. Buka tautan pemasangan:

   [[https://admin.shopify.com/oauth/install?client\_id=cafa0d15227fb59bd47470b23eae7469](https://admin.shopify.com/oauth/install?client_id=cafa0d15227fb59bd47470b23eae7469)](https://admin.shopify.com/oauth/install?client_id=cafa0d15227fb59bd47470b23eae7469)

2. Pilih toko Anda (jika Anda memiliki beberapa toko)

3. Klik **Install** untuk menambahkan aplikasi ke toko Anda

> [!NOTE]
>
> Aplikasi meminta satu cakupan izin, yaitu `read_customers`, yang digunakan untuk mengisi detail terlebih dahulu dan memeriksa silang detail hanya ketika **Allow customer-approved prefill** diaktifkan dan pelanggan yang login memilih kotak centang berbagi yang bersifat opsional.

***

### Langkah 2: Konfigurasi kredensial Didit Anda

Setelah pemasangan, Didit Verify terbuka di dalam admin Shopify. Gunakan **Pengaturan** untuk menghubungkan aplikasi ke akun Didit Anda.

#### Dapatkan Kunci API Anda

1. Masuk ke [Didit Business Console](https://business.didit.me)
2. Buka **API & Webhook** di sidebar kiri
3. Salin kunci API Anda

![Cara mendapatkan kunci API dari Didit Business Console](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-api-key.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=9027ca685cc296a400e78d320a566453)

4. Tempelkan kunci API ke kolom **Didit API Key** di preferensi Shopify

#### Dapatkan ID Alur Kerja Anda

1. Di Didit Business Console, buka **Alur kerja**
2. Pilih alur kerja yang ingin Anda gunakan (atau buat yang baru)
3. Salin **ID Alur Kerja** (UUID seperti `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)

![Cara mendapatkan ID Alur Kerja dari Didit Business Console](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-workflow-id.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=529dc681169efc0a6cdc96d6c0e0a605)

4. Tempelkan ID Alur Kerja ke kolom **Didit Workflow ID**

#### Simpan Pengaturan Anda

Pilih periode retensi di bawah **Retensi data** sebelum menyimpan.
Periode ini berlaku untuk verifikasi toko yang telah dilakukan maupun yang akan datang, jadi pilih durasi yang dibutuhkan toko Anda.
Klik **Save Settings**.
Anda akan melihat pesan sukses:

![Pengaturan Shopify berhasil disimpan](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-settings-saved-successfuly.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=93dcf3469f902876ae831075da75a628)

***

### Langkah 3: Tambahkan tombol verifikasi ke tema Anda

1. Di admin Shopify Anda, buka **Online Store** → **Themes**
2. Klik **Sesuaikan** pada tema aktif Anda
3. Buka halaman tempat Anda ingin menampilkan tombol verifikasi (misalnya halaman Akun atau halaman kustom)
4. Klik **Tambah bagian** atau **Add block**
5. Buka tab **Aplikasi**
6. Pilih **Didit Verify**

Tombol verifikasi akan muncul di tema Anda. Anda dapat menyeretnya untuk mengubah posisinya di dalam bagian tersebut.

***

## Mengakses data verifikasi

Tinjauan aplikasi Shopify (persyaratan 5.1.5) mewajibkan data yang dikumpulkan melalui alur yang di-host Shopify dapat diakses merchant **dalam konteks admin atau aplikasi Shopify** - tidak hanya di dasbor eksternal.
Aplikasi Didit Verify memenuhi persyaratan ini secara bawaan: tidak diperlukan backend, penerima webhook, atau UI kustom.

### Tab Verifications (bawaan, tanpa kode)

Buka **Aplikasi** → **Didit Verify** → **Verifications** di admin Shopify Anda untuk melihat setiap sesi verifikasi yang dikumpulkan melalui toko online Anda - status, pelanggan, negara, dan stempel waktu - yang dibatasi untuk toko Anda.
Pilih sesi untuk melihat ringkasan keputusan, kolom identitas, pemeriksaan verifikasi individual, peringatan, dan bukti yang tersedia.
Anda dapat berpindah antara **Pengaturan**, **Verifikasi**, **Privasi**, dan **Human review** tanpa keluar dari admin Shopify.
Menyimpan pengaturan membuat tab-tab ini tetap tersedia.

> [!NOTE]
>
> Tab Verifications hanya memuat data ketika Anda membuka aplikasi dari admin Shopify. Jika Anda melihat pesan yang meminta Anda membuka ulang halaman, kembali ke **Aplikasi** → **Didit Verify** dari sidebar admin Shopify.

Didit Business Console (`business.didit.me`) adalah antarmuka admin terpisah untuk konfigurasi (kunci API, alur kerja, tujuan webhook).
Jangan instruksikan merchant untuk menggunakannya guna melihat data verifikasi yang dikumpulkan melalui Shopify - hal itu tidak memenuhi persyaratan akses data Shopify.
Console hanya diperlukan untuk penyiapan awal dan pengambilan kredensial.

### Untuk merchant yang menjalankan backend sendiri (opsional)

Jika Anda memiliki backend sendiri dan ingin menyimpan salinan data verifikasi di sana - misalnya untuk memicu logika pemenuhan pesanan - Didit juga mengirimkan hasil melalui webhook dan API sesuai permintaan, selain tab Verifications di atas.

**1. Sesi verifikasi dibuat**

Aplikasi Shopify membuat sesi di sisi server menggunakan kunci API Didit Anda. Pelanggan menyelesaikan alur verifikasi di blok tema (modal atau tertanam).

**2. Hasil dikirim melalui webhook**

Ketika sesi mencapai status terminal, Didit mengirim webhook `status.updated` yang ditandatangani ke tujuan yang Anda konfigurasi di Didit Business Console pada **API & Webhooks**.
Isi webhook menyertakan [objek keputusan](https://docs.didit.me/id/integration/webhooks.md#struktur-payload) lengkap - skema yang sama dengan yang dikembalikan oleh `GET /v3/session/{id}/decision/` - untuk status `Approved`, `Declined`, `In Review`, dan `Abandoned`.
Status terminal lainnya (misalnya `Expired`, `Kyc Expired`) hanya mengirimkan perubahan status tanpa payload keputusan; panggil API untuk memeriksa status sesi.

**3. Ambil sesuai permintaan (opsional)**

Backend Anda juga dapat memanggil [`GET /v3/session/{sessionId}/decision/`](https://docs.didit.me/id/sessions-api/retrieve-session) kapan saja untuk mengambil payload keputusan lengkap (kolom identitas, liveness, AML, Pencocokan Wajah, dan lainnya).

#### Mengonfigurasi webhook untuk Shopify

1. Di [Didit Business Console](https://business.didit.me), buka **API & Webhooks** → **Webhooks**
2. Buat tujuan webhook yang mengarah ke endpoint backend Anda (HTTPS, dapat dijangkau publik)
3. Berlangganan minimal event `status.updated` dan `data.updated`
4. Simpan `secret_shared_key` yang dikembalikan untuk memverifikasi tanda tangan HMAC-SHA256 pada webhook masuk

Lihat [panduan Webhook](https://docs.didit.me/id/integration/webhooks.md) untuk kontrak lengkap, contoh verifikasi tanda tangan dalam Node.js/Python/PHP, dan perilaku coba lagi.

#### Mengambil keputusan sesi melalui API

```bash theme={null}
curl https://verification.didit.me/v3/session/<SESSION_ID>/decision/ \
  -H "x-api-key: <YOUR_API_KEY>"
```

Respons menyertakan `session_kind`, `status`, dan semua array fitur (`id_verifications`, `liveness_checks`, `face_matches`, `aml_screenings`, dll.). Lihat [Retrieve Session](https://docs.didit.me/id/sessions-api/retrieve-session.md) untuk skema respons lengkap dan referensi kolom.

***

## Opsi konfigurasi

### Pengaturan halaman preferensi

Pengaturan ini dikonfigurasi di preferensi aplikasi (dapat diakses dari **Aplikasi** → **Didit Verify** di admin Shopify Anda):

| Pengaturan | Deskripsi |
| - | - |
| **Kunci API** | Kunci API Didit Anda (wajib) |
| **ID Alur Kerja** | Alur verifikasi yang akan digunakan (wajib) |
| **Data Vendor** | Cara sesi ditautkan ke pengguna di Didit Console Anda: **ID pelanggan** (dikirim sebagai `shopify-<customer-id>`), **Email pelanggan**, **Toko + ID pelanggan** (dikirim sebagai `<shop-domain>-<customer-id>`), atau **Tidak ada**. Hanya diterapkan ketika pelanggan sudah login. |
| **URL callback** | URL opsional tempat pengguna dialihkan setelah verifikasi. Didit menambahkan `verificationSessionId` dan `status` sebagai parameter query. |
| **Metode callback** | Perangkat mana yang menangani pengalihan: **Default (pemulai)**, **Pemulai**, **Penyelesai**, atau **Keduanya** |
| **Bahasa** | Bahasa antarmuka verifikasi (deteksi otomatis atau bahasa tertentu) |
| **Wajibkan login pelanggan** | Jika diaktifkan, hanya pelanggan yang sudah login yang dapat melakukan verifikasi |
| **Izinkan pengisian awal yang disetujui pelanggan** | Tampilkan kotak centang opsional untuk membagikan nama, email, telepon, dan alamat pelanggan yang sudah login untuk pengisian awal dan pemeriksaan identitas. Detail hanya dikirim ketika pelanggan memilihnya. |
| **Hapus secara otomatis setelah (hari)** | Pilih berapa lama toko membutuhkan catatan verifikasi. Periode yang dipilih berlaku untuk catatan yang sudah ada dan yang akan datang dari toko ini. Penghapusan tidak dapat dibatalkan. |

### Pilihan privasi pelanggan

Blok toko online menawarkan kotak centang opsional untuk membagikan detail akun guna pengisian awal dan pemeriksaan identitas.
Jika tidak dicentang, pelanggan dapat memasukkan detailnya sendiri.

Di bawah **Pilihan verifikasi**, pelanggan yang sudah login dapat meminta peninjauan manual atau menarik persetujuan dan meminta penghapusan data verifikasinya.
Permintaan peninjauan manual menghentikan sementara verifikasi otomatis dan menambahkan permintaan ke **Aplikasi → Didit Verify → Human review**.
Hubungi pelanggan dan atur alternatif yang sesuai sebelum menyelesaikan permintaan tersebut.
Menyelesaikan permintaan peninjauan manual tidak menyetujui verifikasi atau pembelian.

Penarikan persetujuan langsung menghentikan tautan verifikasi yang ada dan mencegah verifikasi baru selama penghapusan sedang diproses.
Toko online mengonfirmasi bahwa permintaan telah diterima; toko online tidak menyatakan bahwa penghapusan sudah selesai.

## Memenuhi permintaan privasi

Buka **Aplikasi → Didit Verify → Privasi** untuk melacak ekspor pelanggan dan permintaan penghapusan yang diterima dari Shopify atau etalase toko.

* **Ekspor pelanggan:** Unduh ZIP yang sudah disiapkan, berikan melalui proses dukungan pelanggan Anda yang aman, lalu pilih **I have delivered this export**.
* **Penghapusan pelanggan:** Permintaan tetap dalam proses hingga catatan verifikasi terkait toko pelanggan, file yang diunggah, dan permintaan peninjauan manual telah dihapus.
* **Memerlukan perhatian:** Ikuti instruksi pada permintaan untuk mengatasi ID pelanggan yang hilang, atau hubungi dukungan Didit jika profil berisi data dari toko lain atau untuk tujuan lain.

Ekspor berisi catatan verifikasi, file yang diunggah, dan permintaan peninjauan manual yang terkait dengan toko dan pelanggan yang meminta.
Unduhan sementara kedaluwarsa setelah tujuh hari; gunakan **Coba lagi setelah menyelesaikan masalah** untuk menyiapkan unduhan baru jika diperlukan.
Ekspor yang sudah diunduh harus ditangani sesuai prosedur dukungan pelanggan dan perlindungan data Anda sendiri.

Atur periode retensi di **Pengaturan → Retensi data**.
Data verifikasi yang lebih lama dihapus secara otomatis; verifikasi yang lebih baru tetap tersedia.
Retensi tingkat aplikasi yang ada tetap berlaku jika periode khusus toko belum dipilih.
Periksa **Privasi** untuk permintaan retensi yang memerlukan perhatian.

Setelah permintaan penghapusan menampilkan **Dihapus**, penghapusan bersifat permanen dan media yang dihapus tidak lagi tersedia.
Kredit yang sudah digunakan dan entri daftar blokir yang dikelola secara terpisah tidak terpengaruh.

## Pengaturan Blok Tema

Pengaturan ini dikonfigurasi di editor tema Shopify saat Anda memilih blok Didit Verify:

#### Koneksi

| Pengaturan | Deskripsi |
| - | - |
| **Mode** | **Alur kerja aplikasi** (direkomendasikan) menggunakan alur kerja yang disimpan di pengaturan aplikasi. **Alur kerja UniLink** menggunakan tautan alur kerja publik dari akun Didit yang terhubung. Kedua mode membuat sesi yang terkait toko dengan hasil yang tersedia di aplikasi. |
| **UniLink URL** | Hanya digunakan dalam mode UniLink. Gunakan tautan aktif dari akun Didit yang terhubung di pengaturan aplikasi. Pelanggan harus masuk ke akun toko mereka. |

#### Tampilan

| Pengaturan | Deskripsi |
| - | - |
| **Display Mode** | **Modal** - membuka verifikasi dalam overlay pop-up. **Embedded** - menampilkan verifikasi secara inline di bawah tombol. |
| **Show close button** | Tampilkan/sembunyikan tombol X untuk menutup modal verifikasi |
| **Exit confirmation dialog** | Minta pengguna untuk mengonfirmasi sebelum menutup verifikasi |
| **Auto-close on completion** | Tutup modal secara otomatis saat verifikasi selesai |
| **Debug logging** | Aktifkan log konsol browser untuk pemecahan masalah |

#### Tampilan Tombol

| Pengaturan | Deskripsi |
| - | - |
| **Teks tombol** | Teks yang ditampilkan pada tombol (default: "Verify your Identity") |
| **Success text** | Teks yang ditampilkan setelah verifikasi berhasil (default: "Identity Verified ✓") |
| **Warna latar belakang** | Warna latar belakang tombol |
| **Text color** | Warna teks tombol |
| **Radius border** | Tingkat kelengkungan sudut tombol (0–50px) |
| **Padding vertikal** | Padding atas/bawah (0–40px) |
| **Horizontal padding** | Padding kiri/kanan (0–60px) |
| **Font size** | Ukuran teks tombol (10–32px) |

***

## Pengaturan yang Direkomendasikan

Untuk sebagian besar toko, kami merekomendasikan:

* **Mode:** Alur kerja aplikasi (menggunakan alur kerja yang disimpan di pengaturan aplikasi)
* **Display Mode:** Modal (berfungsi di semua kondisi, tanpa masalah tata letak)
* **Require Customer Login:** Diaktifkan (menautkan verifikasi ke akun pelanggan)
* **Allow customer-approved prefill:** Diaktifkan (pelanggan memilih apakah akan membagikan detail toko mereka)

***

## Pengujian

1. Pratinjau tema Anda atau kunjungi toko Anda
2. Buka halaman dengan tombol Didit Verify
3. Klik **Verify your Identity**
4. Selesaikan alur verifikasi
5. Periksa backend Anda untuk pengiriman webhook, atau panggil [GET /v3/session/{id}/decision/](https://docs.didit.me/id/sessions-api/retrieve-session.md) untuk mengambil hasil verifikasi

> [!NOTE]
>
> Sandbox gratis (setiap aplikasi sandbox dapat membuat 500 sesi uji setiap 24 jam), sehingga Anda dapat menguji seluruh alur tanpa biaya. Dalam mode live, paket Gratis menyertakan kredit senilai \$10 per bulan.

***

## Pemecahan masalah

### Tombol tidak melakukan apa pun saat diklik

* Pastikan Anda sudah menyimpan kunci API dan ID alur kerja di preferensi
* Periksa bahwa ID alur kerja berasal dari aplikasi yang sama dengan kunci API Anda
* Aktifkan **Debug logging** di pengaturan blok dan periksa konsol browser untuk melihat error

### Error "Didit credentials not configured"

* Aplikasi tidak memiliki kunci API atau ID alur kerja yang tersimpan untuk toko ini. Buka **Apps** → **Didit Verify**, isi kedua kolom, lalu klik **Save Settings**

### "Anda harus masuk untuk memverifikasi identitas Anda"

* **Require Customer Login** diaktifkan (default). Pelanggan harus masuk ke akun toko mereka terlebih dahulu, atau nonaktifkan pengaturan ini di preferensi aplikasi jika Anda memerlukan verifikasi tamu

### Pengaturan tidak dapat disimpan

* "API key validation failed" - salin ulang kunci API dari [Didit Business Console](https://business.didit.me) dan pastikan tidak ada spasi tambahan
* "This workflow does not belong to your application" - ID alur kerja berasal dari aplikasi Didit yang berbeda dengan kunci API Anda; salin keduanya dari aplikasi yang sama

## Dukungan (24/7)

Tim kami siap membantu Anda memulai.

> [card] [Email](mailto:hello@didit.me)
>
> Kirim email kepada kami di [hello@didit.me](mailto:hello@didit.me).


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