Kurallar

3D Secure olmayan ö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ı
Aksiyon Açıklama
REVIEW İncelemeye Al
BLOCK Engelle

1. 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şturur clientIp == "127.0.0.1
!= Koşulda kullanılan değişkenin tanımlanan değere eşit olmadığı koşulunu oluşturur clientIp != "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ılabilir sameClientIpIn30Minutes < 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ılabilir sameClientIpIn30Minutes <= 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ılabilir sameClientIpIn30Minutes > 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ılabilir sameClientIpIn30Minutes >= 3
in Koşulda kullanılan değişkenin bir listede tanımlı olduğu koşulunu oluşturur clientIp in @ipBlackList
not in Koşulda kullanılan değişkenin bir listede tanımlı olmadığı koşulunu oluşturur clientIp 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 Tipi Açıklama
cardNumber cardFingerprint Kart Parmak İzi
clientIp string Müşteri IP Adresi - Ödeme isteğinde gönderilen clientIp bilgisi
buyerId integer Alıcı Üye ID - Ödeme isteğinde gönderilen buyerMemberId bilgisi
buyerExternalId string Alıcı External ID - Ödeme isteğinde gönderilen fraudParams içerisindeki ya da buyerMember a ait externalId bilgisi
buyerPhoneNumber string Alıcı Telefon Numarası - Ödeme isteğinde gönderilen fraudParams içerisindeki ya da buyerMember a ait phoneNumber bilgisi
buyerEmail string Alıcı Email - Ödeme isteğinde gönderilen fraudParams içerisindeki ya da buyerMember a ait email bilgisi
currency string Para Birimi - Ödemeye isteğindeki currency bilgisi - Varsayılan TRY - bkz: Para Birimleri
hasSuccessPaymentIn30Minutes boolean Geçmiş ödemelerde son 30 dk içinde başarılı ödemesi var mı
hasSuccessPaymentHourly boolean Geçmiş ödemelerde son 1 saat içinde başarılı ödemesi var mı
hasSuccessPaymentDaily boolean Geçmiş ödemelerde son 1 gün içinde başarılı ödemesi var mı
sameClientIpIn30Minutes integer Geçmiş ödemelerde son 30 dk içinde aynı IP'den toplam işlem sayısı
sameClientIpHourly integer Geçmiş ödemelerde son 1 saat içinde aynı IP'den toplam işlem sayısı
sameClientIpDaily integer Geçmiş ödemelerde son 1 gün içinde aynı IP'den toplam işlem sayısı
sameClientIpTotalPaidPriceIn30Minutes float Geçmiş ödemelerde son 30 dk içinde aynı IP'den toplam işlem hacmi
sameClientIpTotalPaidPriceHourly float Geçmiş ödemelerde son 1 saat içinde aynı IP'den toplam işlem hacmi
sameClientIpTotalPaidPriceDaily float Geçmiş ödemelerde son 1 gün içinde aynı IP'den toplam işlem hacmi
sameBuyerIdIn30Minutes integer Geçmiş ödemelerde son 30 dk içinde aynı alıcı için işlem sayısı
sameBuyerIdHourly integer Geçmiş ödemelerde son 1 saat içinde aynı alıcı için işlem sayısı
sameBuyerIdDaily integer Geçmiş ödemelerde son 1 gün içinde aynı alıcı için işlem sayısı
sameBuyerIdTotalPaidPriceIn30Minutes float Geçmiş ödemelerde son 30 dk içinde aynı alıcı için toplam işlem hacmi
sameBuyerIdTotalPaidPriceHourly float Geçmiş ödemelerde son 1 saat içinde aynı alıcı için toplam işlem hacmi
sameBuyerIdTotalPaidPriceDaily float Geçmiş ödemelerde son 1 gün içinde aynı alıcı için toplam işlem hacmi
sameBuyerExternalIdIn30Minutes integer Geçmiş ödemelerde son 30 dk içinde aynı externalId değerine sahip alıcı için işlem sayısı
sameBuyerExternalIdHourly integer Geçmiş ödemelerde son 1 saat içinde aynı externalId değerine sahip alıcı için işlem sayısı
sameBuyerExternalIdDaily integer Geçmiş ödemelerde son 1 gün içinde aynı externalId değerine sahip alıcı için işlem sayısı
sameBuyerExternalIdTotalPaidPriceIn30Minutes float Geçmiş ödemelerde son 30 dk içinde aynı externalId değerine sahip alıcı için toplam işlem hacmi
sameBuyerExternalIdTotalPaidPriceHourly float Geçmiş ödemelerde son 1 saat içinde aynı externalId değerine sahip alıcı için toplam işlem hacmi
sameBuyerExternalIdTotalPaidPriceDaily float Geçmiş ödemelerde son 1 gün içinde aynı externalId değerine sahip alıcı için toplam işlem hacmi
sameBuyerPhoneNumberIn30Minutes integer Geçmiş ödemelerde son 30 dk içinde aynı telefon numarası değerine sahip alıcı için işlem sayısı
sameBuyerPhoneNumberHourly integer Geçmiş ödemelerde son 1 saat içinde aynı telefon numarası değerine sahip alıcı için işlem sayısı
sameBuyerPhoneNumberDaily integer Geçmiş ödemelerde son 1 gün içinde aynı telefon numarası değerine sahip alıcı için işlem sayısı
sameBuyerPhoneNumberTotalPaidPriceIn30Minutes float Geçmiş ödemelerde son 30 dk içinde aynı telefon numarası değerine sahip alıcı için toplam işlem hacmi
sameBuyerPhoneNumberTotalPaidPriceHourly float Geçmiş ödemelerde son 1 saat içinde aynı telefon numarası değerine sahip alıcı için toplam işlem hacmi
sameBuyerPhoneNumberTotalPaidPriceDaily float Geçmiş ödemelerde son 1 gün içinde aynı telefon numarası değerine sahip alıcı için toplam işlem hacmi
sameBuyerEmailIn30Minutes integer Geçmiş ödemelerde son 30 dk içinde aynı email değerine sahip alıcı için işlem sayısı
sameBuyerEmailHourly integer Geçmiş ödemelerde son 1 saat içinde aynı email değerine sahip alıcı için işlem sayısı
sameBuyerEmailDaily integer Geçmiş ödemelerde son 1 gün içinde aynı email değerine sahip alıcı için işlem sayısı
sameBuyerEmailTotalPaidPriceIn30Minutes float Geçmiş ödemelerde son 30 dk içinde aynı email değerine sahip alıcı için toplam işlem hacmi
sameBuyerEmailTotalPaidPriceHourly float Geçmiş ödemelerde son 1 saat içinde aynı email değerine sahip alıcı için toplam işlem hacmi
sameBuyerEmailTotalPaidPriceDaily float Geçmiş ödemelerde son 1 gün içinde aynı email değerine sahip alıcı için toplam işlem hacmi
sameCardNumberIn30Minutes integer Geçmiş ödemelerde son 30 dk içinde aynı kart ile işlem sayısı
sameCardNumberHourly integer Geçmiş ödemelerde son 1 saat içinde aynı kart ile işlem sayısı
sameCardNumberTotalPaidPriceIn30Minutes float Geçmiş ödemelerde son 30 dk içinde aynı kart ile toplam işlem tutarı
sameCardNumberTotalPaidPriceHourly float Geçmiş ödemelerde son 1 saat içinde aynı kart ile toplam işlem tutarı
sameCardNumberHasFraudSuspectIn30Minutes boolean Geçmiş ödemelerde son 30 dk içinde aynı kart ile FRAUD_SUSPECT error grubunda ödemesi var mı
sameCardNumberHasFraudSuspectHourly boolean Geçmiş ödemelerde son 1 saat içinde aynı kart ile FRAUD_SUSPECT error grubunda ödemesi var mı

Kural Örnekleri

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

Kural Açıklama
cardNumber in @blockedCardNumbers Liste kullanım örneği - Engellenmiş kartlarla yapılan işlemleri yakalar
sameClientIpHourly > 2 and sameClientIpTotalPaidPriceHourly >= 10000 Geç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