İçeriğe geç
GlobalTrustIDdocs

Doğrulama Akışı

Oturum durumları, scope sözlüğü ve uçtan uca entegrasyon.

Oturum durumları#

Bir oturum şu durumlardan geçer:

DurumAnlamı
waitingOturum açıldı, QR gösteriliyor.
scannedKullanıcı QR'ı okuttu.
openedKullanıcı onay ekranını açtı.
approvedKullanıcı onayladı. Sonuç hazır.
declinedKullanıcı reddetti.
expiredSüre doldu, kimse onaylamadı.
completedSonuç size teslim edildi.

approved ve completed dışındaki hiçbir durumda identity alanı dönmez.

Scope sözlüğü#

scope, kullanıcıdan istediğiniz alanların listesidir. Kullanıcı onay ekranında tam olarak bunları görür.

Tüm değerler JSON'da string olarak döner; aşağıdaki "Biçim" sütunu o string'in nasıl okunacağını söyler.

ScopeOnay ekranıBiçimÖrnek
openidKimlik doğrulama (veri paylaşılmaz)——
identity.first_nameAdstringAyşe
identity.last_nameSoyadstringYılmaz
identity.birth_dateDoğum tarihiISO 8601 tarih: YYYY-MM-DD1990-04-17
identity.genderCinsiyetm veya ff
identity.nationalityUyrukISO 3166-1 alpha-2 ülke koduTR
identity.national_idT.C. kimlik numarası11 haneli string12345678901
identity.document_numberNüfus cüzdanı seri numarasıstringA12B34567
identity.passport_numberPasaport numarasıstringU01234567
emailE-posta adresistring, e-postaayse@ornek.com
phoneTelefon numarasıE.164+905551234567
addressAdresstring, tek satırBağdat Cad. No:1, İstanbul
avatarProfil görselimutlak https adresihttps://cdn.globaltrust.id/…
age.over_1818 yaşından büyük mü (doğum tarihi paylaşılmaz)"true" veya "false""true"

Biçimleri sunucu doğrulamaz#

Değerler kullanıcının kendi cihazından gelir. Sunucu bunları biçim açısından denetlemez — onay anında bir profili reddetmek, veriyi düzeltmez, yalnızca doğrulamayı başarısız kılardı. Yukarıdaki biçimler mobil uygulamanın uyduğu sözleşmedir; yine de kendi tarafınızda ayrıştırırken savunmacı davranın.

Bugün hangi alanlar gerçekten geliyor#

Sözlükteki her alan API tarafından kabul edilir, ancak hepsi henüz mobil uygulamada bir değere karşılık gelmiyor:

DurumAlanlar
Canlıda teslim edildiği görüldüopenid, identity.first_name, identity.last_name, identity.birth_date, identity.gender, identity.nationality, identity.national_id, identity.document_number, email, phone
Henüz teslim edildiği görülmediidentity.passport_number, address, avatar, age.over_18

Kurallar#

  • En az 1, en fazla 12 alan isteyebilirsiniz.
  • Tanımadığımız bir scope isteği reddedilir. Sessizce atlanmaz — çünkü atlansaydı, hiç gelmeyecek bir alanı bekliyor olurdunuz.
  • Tekrar eden alanlar teke indirilir, sıralamanız korunur.

identity. öneki bilerek vardır: değerin kimlik belgesinden geldiğini söyler. Kullanıcının kendi yazdığı bir ad ile belgeden okunan ad asla karıştırılmaz.

Yalnızca gerçekten gerekeni isteyin#

Onay ekranı ne kadar uzarsa, kullanıcı o kadar çok vazgeçer. Yaş sınırı kontrolü yapıyorsanız identity.birth_date yeterlidir; ad soyad istemeniz gerekmez.

Scope seçimi maliyeti de etkiler. Bir sorgulamanın kontör bedeli istenen alanlara göre değişir — ayrıntı için Kredi Paketleri.

Sonucu almanın üç yolu#

1. Webhook (sunucudan sunucuya — önerilen)#

Oturumu açarken webhook_url verin, sonuç hazır olduğunda size POST edelim. Bkz. Webhooks.

JSON
{
  "scope": ["identity.first_name"],
  "webhook_url": "https://sizin-siteniz.com/gti/webhook"
}

2. WebSocket (tarayıcıda anlık)#

QR'ı gösterdiğiniz sayfada oturum durumunu canlı izlemek için:

Çıktı
wss://api.globaltrust.id/v1/verification/session/{session_id}/ws

Bağlantı, durum her değiştiğinde bir mesaj gönderir. Kullanıcı telefonunda onayladığı anda sayfanız güncellenir — kullanıcı sayfayı yenilemek zorunda kalmaz.

Bu bağlantı sonucun kendisini taşımaz, yalnızca durumu. Kimlik alanlarını her zaman sunucunuzdan, gizli anahtarla okuyun.

3. Sorgulama#

Oturumu doğrudan okuyabilirsiniz:

Çıktı
GET /v1/verification/session/{session_id}
Authorization: Bearer sk_live_...

Webhook ve WebSocket'in ikisini de kullanamıyorsanız bu yol açıktır, ancak kullanıcıyı bekletirken sık sık sorgu atmak yerine makul aralıklarla (örneğin 3 saniye) deneyin ve dakikada 120 istek sınırını aşmayın.

Webhook ve WebSocket birlikte#

İkisini aynı anda kullanabilirsiniz ve çoğu entegrasyon için doğrusu budur: WebSocket kullanıcıya anında geri bildirim verir, webhook ise kullanıcı sayfayı kapatsa bile sonucun size ulaşmasını garanti eder.

Süre aşımı#

Oturumun expires_at alanı ne zaman geçersizleşeceğini söyler. Süresi dolmuş bir oturum expired olur ve onaylanamaz. Kullanıcı QR'ı geç okuttuysa yeni bir oturum açın.