Mevzuat RadarDokümantasyon
Uygulamaya git ↗

Webhook Abonelikleri API

Webhook yönetim endpointleri API key ile değil, authenticated admin session JWT ile çalışır. Guard zinciri JwtAuthGuard + RolesGuard + settings permission şeklindedir; role ADMIN değilse işlem 403 döner.

Receiver tarafındaki HMAC, retry ve idempotency ayrıntıları için Webhook Akışı sayfasını kullanın. İmza doğrulaması her zaman raw request body üzerinden yapılır; parse edilmiş JSON’u yeniden stringify etmek imzayı geçersiz kılar.

AlanDeğer
AuthBearer JWT session
RoleADMIN
Permissionsettings:read veya settings:write
PlanWebhooks entitlement açık olmalı

Endpoints

MethodPathBody
GET/api/v1/webhooksYok
POST/api/v1/webhooksurl, events, description?, includeChildOrgEvents?
GET/api/v1/webhooks/:idYok
PUT/api/v1/webhooks/:idPartial update DTO
DELETE/api/v1/webhooks/:idYok
POST/api/v1/webhooks/:id/testYok
POST/api/v1/webhooks/:id/rotate-secretYok
GET/api/v1/webhooks/:id/deliveriespage, limit query

Create Body

{ "url": "https://example.com/mevzuatradar/webhook", "events": ["NEW_REGULATION"], "description": "GRC production receiver", "includeChildOrgEvents": false }

Event Kataloğu

Event değerleri shared WebhookEventType sözleşmesinden gelir. Receiver tarafında bilinmeyen event sessizce kabul edilmez; önce durable kuyruğa alınır ve desteklenen event kataloğuna göre işlenir.

EventAçıklama
NEW_REGULATIONYeni mevzuat veya resmi kaynak dokümanı bulundu
REGULATION_UPDATEDMevzuat kaydında doğrulanmış güncelleme oluştu
REGULATION_CLASSIFICATION_COMPLETEDMevzuatın güncel sektör eşleştirmesi kabul edildi
ACTION_DEADLINE_APPROACHINGAksiyon son tarihi yaklaşıyor
IMPACT_ASSESSMENT_CREATEDEtki analizi üretildi
QUALITY_SLA_BREACHKalite SLA ihlali oluştu
VERIFICATION_COMPLETEDDoğrulama koşusu tamamlandı
VERIFICATION_REVIEW_REQUIREDDoğrulama manuel inceleme gerektiriyor
BOARD_REPORT_READYYönetim kurulu raporu hazır
EVIDENCE_PACK_READYKanıt paketi hazır
ARTICLE_DIFF_CREATEDMadde farkı oluşturuldu

Sektör eşleştirmesi tamamlandı

REGULATION_CLASSIFICATION_COMPLETED, yalnız terminal sonuçlar için gönderilir: kabul edilmiş (ACCEPTED) eşleştirmeler ve — güncel kabul edilmiş bir sonuç yoksa — nihai sınıflandırılamamış (UNCLASSIFIED) kayıtlar. Hazırlanan (ara durumdaki) ve inceleme gerektiren kayıtlar event üretmez; classificationStatus alanı ACCEPTED, UNCLASSIFIED veya LEGACY_INGRESS olabilir. Geçmiş veri taramalarında müşteri teslimatları kapalıdır.

{ "event_id": "sector-delivery:01JXYZ", "event_version": 1, "organization_id": "org_01", "classificationRunId": "run_01", "classificationStatus": "ACCEPTED", "regulationId": "reg_01", "sourceCode": "BDDK", "sourceType": "BDDK" }

Receiver, event_id ve X-Webhook-Idempotency-Key değerlerini durable saklamalıdır. classificationRunId aynı mevzuatın daha yeni içerik veya sektör sürümünde yeniden değerlendirilmesini ayırt eder.

Yanıt

Controller yanıtları API envelope ile sarılır. POST /api/v1/webhooks ve POST /api/v1/webhooks/:id/rotate-secret sadece ilk gösterimde secret bilgisini revealed-once mantığıyla döndürür; secret repository veya ticket içine yazılmamalıdır.

Hata Kodları

StatusAnlam
400Geçersiz URL, event veya payload
401JWT eksik/geçersiz
403ADMIN rolü, settings permission veya entitlement yok
404Webhook bulunamadı veya tenant kapsamı dışında
429Rate limit aşıldı

Örnekler

curl -s -X POST "https://api.mevzuatradar.com/api/v1/webhooks" \
-H "authorization: Bearer $MEVZUATRADAR_JWT" \
-H "content-type: application/json" \
-d '{"url":"https://example.com/mevzuatradar/webhook","events":["NEW_REGULATION"],"includeChildOrgEvents":false}'