Fraud & Fraud AI
Karar Kayıtları

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

ParametreTipAnlamı
paymentIdstringKarar isteğinde gönderdiğiniz ödeme referansı
decisionstringallow · review · block · force_3d
integrationModestringDış çağrılarda standalone
productContextstringÜrün yüzeyi (ör. direct_api, payment_form)
limitnumberSayfa boyutu. Varsayılan 50, geçerli aralık 1–200
cursorstringÖ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..."
}
  • hasMore false olduğunda liste bitmiştir.
  • totalCount bu uçta daima null'dur: toplam sayım maliyetlidir ve sayfalama için gerekmez.
  • cursor opaktır. İçini ayrıştırmayın; olduğu gibi geri gönderin. Bozuk bir imleç sessizce ilk sayfaya dönmez, 400 INVALID_CURSOR dö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ı

AlanAnlamı
traceIdKararın tekil kimliği; destek talebinde verdiğiniz değer
decisionallow · review · block · force_3d
scoreRisk puanı
reasonCodesKararı üreten gerekçe kodları
matchedRules / matchedRuleGroupsEşleşen kurallar ve kural grupları
flowPathKararın geçtiği akış düğümleri
flowId / flowName / flowVersionKararı veren akışın kimliği, adı ve sürümü
explainabilityJsonAçıklanabilirlik özeti ve grup sonuçları
tags / actionsKarara iliştirilen etiketler ve tetiklenen aksiyonlar
channel / surface / stage / operationKindİsteğin kanal taksonomisi
authModeRequested / authModeAppliedİstenen ve uygulanan kimlik doğrulama modu
integrationMode / productContextEntegrasyon modu ve ürün yüzeyi
subMerchantRefAlt işyeri referansı (gönderdiyseniz)
transactionRefİşlem referansı (gönderdiyseniz)
assertionOutcomeKimlik artefaktının doğrulama sonucu (merchant_form kanalında)
paymentId / customerIdİstekte gönderdiğiniz referanslar
latencyMsKararın üretilme süresi
createdAtKararı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