Ana içeriğe geç

Kurallar

Kartla yapılan ödemelerde şüpheli işlem olup olmadığının belirlenmesi işlemi üye işyeri tarafından belirlenen kurallar çalıştırılarak yapılmaktadır. Şüpheli İşlem Kuralları Craftgate tarafından geliştirilen Fraud DSL adını verdiğimiz özel bir dil ile tanımlanmaktadır. Kural tanımlandığında kurala ait aksiyon (bkz: Şüpheli İşlem Aksiyonları) uygulanır.

Şüpheli İşlem Aksiyonları
AksiyonAçıklama
REVIEWİncelemeye Al
BLOCKEngelle

Kural Tanımlama

Kural tanımlama işlemi Şüpheli İşlem Yönetimi > Kural Yönetimi > Yeni Kural Ekle butonu yardımıyla açılan pencerede kural bilgileri girilerek tanımlama yapılabilir.

Şüpheli İşlem Kural Tanımlama

Tanımlanan kural aksiyonu 'Engelle' ise ödeme işlemi kesilerek üye işyerine FRAUD_BLOCK hata grubu ile hata dönülür.
Tanımlanan kural aksiyonu 'İncelemeye Al' ise ödemeye izin verilir. İnceleme bekleniyor statüsünde bir Şüpheli işlem kaydı oluşturulur.

Kural Tanımı

Kural tanımı alanında bulunan kural editörü Fraud DSL kullanılarak yapılacak tanımlar için konfigüre edilmiştir.
Aşağıda detayları bulunan değişken isimleri ve listeler için otomatik tamamlama yaparak kuralların tanımlanmasını kolaylaştırmak amaçlı geliştirilmiştir.

Fraud DSL

Şüpheli işlemlerin tespit edebilmek için bir fraud kuralı tanımlarken Fraud DSL adı verilen özel bir söz dizimi kullanılmaktadır.

Bu söz dizimi, barındırdığı birçok ön tanımlı değişken ve kullanıcı tanımlı değer listeleri yardımıyla dilediğiniz kriterleri içeren size özel tanımlar yapmanıza olanak sağlayan oldukça esnek bir yapıdır. Bir kural bir ya da birden fazla koşuldan oluşabilir, bu koşullar and operatörü kullanılarak birleştirilip tek bir kuralı oluşturabilir. Kural koşulları aşağıda yer alan değişken listesindeki değerler ile oluşturulabilir.

Kural formatı: [koşul] and [koşul] and ...

Koşul formatı: [değişken] [operatör] [değer/liste]

Not: boolean tipindeki değişkenler doğrudan true veya false değerlerine sahip olacağı için operatör ve değer olmadan yani sameCardNumberHasFraudSuspectHourly and ... şeklinde kullanılabilir

Kural operatörleri

Operatör AdıAçıklamaÖrnek
==Koşulda kullanılan değişkenin tanımlanan değere eşit olduğu koşulunu oluştururclientIp == "127.0.0.1
!=Koşulda kullanılan değişkenin tanımlanan değere eşit olmadığı koşulunu oluştururclientIp != "127.0.0.1
<Koşulda kullanılan değişkenin tanımlanan değere küçük olduğu koşulunu oluşturur. Sadece veri tipi numerik(integer ya da float) olan değişkenlerde kullanılabilirsameClientIpIn30Minutes < 3
<=Koşulda kullanılan değişkenin tanımlanan değere küçük ve eşit olduğu koşulunu oluşturur. Sadece veri tipi numerik(integer ya da float) olan değişkenlerde kullanılabilirsameClientIpIn30Minutes <= 3
>Koşulda kullanılan değişkenin tanımlanan değere büyük olduğu koşulunu oluşturur. Sadece veri tipi numerik(integer ya da float) olan değişkenlerde kullanılabilirsameClientIpIn30Minutes > 3
>=Koşulda kullanılan değişkenin tanımlanan değere büyük ve eşit olduğu koşulunu oluşturur. Sadece veri tipi numerik(integer ya da float) olan değişkenlerde kullanılabilirsameClientIpIn30Minutes >= 3
inKoşulda kullanılan değişkenin bir listede tanımlı olduğu koşulunu oluştururclientIp in @ipBlackList
not inKoşulda kullanılan değişkenin bir listede tanımlı olmadığı koşulunu oluştururclientIp not @ipWhiteList

Değişkenler

