Geliştiriciler

Bir endpoint, bir webhook.

TC kimlik doğrulamayı ürününüze eklemek bir öğleden sonranızı alır. Talebi gönderin, sonucu imzalı webhook ile alın; doğrulamanın kendisiyle hiç uğraşmayın.

Endpoint
1
Sandbox
Sınırsız
Kurulum
SDK yok
curl "https://api.kimlikapi.com/v1/verify" \
  -X POST \
  -H "Authorization: Bearer test_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "id_number": "10000000146",
    "first_name": "Test",
    "last_name": "Kullanici",
    "birth_date": "1990-01-15",
    "mode": "async",
    "reference_id": "user_42"
  }'

Üç adımda canlıda

Sandbox'tan canlıya, aynı kodla.

Önce sandbox anahtarıyla senaryoları deneyin; hazır olduğunuzda yalnızca anahtarı değiştirin.

  1. 01

    Anahtarınızı alın

    Panelde bir uygulama oluşturun. Sandbox anahtarları test_, canlı anahtarlar live_ ile başlar; her istekte Authorization: Bearer başlığıyla gönderilir.

  2. 02

    Talebi gönderin

    POST /v1/verify çağrısını mode: async ile yapın. Yanıt anında 202 ve bir request_id döner; kullanıcınız akışına devam eder.

  3. 03

    Sonucu alın

    Sonuç hazır olunca uygulamanıza tanımladığınız adrese imzalı bir webhook gelir. Webhook kullanamıyorsanız GET /v1/requests/{id} ile sorgulayın.

Async tasarım

Sonucu beklemeyin, haber alın.

Canlı doğrulamalar çoğunlukla 1–2 dakikada sonuçlanır; yoğun anlarda bu süre uzayabilir. Bu yüzden API async çalışacak şekilde tasarlandı.

  • Doğrulamayı kayıt formunuzun şartı yapmayın. Kullanıcıyı içeri alın, yalnızca doğrulanmış kimlik gerektiren adımları sonuç gelene kadar kilitli tutun.
  • Daha önce doğrulanmış bilgiler önbellekten anında, 200 ile döner.
  • mode: sync hâlâ kabul edilir ama önerilmez: en fazla 90 saniye bekler, sonuç gelmezse istek async olarak sürer ve 202 döner.
  • Kredi yalnızca eşleşme veya eşleşmeme sonucu üreten sorgularda düşer; failed talepler ücretsizdir.

Talebin yaşam döngüsü

  1. processing

    Talep alındı, 202 ve request_id döndü. Sonuç hazırlanıyor.

  2. completed

    Sonuç hazır: verified true veya false. Webhook gönderildi, kredi düştü.

  3. failed

    Sonuç üretilemedi. Kredi düşmez; talebi yeniden gönderebilirsiniz.

Webhook güvenliği

Her bildirim imzalı.

Webhook gövdesi, uygulamanızın gizli anahtarıyla HMAC-SHA256 olarak imzalanır ve X-TCDogrula-Signature başlığında gelir. Gövdeyi işlemeden önce imzayı doğrulayın; bildirimde kimlik verisi bulunmaz.

Route::post('/webhooks/kimlikapi', function (Request $request) {
    $payload = $request->getContent();
    $secret = config('services.kimlikapi.secret');
    $expected = 'sha256='.hash_hmac('sha256', $payload, $secret);
    $received = (string) $request->header('X-TCDogrula-Signature');

    abort_unless(hash_equals($expected, $received), 401);

    $event = json_decode($payload, true);

    // verification.completed: data.verified true | false
    // verification.failed: sonuç yok, kredi düşmedi
    VerificationResult::record($event);

    return response()->noContent();
});

Sandbox

Her senaryoyu önceden görün.

Sandbox sınırsız ve ücretsizdir; sabit kimlik numaralarıyla eşleşme, eşleşmeme, gecikme ve hata durumlarını gerçek veri kullanmadan test edersiniz.

Tüm senaryolar
Sandbox senaryoları
  • 10000000146verified: trueEşleşme
  • 30000000328verified: falseEşleşme yok
  • 50000000500async gecikmeKuyrukta işlenir
  • 60000000646failedHata senaryosu

AI ile entegrasyon

Asistanınız da dokümanı okusun.

Kodlama asistanınıza API anahtarı vermeden entegrasyon bağlamı sağlayın.