Pusat Developer fio.js, API, dan Webhook

Dokumentasi untuk mengintegrasikan FACEIO ke dalam aplikasi web: buat aplikasi, muat fio.js, panggil enroll() atau authenticate(), lalu hubungkan endpoint REST API dan webhook saat backend Anda membutuhkannya.

Buat aplikasi di FACEIO Console, salin Public ID, konfigurasikan domain dan opsi keamanan, lalu tambahkan fio.js ke website atau aplikasi web Anda.

Mulai Cepat - Autentikasi Wajah

~ 5 menit

1 Buat Aplikasi Anda

Masuk ke FACEIO Console ↗ dan gunakan Application Wizard untuk membuat aplikasi. Pilih engine pengenalan, tambahkan domain tempat widget boleh berjalan, lalu salin Public ID yang ditampilkan di akhir.

Public ID terlihat seperti fioa1b2c3d4. Nilai ini aman digunakan di browser dan diperlukan saat membuat instance SDK.

2 Impor fio.js ke Situs Anda

Tambahkan container widget dan muat fio.js sebelum tag penutup </body> . Gunakan CDN resmi agar perbaikan sisi browser dan pembaruan keamanan diterima aplikasi tanpa redeploy.

index.html
HTML
<div id="faceio-modal"></div>
<script src="https://cdn.faceio.net/fio.js"></script>
Menggunakan bundler? Instal package NPM resmi ↗
npm i @faceio/fiojs

3 Buat instance faceIO Object

Buat satu instance faceIO dengan Public ID aplikasi Anda. Sediakan instance tersebut untuk bagian UI yang perlu melakukan enrollment atau authentication pengguna.

app.js
JavaScript
<script type="text/javascript">
  /* Buat instance fio.js dengan Public ID aplikasi Anda */
  const faceio = new faceIO("app-public-id");
</script>

4 Panggil Widget

Setelah fio.js dimuat dan instance faceIO() tersedia, panggil salah satu dari dua metode utama:

enroll()

Mendaftarkan pengguna baru dan mengembalikan Facial ID yang dapat Anda hubungkan ke record akun pengguna tersebut - Buka Dokumentasi →

authenticate()

Memverifikasi pengguna lama terhadap face index aplikasi Anda - Buka Dokumentasi →

app.js
JavaScript
<button onclick="enrollNewUser()">Enroll Pengguna Baru</button>
<button onclick="authenticateUser()">Authenticate Pengguna</button>

<script type="text/javascript">
  const faceio = new faceIO("app-public-id");

  function enrollNewUser() {
    // Memanggil faceio.enroll() memulai alur enrollment
  }

  function authenticateUser() {
    // Memanggil faceio.authenticate() memulai alur authentication
  }

  function handleError(errCode) {
    // Tangani error di sini
  }
</script>

SDK dan Framework

Ikon Getting Started
Mulai Cepat

Panduan Getting Started

Panduan praktis untuk integrasi FACEIO pertama Anda: penyiapan Console, allowlist domain, pemilihan engine, dan alur enrollment yang berfungsi, lengkap dengan screenshot.

  • Panduan Console langkah demi langkah dengan screenshot
  • Checklist domain, key, dan izin browser
  • HTML awal yang dapat Anda sesuaikan dengan aplikasi
Buka Panduan Penyiapan
Ikon kode developer
Dokumentasi API

Referensi API dan Boilerplate

Referensi SDK fio.js berisi parameter metode, nilai kembalian, kode error, dan contoh framework.

  • Referensi lengkap metode enroll() dan authenticate()
  • Semua kode error dengan pola penanganan yang direkomendasikan
  • Contoh framework untuk stack JavaScript umum
Lihat Panduan Integrasi
Catatan Kompatibilitas Framework
  • SDK netral terhadap framework
    Gunakan FACEIO dengan React, Vue, Angular, Next.js, Svelte, Nuxt.js, Ember.js, atau JavaScript murni.
  • Gunakan alur yang sudah ada
    fio.js tidak bergantung pada framework. Tambahkan ke alur pendaftaran dan login yang sudah digunakan website atau aplikasi web Anda.
  • Persyaratan Browser
    Berjalan di browser modern dengan webcam standar. Pengguna tidak memerlukan hardware biometrik khusus.
Dukungan Browser:
Chrome Chrome
Firefox Firefox
Edge Edge
+ semua browser berbasis Chromium
Lihat semua contoh

Webhooks & API

Saat pengguna mendaftar, melakukan autentikasi, atau menghapus Facial ID, FACEIO mengirim HTTP POST ke endpoint yang Anda konfigurasi, dengan detail peristiwa dalam payload JSON.

Dokumentasi Lengkap
Ikon Webhook
Event Real-Time

Webhook dan Notifikasi Event

Jaga backend tetap sinkron saat pengguna mendaftar, melakukan autentikasi, atau menghapus Facial ID.