Kuralınızı tanımlarken kullanabileceğiniz tüm değişkenler aşağıda listelenmiştir.

Değişken AdıVeri TipiAçıklama
cardNumbercardFingerprintKart Parmak İzi
isThreeDSbooleanÖdeme isteği 3D Secure olarak mı başlatıldı
clientIpstringMüşteri IP Adresi - Ödeme isteğinde gönderilen clientIp bilgisi
buyerIdintegerAlıcı Üye ID - Ödeme isteğinde gönderilen buyerMemberId bilgisi
buyerExternalIdstringAlıcı External ID - Ödeme isteğinde gönderilen fraudParams içerisindeki ya da buyerMember a ait externalId bilgisi
buyerPhoneNumberstringAlıcı Telefon Numarası - Ödeme isteğinde gönderilen fraudParams içerisindeki ya da buyerMember a ait phoneNumber bilgisi
buyerEmailstringAlıcı Email - Ödeme isteğinde gönderilen fraudParams içerisindeki ya da buyerMember a ait email bilgisi
currencystringPara Birimi - Ödeme isteğindeki currency bilgisi - Varsayılan TRY - bkz: Para Birimleri
paymentTypestringÖdeme Tipi - Bkz: Ödeme Tipleri
binNumberstringBin - Ödeme isteğindeki kartın ilk 8 hanesi
isForeignCardbooleanÖdeme isteği yabancı kartla mı yapıldı
hasSuccessPaymentIn30MinutesbooleanGeçmiş ödemelerde son 30 dk içinde başarılı ödemesi var mı
hasSuccessPaymentHourlybooleanGeçmiş ödemelerde son 1 saat içinde başarılı ödemesi var mı
hasSuccessPaymentDailybooleanGeçmiş ödemelerde son 1 gün içinde başarılı ödemesi var mı
sameClientIpIn30MinutesintegerGeçmiş ödemelerde son 30 dk içinde aynı IP'den toplam işlem sayısı
sameClientIpHourlyintegerGeçmiş ödemelerde son 1 saat içinde aynı IP'den toplam işlem sayısı
sameClientIpDailyintegerGeçmiş ödemelerde son 1 gün içinde aynı IP'den toplam işlem sayısı
sameClientIpTotalPaidPriceIn30MinutesfloatGeçmiş ödemelerde son 30 dk içinde aynı IP'den toplam işlem hacmi
sameClientIpTotalPaidPriceHourlyfloatGeçmiş ödemelerde son 1 saat içinde aynı IP'den toplam işlem hacmi
sameClientIpTotalPaidPriceDailyfloatGeçmiş ödemelerde son 1 gün içinde aynı IP'den toplam işlem hacmi
sameBuyerIdIn30MinutesintegerGeçmiş ödemelerde son 30 dk içinde aynı alıcı için işlem sayısı
sameBuyerIdHourlyintegerGeçmiş ödemelerde son 1 saat içinde aynı alıcı için işlem sayısı
sameBuyerIdDailyintegerGeçmiş ödemelerde son 1 gün içinde aynı alıcı için işlem sayısı
sameBuyerIdTotalPaidPriceIn30MinutesfloatGeçmiş ödemelerde son 30 dk içinde aynı alıcı için toplam işlem hacmi
sameBuyerIdTotalPaidPriceHourlyfloatGeçmiş ödemelerde son 1 saat içinde aynı alıcı için toplam işlem hacmi
sameBuyerIdTotalPaidPriceDailyfloatGeçmiş ödemelerde son 1 gün içinde aynı alıcı için toplam işlem hacmi
sameBuyerExternalIdIn30MinutesintegerGeçmiş ödemelerde son 30 dk içinde aynı externalId değerine sahip alıcı için işlem sayısı
sameBuyerExternalIdHourlyintegerGeçmiş ödemelerde son 1 saat içinde aynı externalId değerine sahip alıcı için işlem sayısı
sameBuyerExternalIdDailyintegerGeçmiş ödemelerde son 1 gün içinde aynı externalId değerine sahip alıcı için işlem sayısı
sameBuyerExternalIdTotalPaidPriceIn30MinutesfloatGeçmiş ödemelerde son 30 dk içinde aynı externalId değerine sahip alıcı için toplam işlem hacmi
sameBuyerExternalIdTotalPaidPriceHourlyfloatGeçmiş ödemelerde son 1 saat içinde aynı externalId değerine sahip alıcı için toplam işlem hacmi
sameBuyerExternalIdTotalPaidPriceDailyfloatGeçmiş ödemelerde son 1 gün içinde aynı externalId değerine sahip alıcı için toplam işlem hacmi
sameBuyerPhoneNumberIn30MinutesintegerGeçmiş ödemelerde son 30 dk içinde aynı telefon numarası değerine sahip alıcı için işlem sayısı
sameBuyerPhoneNumberHourlyintegerGeçmiş ödemelerde son 1 saat içinde aynı telefon numarası değerine sahip alıcı için işlem sayısı
sameBuyerPhoneNumberDailyintegerGeçmiş ödemelerde son 1 gün içinde aynı telefon numarası değerine sahip alıcı için işlem sayısı
sameBuyerPhoneNumberTotalPaidPriceIn30MinutesfloatGeçmiş ödemelerde son 30 dk içinde aynı telefon numarası değerine sahip alıcı için toplam işlem hacmi
sameBuyerPhoneNumberTotalPaidPriceHourlyfloatGeçmiş ödemelerde son 1 saat içinde aynı telefon numarası değerine sahip alıcı için toplam işlem hacmi
sameBuyerPhoneNumberTotalPaidPriceDailyfloatGeçmiş ödemelerde son 1 gün içinde aynı telefon numarası değerine sahip alıcı için toplam işlem hacmi
sameBuyerEmailIn30MinutesintegerGeçmiş ödemelerde son 30 dk içinde aynı email değerine sahip alıcı için işlem sayısı
sameBuyerEmailHourlyintegerGeçmiş ödemelerde son 1 saat içinde aynı email değerine sahip alıcı için işlem sayısı
sameBuyerEmailDailyintegerGeçmiş ödemelerde son 1 gün içinde aynı email değerine sahip alıcı için işlem sayısı
sameBuyerEmailTotalPaidPriceIn30MinutesfloatGeçmiş ödemelerde son 30 dk içinde aynı email değerine sahip alıcı için toplam işlem hacmi
sameBuyerEmailTotalPaidPriceHourlyfloatGeçmiş ödemelerde son 1 saat içinde aynı email değerine sahip alıcı için toplam işlem hacmi
sameBuyerEmailTotalPaidPriceDailyfloatGeçmiş ödemelerde son 1 gün içinde aynı email değerine sahip alıcı için toplam işlem hacmi
sameCardNumberIn30MinutesintegerGeçmiş ödemelerde son 30 dk içinde aynı kart ile işlem sayısı
sameCardNumberHourlyintegerGeçmiş ödemelerde son 1 saat içinde aynı kart ile işlem sayısı
sameCardNumberTotalPaidPriceIn30MinutesfloatGeçmiş ödemelerde son 30 dk içinde aynı kart ile toplam işlem tutarı
sameCardNumberTotalPaidPriceHourlyfloatGeçmiş ödemelerde son 1 saat içinde aynı kart ile toplam işlem tutarı
sameCardNumberHasFraudSuspectIn30MinutesbooleanGeçmiş ödemelerde son 30 dk içinde aynı kart ile FRAUD_SUSPECT error grubunda ödemesi var mı
sameCardNumberHasFraudSuspectHourlybooleanGeçmiş ödemelerde son 1 saat içinde aynı kart ile FRAUD_SUSPECT error grubunda ödemesi var mı
sameClientIpDistinctCardIn30MinutesintegerGeçmiş ödemelerde son 30 dk içinde aynı IP'den farklı kart ile alınan işlem sayısı
sameClientIpDistinctCardHourlyintegerGeçmiş ödemelerde son 1 saat içinde aynı IP'den farklı kart ile alınan işlem sayısı

Kural Örnekleri

Kuralınızı tanımlarken faydalanabileceğiniz örnek tanımlar ve açıklamaları aşağıda listelenmiştir.

KuralAçıklama
cardNumber in @blockedCardNumbersListe kullanım örneği - Engellenmiş kartlarla yapılan işlemleri yakalar
sameClientIpHourly > 2 and sameClientIpTotalPaidPriceHourly >= 10000Geçmiş ödemelerden Hesaplama Örneği - Son 1 saat içerisinde aynı IP adresinden toplam tutarı 10.000 TL'yi aşan en az 3 işlem yapan ödemeleri yakalar