Karar Kayıtları
Her fraud kararı kalıcı olarak kaydedilir. Kayıtlar mutabakat için vardır: bir ödemeye hangi kararın verildiğini, hangi kuralların eşleştiğini ve kararın hangi kanaldan geldiğini sonradan okursunuz.
GET /api/v1/fraud/decision-logs (liste)
GET /api/v1/fraud/decision-logs/{traceId} (tekil)Kimlik doğrulama Karar API'si ile aynıdır: fraud:view_decisions kapsamı taşıyan bir Bearer token. Yalnız kendi hesabınızın kayıtları döner — kiracı kapsamı token'dan çözülür.
Liste
Süzgeçler
| Parametre | Tip | Anlamı |
|---|---|---|
paymentId | string | Karar isteğinde gönderdiğiniz ödeme referansı |
decision | string | allow · review · block · force_3d |
integrationMode | string | Dış çağrılarda standalone |
productContext | string | Ürün yüzeyi (ör. direct_api, payment_form) |
limit | number | Sayfa boyutu. Varsayılan 50, geçerli aralık 1–200 |
cursor | string | Önceki yanıtın pageInfo.nextCursor değeri |
limit bir tavan değil, sayfa boyutudur. İstediğiniz sayfa boyutunu verin ve sonraki sayfaları cursor ile alın; kayıt sayısı kaç olursa olsun tamamına ulaşırsınız.
Sayfalama
Sıralama en yeniden en eskiyedir ve sıralama anahtarı kaydın oluşma anı ile kimliğinin bileşimidir — aynı milisaniyede oluşan iki karar sayfa sınırında atlanmaz.
pageInfo data'nın kardeşidir, içinde değil:
{
"status": "success",
"code": "SUCCESS",
"data": [ { "traceId": "…" } ],
"pageInfo": {
"hasMore": true,
"nextCursor": "eyJ2IjoxLCJ0IjoiMjAyNi0xMC0wNVQwOToxMjo0MC4xMjM0NTZaIiwiaWQiOiIwMUo4WlUifQ",
"totalCount": null
},
"requestId": "req_01J8ZV..."
}hasMorefalseolduğunda liste bitmiştir.totalCountbu uçta daimanull'dur: toplam sayım maliyetlidir ve sayfalama için gerekmez.cursoropaktır. İçini ayrıştırmayın; olduğu gibi geri gönderin. Bozuk bir imleç sessizce ilk sayfaya dönmez,400 INVALID_CURSORdöner.
Platform sayfalama sözleşmesinin tamamı: Sayfalama.
Tekil kayıt
GET /api/v1/fraud/decision-logs/{traceId}traceId değerini karar yanıtının data.traceId alanından alırsınız. Karar kaydını saklamak isterseniz saklamanız gereken tek değer budur.
Kayıt alanları
| Alan | Anlamı |
|---|---|
traceId | Kararın tekil kimliği; destek talebinde verdiğiniz değer |
decision | allow · review · block · force_3d |
score | Risk puanı |
reasonCodes | Kararı üreten gerekçe kodları |
matchedRules / matchedRuleGroups | Eşleşen kurallar ve kural grupları |
flowPath | Kararın geçtiği akış düğümleri |
flowId / flowName / flowVersion | Kararı veren akışın kimliği, adı ve sürümü |
explainabilityJson | Açıklanabilirlik özeti ve grup sonuçları |
tags / actions | Karara iliştirilen etiketler ve tetiklenen aksiyonlar |
channel / surface / stage / operationKind | İsteğin kanal taksonomisi |
authModeRequested / authModeApplied | İstenen ve uygulanan kimlik doğrulama modu |
integrationMode / productContext | Entegrasyon modu ve ürün yüzeyi |
subMerchantRef | Alt işyeri referansı (gönderdiyseniz) |
transactionRef | İşlem referansı (gönderdiyseniz) |
assertionOutcome | Kimlik artefaktının doğrulama sonucu (merchant_form kanalında) |
paymentId / customerId | İstekte gönderdiğiniz referanslar |
latencyMs | Kararın üretilme süresi |
createdAt | Kararın oluşma anı |
Kayıt, kararı üreten isteğin kendisini de taşır. Bu, denetim izinin bir parçasıdır: bir kararın neden verildiği sorulduğunda hangi bağlamla verildiği de görülebilir.
Bir ödemenin kararını okumak
Lunixi ödeme orkestratörü üzerinden alınan ödemelerde fraud zaten yetkilendirmenin içinde koşar; ayrıca evaluate çağırmanız gerekmez. O ödemenin kararını paymentId süzgeciyle okursunuz:
curl "https://api-gateway.lunixi.com/api/v1/fraud/decision-logs?paymentId=pi_123&limit=1" \
-H "Authorization: Bearer $LUNIXI_TOKEN"Sonraki adım
- Karar API'si — istek alanları ve karar yanıtı
- Olay Alımı API'si — sayan kuralların beslenmesi
- Hatalar, tekrarlı istekler ve yeniden deneme