ENROLL AUTH DELETION
Konfigurasi Webhook

Cara Kerja Webhook

  1. 1

    Pengguna menyelesaikan alur enrollment, authentication, atau penghapusan di widget FACEIO.

  2. 2

    FACEIO mengirim HTTP POST ke URL endpoint yang Anda konfigurasi.

  3. 3

    Validasi WWW-Authenticate bearer token sebelum memproses payload JSON.

  4. Kembalikan 200 OK dalam 6 detik agar FACEIO mengetahui event sudah diterima.

webhook-payload.json
JSON
{
  "eventName": "AUTH",
  "facialId": "fid_a1b2c3d4e5f6...",
  "appId": "your-app-public-id",
  "clientIp": "203.0.113.42",
  "payload": "your-linked-user-data",
  "details": {
    "timestamp": "2025-12-29",
    "gender": "male",
    "age": "28"
  }
}

Field Utama

eventName
Jenis event: ENROLL / AUTH / DELETION
facialId
Facial ID dengan scope aplikasi
payload
Data pengguna terhubung (paket Business+)
clientIp
IP publik browser pengguna
Authenticate Request yang Masuk

Selalu bandingkan WWW-Authenticate bearer token dengan key webhook yang ditampilkan di FACEIO Console sebelum mempercayai payload.

Endpoint REST API

Ikon HTTP dan jaringan

Akses Endpoint REST API

Kontrol Programatik

Gunakan endpoint HTTPS terautentikasi untuk mengelola aplikasi FACEIO, Facial ID, dan alur akun di sisi server. fio.js berjalan di browser dan tidak diperlukan di backend Anda.

GET POST DELETE Kelola Aplikasi dan Facial ID

Ingin menjalankan FACEIO di infrastruktur sendiri?

Gunakan opsi on-premise jika deployment Anda memerlukan infrastruktur lokal dan kontrol lokal atas engine pengenalan yang dipilih.

Pelajari Lebih Lanjut

Kode Error

Saat enroll() atau authenticate() menolak, promise berisi errCode. Tangani kasus umum secara eksplisit agar pengguna mendapatkan langkah berikutnya yang jelas.

Kode Konstanta Arti Tindakan yang Direkomendasikan
1 fioErrCode.PERMISSION_REFUSED Akses kamera atau mikrofon ditolak oleh pengguna atau browser. Minta pengguna mengizinkan akses kamera lalu coba lagi.
2 fioErrCode.NO_FACES_DETECTED Tidak ada wajah yang terdeteksi dalam frame kamera selama sesi. Minta pengguna memastikan pencahayaan baik dan menghadap kamera secara langsung.
3 fioErrCode.UNRECOGNIZED_FACE Wajah yang dipindai tidak cocok dengan pengguna mana pun yang enrolled di face index aplikasi Anda. Tampilkan error dan tawarkan alur enroll jika pengguna baru.
4 fioErrCode.MANY_FACES Beberapa wajah terdeteksi secara bersamaan dalam frame kamera. Minta pengguna memastikan hanya wajahnya yang terlihat.
5 fioErrCode.FACE_DUPLICATION Wajah ini sudah enrolled di face index aplikasi Anda. Arahkan pengguna ke alur login (authenticate).
6 fioErrCode.PAD_ATTACK Liveness detection menandai upaya spoofing (foto, video, atau masker). Tolak upaya tersebut tanpa mengungkap detail logika deteksi.
7 fioErrCode.MINORS_NOT_ALLOWED Estimasi usia menunjukkan pengguna berada di bawah batas usia minimum pada konfigurasi aplikasi. Tampilkan pesan age gate yang sesuai dan batalkan alur.
10 fioErrCode.NETWORK_IO Terjadi error jaringan atau timeout saat berkomunikasi dengan server FACEIO. Coba lagi setelah jeda singkat dan periksa koneksi pengguna.

Tabel ini mencakup kasus umum. Referensi lengkap mencakup error jaringan, sesi, browser, dan persetujuan.

Referensi Kode Error Lengkap

Praktik Terbaik

Baca sebelum masuk produksi

Autentikasi wajah memerlukan peluncuran yang cermat. Mulai dengan praktik keamanan terbaik dan kontrol privasi dan persetujuan sebelum dirilis.

Ikon keamanan
Penyiapan yang Diperlukan

Keamanan Aplikasi

Batasi tempat Widget dapat berjalan, pertahankan validasi PIN Code bawaan, konfigurasikan pemeriksaan liveness, dan validasi peristiwa backend.

  • Allowlist domain untuk origin produksi yang tepat
  • Konfigurasikan liveness detection untuk membantu mendeteksi presentation attack
  • Validasi token webhook sebelum memperbarui status akun
Lihat Panduan Keamanan
Ikon privasi
Kontrol Privasi

Privasi Aplikasi

