Webhook'lar
Bu belge TrustChex sistemindeki webhook işlevselliğini açıklamaktadır.
Genel Bakış
Webhook'lar, TrustChex hesabınızda gerçekleşen olaylar hakkında uygulamanızın gerçek zamanlı bildirimleri almasını sağlar. Bir olay meydana geldiğinde, yapılandırılmış webhook URL'sine bir HTTP POST isteği gönderiyoruz.
Temel Özellikler:
- Gerçek zamanlı olay bildirimleri
- Üstel geri çekilme ile otomatik yeniden deneme mekanizması
- Güvenlik için HMAC SHA256 imza doğrulama
- Kapsamlı olay günlüğü ve izleme
- Kolay hata ayıklama için test işlevselliği
Olay Türleri
Doğrulama Oturumu Olayları
verification_session.created- Yeni bir doğrulama oturumu oluşturulduverification_session.completed- Doğrulama oturumu tamamlandıverification_session.cancelled- Doğrulama oturumu iptal edildi
Kimlik Doğrulama Olayları
identification.created- Yeni bir kimlik doğrulama oluşturulduidentification.submitted- Kimlik doğrulama inceleme için gönderildiidentification.failed- Kimlik doğrulama işlemi başarısız olduidentification.in_automatic_review- Kimlik doğrulama otomatik inceleme altındaidentification.in_manual_review- Kimlik doğrulama manuel inceleme gerektiriyoridentification.waiting_for_status_change_approval- Durum değişikliği onay bekliyoridentification.approved- Kimlik doğrulama onaylandıidentification.rejected- Kimlik doğrulama reddedildiidentification.resubmission_required- Kimlik doğrulama yeniden gönderim gerektiriyor
Webhook Yönetimi
Webhook Oluşturma
- Panonuzda Ayarlar > Webhook'lar bölümüne gidin
- "Yeni Webhook" butonuna tıklayın
- Webhook'unuzu yapılandırın:
- URL: Webhook olaylarını almak istediğiniz uç nokta
- Açıklama: Webhook'unuz için isteğe bağlı açıklama
- Olaylar: Abone olmak istediğiniz olay türlerini seçin
- Aktif: Webhook'u etkinleştirin/devre dışı bırakın
- Webhook'unuzu oluşturmak için "Kaydet" butonuna tıklayın
Webhook'ları Test Etme
Uç noktanızı doğrulamak için webhook panosundaki test butonunu kullanın:
- Webhook'unuzun yanındaki Test butonuna tıklayın
- Uç noktanıza bir test olayı gönderilecek
- Teslimat durumunu görmek için olay günlüklerini kontrol edin
- Hata ayıklama için istek/yanıt ayrıntılarını inceleyin
Webhook Yükü
Tüm webhook'lar aşağıdaki standart alanları içerir:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"accountId": "hesap-id-niz",
"webhookId": "webhook-id",
"eventType": "identification.approved",
"timestamp": "2024-01-01T12:00:00.000Z",
"data": {
"accountId": "hesap-id-niz",
"identificationId": "kimlik-dogrulama-id",
"status": "APPROVED",
"phoneNumber": "+1234567890",
"score": 95,
"createdAt": "2024-01-01T11:00:00.000Z",
"updatedAt": "2024-01-01T12:00:00.000Z"
}
}
Olaya Özel Yük Örnekleri
Doğrulama Oturumu Veri Yapısı
{
"data": {
"accountId": "hesap-id-niz",
"sessionId": "oturum-id",
"status": "COMPLETED",
"identificationId": "kimlik-dogrulama-id",
"phoneNumber": "+1234567890",
"locale": "tr",
"sendOTP": true,
"createdAt": "2024-01-01T11:00:00.000Z",
"updatedAt": "2024-01-01T12:00:00.000Z",
"expiresAt": "2024-01-01T13:00:00.000Z"
}
}
Kimlik Doğrulama Veri Yapısı
{
"data": {
"accountId": "hesap-id-niz",
"identificationId": "kimlik-dogrulama-id",
"status": "APPROVED",
"phoneNumber": "+1234567890",
"score": 95,
"createdAt": "2024-01-01T11:00:00.000Z",
"updatedAt": "2024-01-01T12:00:00.000Z"
}
}
Başlıklar
Her webhook isteği şu başlıkları içerir:
Content-Type: application/jsonUser-Agent: TrustChex-Webhook/1.0X-Webhook-Event: {eventType}X-Webhook-Delivery: {deliveryId}X-Webhook-Timestamp: {timestamp}X-Webhook-Secret: {secret}(yapılandırılmışsa)X-Webhook-Signature-256: sha256={signature}(gizli anahtar yapılandırılmışsa)
Güvenlik
Gizli Anahtar Doğrulama
Webhook'unuz için bir gizli anahtar yapılandırırsanız, bunu X-Webhook-Secret başlığına dahil ederiz ve X-Webhook-Signature-256 başlığında bir HMAC SHA256 imzası oluştururuz.
İmzayı doğrulamak için:
const crypto = require('crypto');
function verifySignature(payload, signature, secret) {
const expectedSignature = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}
Teslimat ve Yeniden Denemeler
- Webhook'ların 30 saniyelik zaman aşımı vardır
- Başarısız teslimatlar üstel geri çekilme ile en fazla 3 kez yeniden denenir (1s, 3s, 9s)
- HTTP durum kodları 2xx başarılı olarak kabul edilir
- Tüm webhook denemeleri günlüğe kaydedilir ve panoda görüntülenebilir
Test Etme
Uç noktanıza bir test olayı göndermek için webhook panosundaki test işlevselliğini kullanın:
{
"id": "test-teslimat-id",
"accountId": "hesap-id-niz",
"webhookId": "webhook-id-niz",
"eventType": "test.webhook",
"timestamp": "2024-01-01T12:00:00.000Z",
"data": {
"message": "Bu bir test webhook teslimatıdır",
"test": true
}
}