Lewati ke konten utama

Verifikasi Usia

Untuk alur integrasi lengkap, lihat Ringkasan API.

Endpoint

LingkunganURL
ProductionPOST https://api.id.unico.app/processes/v1
SandboxPOST https://api.id.uat.unico.app/processes/v1

Permintaan

Headers
HeaderNilai
AuthorizationBearer <access_token> (lihat Autentikasi)
APIKEYAPI key yang telah disediakan — harus memiliki kapabilitas Verifikasi Usia diaktifkan.
Content-Typeapplication/json
Parameter body
FieldTipeWajibDeskripsi
subjectobjectyaWadah informasi pengguna.
subject.codestringkondisionalCPF (BR) atau CURP (MX), tanpa format. Diperlukan ketika alur mencakup Deteksi Kehidupan atau Verifikasi Identitas (lihat kapabilitas Verifikasi Usia); tidak diperlukan untuk alur khusus Verifikasi Usia.
subject.namestringtidakNama lengkap pengguna.
subject.genderstringtidakM untuk laki-laki atau F untuk perempuan.
subject.birthDatestring (ISO 8601)tidakTanggal lahir (YYYY-MM-DD).
subject.emailstringtidakAlamat email pengguna.
subject.phonestringtidakNomor telepon: kode negara + kode area + nomor, tanpa pemisah (misalnya 5519725570707).
useCasestringtidakIdentifier use case operasi.
subsidiaryIdstringtidakID cabang — diperlukan hanya jika ada beberapa cabang.
imageBase64stringyaOutput SDK terenkripsi atau gambar base64 (PNG, JPEG, WebP).
Persyaratan gambar
  • Resolusi minimum: 640 x 480 (standar HD)
  • Ukuran file maksimum: 800 KB (kompresi JPEG92 disarankan)
  • Token JWT dari SDK kedaluwarsa setelah 10 menit dan hanya dapat digunakan sekali

Contoh

curl -X POST https://api.id.unico.app/processes/v1 \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": {
"code": "12345678909",
"name": "Luke Skywalker",
"birthDate": "2000-05-20",
"email": "[email protected]",
"phone": "5519725570707"
},
"useCase": "AgeVerification",
"imageBase64": "/9j/4AAQSkZJR..."
}'

Respons

200 OK

Field respons yang dikembalikan tergantung pada kapabilitas mana yang diaktifkan untuk APIKEY Anda.

Verifikasi Usia saja (tanpa Deteksi Kehidupan, tanpa Verifikasi Identitas):

{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"idAge": { "result": "yes" }
}

Verifikasi Usia + Deteksi Kehidupan + Verifikasi Identitas:

{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"unicoId": { "result": "yes" },
"idAge": { "result": "yes" },
"liveness": 1
}
FieldTipeDeskripsi
idstring (UUID)Identifier proses. Gunakan dengan Dapatkan Proses untuk kueri ulang.
statusinteger3 (selesai dengan sukses), 5 (error). Hanya gunakan status = 3 untuk keputusan bisnis. Untuk semua nilai yang mungkin, lihat Dapatkan Proses.
idAge.resultstringyes, no, inconclusive — Hasil Verifikasi Usia. Muncul di semua respons.
unicoId.resultstringyes, no, inconclusive — muncul hanya ketika Verifikasi Identitas diaktifkan.
livenessinteger1 (lulus), 2 (gagal) — muncul hanya ketika Deteksi Kehidupan diaktifkan.
400 Bad Request

Payload salah format, gambar tidak valid, atau field wajib tidak ada.

403 Forbidden

Bearer token atau APIKEY tidak ada, kedaluwarsa, atau tidak valid. Lihat Autentikasi.

409 Conflict

processId yang diberikan sudah ada untuk tenant ini. Lihat Kode Error di bawah.

429 Too Many Requests

Batas rate tercapai. Ketika sistem Anda menerima error HTTP 429, Anda harus menerapkan mekanisme untuk mencegah kegagalan berantai dan menghindari memperburuk pembatasan.

Praktik terbaik:

  • Periode pendinginan (backoff): Segera hentikan atau batasi permintaan berikutnya dari sistem Anda. Jangan terus-menerus mencoba ulang permintaan yang gagal dalam loop ketat.
  • Antrian & pembatasan: Buffer atau antrikan permintaan keluar di sisi Anda untuk mengontrol aliran lalu lintas sebelum mengirimnya kembali.
  • Exponential backoff dengan jitter: Saat mencoba ulang, tingkatkan waktu tunggu secara eksponensial antar percobaan (misalnya, 1 detik, 2 detik, 4 detik, 8 detik) dan tambahkan penundaan acak kecil ("jitter") untuk mencegah efek kawanan di mana semua permintaan yang diantrikan mencoba ulang pada milidetik yang sama persis.
peringatan

Terus-menerus menghubungi endpoint yang dibatasi rate tanpa melakukan backoff dapat memperpanjang periode pembatasan dan sangat memengaruhi throughput operasional sistem Anda. Pembatasan permintaan yang tepat di sisi Anda memastikan integrasi yang lebih lancar dan lebih tangguh.

Untuk batas default, peningkatan permintaan, dan detail tambahan, lihat Rate Limits.

500 Internal Server Error

Error server yang tidak terduga.

Kode Error

CodeMessageDeskripsi
20900O base64 informado não é válido.Parameter base64 tidak valid; kemungkinan masalah gambar atau injeksi.
20807A imagem precisa estar no padrão HD ou possuir uma resolução superior a 640 x 480.Resolusi gambar di bawah ambang minimum.
20509The subject.name field is invalid.subject.name mengandung karakter tidak valid.
20508The subject.gender field is invalid.subject.gender harus M atau F.
20507O parâmetro subject.code é inválido.Nilai identifier yang salah format atau tidak ada. Hanya terpicu ketika Deteksi Kehidupan atau Verifikasi Identitas termasuk dalam alur — tidak diperlukan untuk alur khusus Verifikasi Usia.
20506O base64 informado é muito grande. O tamanho máximo suportado é até 800kb.Payload melebihi 800 KB; kompres ke JPEG92.
20505O base64 informado não é suportado. Os formatos aceitos são png, jpeg e webp.Format tidak didukung atau prefiks base64 tidak valid.
20062The useCase field is invalid.Nilai yang tidak dikenali di field useCase.
20021The subject.phone field is invalid.Format subject.phone tidak valid (IDD + kode area + nomor, 13 karakter).
20019The subject.birthDate field is invalid.subject.birthDate di luar format ISO 8601 (YYYY-MM-DD).
20009O parâmetro imagebase64 não foi informado.Parameter gambar selfie tidak ada.
20008The subject.email field is invalid.Format email tidak valid di subject.email.
20005O parâmetro subject.code não foi informado.Parameter subject.code tidak ada. Hanya terpicu ketika Deteksi Kehidupan atau Verifikasi Identitas termasuk dalam alur — tidak diperlukan untuk alur khusus Verifikasi Usia.
20004O parâmetro subject não foi informado.Objek subject tidak ada.
20003The request body is missing or invalid.Payload null atau salah format.
20002O parâmetro APIKey não foi informado.Header APIKEY tidak ada.
20001O parâmetro authtoken não foi informado.Header token autentikasi tidak ada.
10508The JWT with the captured face has already been used.JWT hanya dapat digunakan sekali.
10507The JWT with the captured face is expired.JWT melebihi jendela validitas 10 menit.
10506The imageBase64 field is not a valid JWT from SDK.imageBase64 bukan JWT valid yang dihasilkan oleh SDK.

Selanjutnya