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_CHECK_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 in @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
cardHolderNamestringKart Sahibinin Adı
cardBrandstringKart Ailesi
clientIpstringMüşteri IP Adresi - İstekte gönderilen clientIp bilgisi
buyerIdintegerAlıcı Üye ID - İstekte gönderilen buyerMemberId bilgisi
buyerExternalIdstringAlıcı External ID - İstekte gönderilen fraudParams içerisindeki ya da buyerMember a ait externalId bilgisi
buyerPhoneNumberstringAlıcı Telefon Numarası - İstekte gönderilen fraudParams içerisindeki ya da buyerMember a ait phoneNumber bilgisi
buyerEmailstringAlıcı Email - İstekte gönderilen fraudParams içerisindeki ya da buyerMember a ait email bilgisi
buyerEmailDomainstringAlıcı Email Domaini - İstekte gönderilen fraudParams içerisindeki ya da buyerMember a ait email'in domain bilgisi
customFraudVariablestringÖzel Değişken - İstekte gönderilen fraudParams içerisindeki customFraudVariable bilgisi
currencystringPara Birimi - İstekteki currency bilgisi - Varsayılan TRY
paymentTypestringÖdeme Tipi - Bkz: Ödeme Tipleri
binNumberstringBin - İstekteki kartın ilk 8 hanesi
conversationIdstringConversation ID - İstekte gönderilen conversationId bilgisi
externalIdstringExternal ID - İstekte gönderilen externalId bilgisi
checkoutTokenstringCheckout Token - İstekte gönderilen checkoutToken bilgisi
paidPricefloatTahsil Edilen Tutar
isThreeDSbooleanÖdeme 3D secure ile mi alındı
isForeignCardbooleanİşlem yabancı kartla mı yapıldı
hasSuccessPaymentIn30MinutesbooleanGeçmiş işlemlerde son 30 dk içinde başarılı işlemi var mı
hasSuccessPaymentHourlybooleanGeçmiş işlemlerde son 1 saat içinde başarılı işlemi var mı
hasSuccessPaymentDailybooleanGeçmiş işlemlerde son 1 gün içinde başarılı işlemi var mı
sameIPHasFraudSuspectHourlybooleanGeçmiş işlemlerde son 1 saat içinde aynı IP'den FRAUD_SUSPECT error grubunda işlemi var mı
sameClientIpIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı IP'den toplam işlem sayısı
sameClientIpHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı IP'den toplam işlem sayısı
sameClientIpDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı IP'den toplam işlem sayısı
sameClientIpTotalPaidPriceIn30MinutesfloatGeçmiş işlemlerde son 30 dk içinde aynı IP'den aynı para birimindeki toplam işlem hacmi
sameClientIpTotalPaidPriceHourlyfloatGeçmiş işlemlerde son 1 saat içinde aynı IP'den aynı para birimindeki toplam işlem hacmi
sameClientIpTotalPaidPriceDailyfloatGeçmiş işlemlerde son 1 gün içinde aynı IP'den aynı para birimindeki toplam işlem hacmi
sameClientIpDistinctCardIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı IP'den farklı kart ile alınan işlem sayısı
sameClientIpDistinctCardHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı IP'den farklı kart ile alınan işlem sayısı
sameClientIpDistinctCardDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı IP'den farklı kart ile alınan işlem sayısı
sameBuyerIdIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı alıcı için işlem sayısı
sameBuyerIdHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı alıcı için işlem sayısı
sameBuyerIdDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı alıcı için işlem sayısı
sameBuyerIdTotalPaidPriceIn30MinutesfloatGeçmiş işlemlerde son 30 dk içinde aynı alıcı için aynı para birimindeki toplam işlem hacmi
sameBuyerIdTotalPaidPriceHourlyfloatGeçmiş işlemlerde son 1 saat içinde aynı alıcı için aynı para birimindeki toplam işlem hacmi
sameBuyerIdTotalPaidPriceDailyfloatGeçmiş işlemlerde son 1 gün içinde aynı alıcı için aynı para birimindeki toplam işlem hacmi
sameBuyerIdDistinctCardIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı alıcı ile farklı kartla yapılan işlem sayısı
sameBuyerIdDistinctCardHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı alıcı ile farklı kartla yapılan işlem sayısı
sameBuyerIdDistinctCardDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı alıcı ile farklı kartla yapılan işlem sayısı
sameBuyerExternalIdIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı externalId değerine sahip alıcı için işlem sayısı
sameBuyerExternalIdHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı externalId değerine sahip alıcı için işlem sayısı
sameBuyerExternalIdDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı externalId değerine sahip alıcı için işlem sayısı
sameBuyerExternalIdTotalPaidPriceIn30MinutesfloatGeçmiş işlemlerde son 30 dk içinde aynı externalId değerine sahip alıcı için toplam işlem hacmi
sameBuyerExternalIdTotalPaidPriceHourlyfloatGeçmiş işlemlerde son 1 saat içinde aynı externalId değerine sahip alıcı için toplam işlem hacmi
sameBuyerExternalIdTotalPaidPriceDailyfloatGeçmiş işlemlerde son 1 gün içinde aynı externalId değerine sahip alıcı için toplam işlem hacmi
sameBuyerExternalIdDistinctCardIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı externalId değerine sahip alıcı ile farklı kartla yapılan işlem sayısı
sameBuyerExternalIdDistinctCardHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı externalId değerine sahip alıcı ile farklı kartla yapılan işlem sayısı
sameBuyerExternalIdDistinctCardDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı externalId değerine sahip alıcı ile farklı kartla yapılan işlem sayısı
sameBuyerPhoneNumberIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı telefon numarası değerine sahip alıcı için işlem sayısı
sameBuyerPhoneNumberHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı telefon numarası değerine sahip alıcı için işlem sayısı
sameBuyerPhoneNumberDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı telefon numarası değerine sahip alıcı için işlem sayısı
sameBuyerPhoneNumberTotalPaidPriceIn30MinutesfloatGeçmiş işlemlerde son 30 dk içinde aynı telefon numarası değerine sahip alıcı için toplam işlem hacmi
sameBuyerPhoneNumberTotalPaidPriceHourlyfloatGeçmiş işlemlerde son 1 saat içinde aynı telefon numarası değerine sahip alıcı için toplam işlem hacmi
sameBuyerPhoneNumberTotalPaidPriceDailyfloatGeçmiş işlemlerde son 1 gün içinde aynı telefon numarası değerine sahip alıcı için toplam işlem hacmi
sameBuyerPhoneNumberDistinctCardIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı telefon numarası değerine sahip alıcı ile farklı kartla yapılan işlem sayısı
sameBuyerPhoneNumberDistinctCardHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı telefon numarası değerine sahip alıcı ile farklı kartla yapılan işlem sayısı
sameBuyerPhoneNumberDistinctCardDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı telefon numarası değerine sahip alıcı ile farklı kartla yapılan işlem sayısı
sameBuyerEmailIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı email değerine sahip alıcı için işlem sayısı
sameBuyerEmailHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı email değerine sahip alıcı için işlem sayısı
sameBuyerEmailDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı email değerine sahip alıcı için işlem sayısı
sameBuyerEmailTotalPaidPriceIn30MinutesfloatGeçmiş işlemlerde son 30 dk içinde aynı email değerine sahip alıcı için toplam işlem hacmi
sameBuyerEmailTotalPaidPriceHourlyfloatGeçmiş işlemlerde son 1 saat içinde aynı email değerine sahip alıcı için toplam işlem hacmi
sameBuyerEmailTotalPaidPriceDailyfloatGeçmiş işlemlerde son 1 gün içinde aynı email değerine sahip alıcı için toplam işlem hacmi
sameBuyerEmailDistinctCardIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı email değerine sahip alıcı ile farklı kartla yapılan işlem sayısı
sameBuyerEmailDistinctCardHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı email değerine sahip alıcı ile farklı kartla yapılan işlem sayısı
sameBuyerEmailDistinctCardDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı email değerine sahip alıcı ile farklı kartla yapılan işlem sayısı
sameCardNumberIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı kart ile işlem sayısı
sameCardNumberHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı kart ile işlem sayısı
sameCardNumberDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı kart ile işlem sayısı
sameCardNumberTotalPaidPriceIn30MinutesfloatGeçmiş işlemlerde son 30 dk içinde aynı kart ile aynı para birimindeki toplam işlem hacmi
sameCardNumberTotalPaidPriceHourlyfloatGeçmiş işlemlerde son 1 saat içinde aynı kart ile aynı para birimindeki toplam işlem hacmi
sameCardNumberTotalPaidPriceDailyfloatGeçmiş işlemlerde son 1 gün içinde aynı kart ile aynı para birimindeki toplam işlem hacmi
sameCardNumberHasFraudSuspectIn30MinutesbooleanGeçmiş işlemlerde son 30 dk içinde aynı kart ile FRAUD_SUSPECT error grubunda işlemi var mı
sameCardNumberHasFraudSuspectHourlybooleanGeçmiş işlemlerde son 1 saat içinde aynı kart ile FRAUD_SUSPECT error grubunda işlemi var mı
sameCardNumberHasFraudSuspectDailybooleanGeçmiş işlemlerde son 1 gün içinde aynı kart ile FRAUD_SUSPECT error grubunda işlemi var mı
sameCardNumberInvalidCvvIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı kart ile INVALID_CVC2 hatası alınan işlem sayısı
sameCardNumberInvalidCvvHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı kart ile INVALID_CVC2 hatası alınan işlem sayısı
sameCardNumberInvalidCvvDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı kart ile INVALID_CVC2 hatası alınan işlem sayısı
sameCardNumberInvalidExpireDateIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı kart ile INVALID_EXPIRE_YEAR_MONTH hatası alınan işlem sayısı
sameCardNumberInvalidExpireDateHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı kart ile INVALID_EXPIRE_YEAR_MONTH hatası alınan işlem sayısı
sameCardNumberInvalidExpireDateDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı kart ile INVALID_EXPIRE_YEAR_MONTH hatası alınan işlem sayısı
sameCustomFraudVariableIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı özel değişken değerine sahip işlem sayısı
sameCustomFraudVariableHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı özel değişken değerine sahip işlem sayısı
sameCustomFraudVariableDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı özel değişken değerine sahip işlem sayısı
sameCustomFraudVariableTotalPaidPriceIn30MinutesfloatGeçmiş işlemlerde son 30 dk içinde aynı özel değişken değerine sahip toplam işlem hacmi
sameCustomFraudVariableTotalPaidPriceHourlyfloatGeçmiş işlemlerde son 1 saat içinde aynı özel değişken değerine sahip toplam işlem hacmi
sameCustomFraudVariableTotalPaidPriceDailyfloatGeçmiş işlemlerde son 1 gün içinde aynı özel değişken değerine sahip toplam işlem hacmi
sameCustomFraudVariableDistinctCardIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde özel değişken değerine sahip farklı kart ile alınan işlem sayısı
sameCustomFraudVariableDistinctCardHourlyintegerGeçmiş işlemlerde son 1 saat içinde özel değişken değerine sahip farklı kart ile alınan işlem sayısı
sameCustomFraudVariableDistinctCardDailyintegerGeçmiş işlemlerde son 1 gün içinde özel değişken değerine sahip farklı kart ile alınan işlem sayısı
sameConversationIdIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı conversationId ile işlem sayısı
sameConversationIdHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı conversationId ile işlem sayısı
sameConversationIdDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı conversationId ile işlem sayısı
sameConversationIdTotalPaidPriceIn30MinutesfloatGeçmiş işlemlerde son 30 dk içinde aynı conversationId ile aynı para birimindeki toplam işlem hacmi
sameConversationIdTotalPaidPriceHourlyfloatGeçmiş işlemlerde son 1 saat içinde aynı conversationId ile aynı para birimindeki toplam işlem hacmi
sameConversationIdTotalPaidPriceDailyfloatGeçmiş işlemlerde son 1 gün içinde aynı conversationId ile aynı para birimindeki toplam işlem hacmi
sameConversationIdDistinctCardIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı conversationId ile farklı kartla yapılan işlem sayısı
sameConversationIdDistinctCardHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı conversationId ile farklı kartla yapılan işlem sayısı
sameConversationIdDistinctCardDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı conversationId ile farklı kartla yapılan işlem sayısı
sameExternalIdIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı externalId ile işlem sayısı
sameExternalIdHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı externalId ile işlem sayısı
sameExternalIdDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı externalId ile işlem sayısı
sameExternalIdTotalPaidPriceIn30MinutesfloatGeçmiş işlemlerde son 30 dk içinde aynı externalId ile aynı para birimindeki toplam işlem hacmi
sameExternalIdTotalPaidPriceHourlyfloatGeçmiş işlemlerde son 1 saat içinde aynı externalId ile aynı para birimindeki toplam işlem hacmi
sameExternalIdTotalPaidPriceDailyfloatGeçmiş işlemlerde son 1 gün içinde aynı externalId ile aynı para birimindeki toplam işlem hacmi
sameExternalIdDistinctCardIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı externalId ile farklı kartla yapılan işlem sayısı
sameExternalIdDistinctCardHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı externalId ile farklı kartla yapılan işlem sayısı
sameExternalIdDistinctCardDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı externalId ile farklı kartla yapılan işlem sayısı
sameCheckoutTokenIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı checkoutToken ile işlem sayısı
sameCheckoutTokenHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı checkoutToken ile işlem sayısı
sameCheckoutTokenDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı checkoutToken ile işlem sayısı
sameCheckoutTokenTotalPaidPriceIn30MinutesfloatGeçmiş işlemlerde son 30 dk içinde aynı checkoutToken ile aynı para birimindeki toplam işlem hacmi
sameCheckoutTokenTotalPaidPriceHourlyfloatGeçmiş işlemlerde son 1 saat içinde aynı checkoutToken ile aynı para birimindeki toplam işlem hacmi
sameCheckoutTokenTotalPaidPriceDailyfloatGeçmiş işlemlerde son 1 gün içinde aynı checkoutToken ile aynı para birimindeki toplam işlem hacmi
sameCheckoutTokenDistinctCardIn30MinutesintegerGeçmiş işlemlerde son 30 dk içinde aynı checkoutToken ile farklı kartla yapılan işlem sayısı
sameCheckoutTokenDistinctCardHourlyintegerGeçmiş işlemlerde son 1 saat içinde aynı checkoutToken ile farklı kartla yapılan işlem sayısı
sameCheckoutTokenDistinctCardDailyintegerGeçmiş işlemlerde son 1 gün içinde aynı checkoutToken ile farklı kartla yapılan 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ı IPv4 adresinden toplam tutarı 10.000 TL'yi aşan en az 3 işlem yapan ödemeleri yakalar