Tampilkan persetujuan yang jelas sebelum pengambilan gambar, jaga payload tetap kecil, hormati permintaan penghapusan, dan simpan jejak audit yang dapat ditinjau tim Anda.

  • Selalu tampilkan persetujuan sebelum capture
  • Minimalkan data payload sebatas yang benar-benar diperlukan
  • Penuhi permintaan penghapusan yang sah sesuai aturan retensi yang berlaku
Lihat Panduan Privasi
Facial ID
Model Identitas

Pengenal Wajah Unik

Setelah pendaftaran, FACEIO mengembalikan Facial ID milik aplikasi Anda. Simpan pengenal tersebut bersama catatan pengguna Anda sendiri.

// Contoh pemetaan
await db.users.update({
  where: { email: "user@x.com" },
  data:  { facialId: u.facialId }
});
Pelajari Facial ID
Trust Center
Alur Data

Recognition Engine dan Alur Data

FACEIO, termasuk fio.js, Widget, REST API, dan Console, tidak menyimpan, menangani, atau mengakses hash biometrik. Facial Recognition Engine yang dipilih pemilik aplikasi menangani pencocokan wajah dan hash biometrik. Pemilik aplikasi tetap bertanggung jawab atas persetujuan, retensi, penghapusan, dan konfigurasi engine.

Persetujuan
Penghapusan pengguna
Pilihan engine
ID dalam cakupan aplikasi
Kunjungi Trust Center

Checklist Produksi

Lakukan

  • Muat fio.js hanya dari cdn.faceio.net
  • Batasi widget ke domain produksi Anda yang tepat di Console
  • Validasi token webhook dan pengenal aplikasi yang diharapkan sebelum memperbarui status akun
  • Gunakan HTTPS pada semua halaman tempat widget dimuat
  • Tampilkan layar persetujuan sebelum memanggil enroll()

Jangan

  • Jangan muat fio.js dari mirror tidak resmi; gunakan CDN resmi agar perbaikan sisi browser sampai ke aplikasi Anda
  • Jangan simpan gambar wajah, hash biometrik, atau payload autentikasi sensitif di penyimpanan sisi klien atau log aplikasi
  • Jangan muat widget pada http://; akses kamera dan API browser yang aman memerlukan HTTPS
  • Jangan panggil enroll() sebelum menampilkan pemberitahuan yang diwajibkan dan memperoleh persetujuan eksplisit dari pengguna akhir
  • Jangan pernah mengekspos kunci rahasia API di sisi klien

Ikhtisar Produk

Autentikasi Wajah

Tambahkan autentikasi wajah dengan fio.js. Pengguna mendaftar melalui browser, lalu aplikasi Anda menerima facialId yang berlaku untuk aplikasi tersebut dan dapat digunakan pada autentikasi berikutnya.

  • Simpan facialId yang dikembalikan di backend untuk menghubungkan pendaftaran FACEIO dengan catatan pengguna Anda sendiri.
  • Panggil enroll() dan authenticate() dari instance fio.js yang sama.
  • Gunakan untuk login tanpa kata sandi, autentikasi ulang akun, atau pemeriksaan step-up dalam alur akses yang sudah ada.
fio.js login dengan pengenalan wajah autentikasi wajah
Panduan Integrasi

Meeting Shield

Ekstensi Chrome untuk deteksi deepfake di Google Meet, Zoom Web, dan Microsoft Teams Web. Gunakan untuk memberi tahu peserta tentang video yang dicurigai sintetis, replay, atau dimanipulasi dalam meeting berbasis browser.

Jelajahi Meeting Shield

ID Match

Widget browser yang dapat disematkan untuk pengambilan dokumen ID dan selfie langsung, pemeriksaan liveness, serta pencocokan selfie dengan potret pada dokumen. Ekstraksi kolom opsional menggunakan PixLab DOCSCAN ↗, yang mendukung 11K+ format dokumen ID dari lebih dari 197 negara dan wilayah. ID Match tidak mengautentikasi dokumen atau menetapkan identitas hukum.

Jelajahi ID Match

Resource dan Komunitas

FACEIO Console

FACEIO Console

Buat aplikasi, tinjau metrik, sesuaikan pengaturan keamanan, dan salin key yang diperlukan integrasi Anda.

Gunakan Console selama development untuk mengelola domain yang diizinkan, memilih pengaturan recognition, dan memastikan setiap environment memakai Public ID yang benar.

Metrik Live Konfigurasi App API Key
Buka Console
Penyiapan Developer

Tambahkan Autentikasi Wajah ke Website atau Aplikasi Web Anda

Buat aplikasi di Console, salin Public ID Anda, muat fio.js, lalu uji enroll() dan authenticate() dengan backend Anda.

Integrasi langsung dalam 5 menit
Referensi fio.js, REST API, dan webhook
Integrasi browser yang netral terhadap framework
Pemeriksaan persetujuan, penghapusan, dan keamanan