Quickstart#
Dependencies#
This module requires API key to function. You may subscribe a free API key at https://www.fraudlabspro.com
Installation#
This module is available at NuGet: https://www.nuget.org/packages/FraudLabsPro
Sample Codes#
Validate Order#
You can validate your order as below:
Imports FraudLabsPro.FraudLabsPro
Imports Newtonsoft.Json
Module Program
Sub Main()
'Configure FraudLabs Pro API KEY
FraudLabsProConfig.APIKey = "YOUR_API_KEY"
Dim ScreenOrderPara As New OrderPara With {
.IPAddress = "146.112.62.105", ' IP Parameter is mandatory
.FirstName = "Hector",
.LastName = "Henderson",
.EmailAddress = "hh5566@gmail.com",
.BillAddress = "1766 PowderHouse Road",
.BillCity = "West Palm Beach",
.BillState = "FL",
.BillCountry = "US",
.BillZIPCode = "33401",
.CardNumber = "4556553172971283",
.UserPhone = "561-628-8674",
.UserOrderID = "67398",
.UserOrderMemo = "Online shop",
.Amount = "79.89",
.Quantity = "1",
.Currency = "USD",
.PaymentGateway = "stripe",
.PaymentMode = Order.PaymentMethods.CREDIT_CARD,
.ShippingFirstName = "Hector",
.ShippingLastName = "Henderson",
.ShippingAddress = "4469 Chestnut Street",
.ShippingCity = "Tampa",
.ShippingState = "FL",
.ShippingZIPCode = "33602",
.ShippingCountry = "US"
}
'ScreenOrder API
Dim ScreenOrder As New Order
Dim result = ScreenOrder.ScreenOrder(ScreenOrderPara) ' Send order to FraudLabs Pro
'pretty-print JSON
'Console.WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented))
Dim ipgeolocation = result("ip_geolocation")
Dim ipgeolocationfields = New ArrayList From {
"ip",
"continent",
"country_code",
"country_name",
"region",
"city",
"latitude",
"longitude",
"zip_code",
"timezone",
"isp_name",
"domain",
"netspeed",
"mobile_mnc",
"mobile_mcc",
"mobile_brand",
"elevation",
"usage_type",
"is_proxy",
"is_in_blacklist"
}
For Each field In ipgeolocationfields
Console.WriteLine("ip_geolocation." & field.ToString & ": " & ipgeolocation(field).ToString)
Next
Dim billingaddress = result("billing_address")
Dim billingaddressfields = New ArrayList From {
"ip_distance_in_km",
"ip_distance_in_mile",
"is_ip_country_match"
}
For Each field In billingaddressfields
Console.WriteLine("billing_address." & field.ToString & ": " & billingaddress(field).ToString)
Next
Dim shippingaddress = result("shipping_address")
Dim shippingaddressfields = New ArrayList From {
"is_address_ship_forward",
"is_bill_country_match",
"is_bill_state_match",
"is_bill_city_match",
"is_bill_postcode_match",
"is_export_controlled_country",
"is_in_blacklist"
}
For Each field In shippingaddressfields
Console.WriteLine("shipping_address." & field.ToString & ": " & shippingaddress(field).ToString)
Next
Dim emailaddress = result("email_address")
Dim emailaddressfields = New ArrayList From {
"is_free",
"is_disposable",
"is_domain_exist",
"is_new_domain_name",
"is_in_blacklist"
}
For Each field In emailaddressfields
Console.WriteLine("email_address." & field.ToString & ": " & emailaddress(field).ToString)
Next
Dim phonenumber = result("phone_number")
Dim phonenumberfields = New ArrayList From {
"is_disposable",
"is_in_blacklist"
}
For Each field In phonenumberfields
Console.WriteLine("phone_number." & field.ToString & ": " & phonenumber(field).ToString)
Next
Dim username = result("username")
Dim usernamefields = New ArrayList From {
"is_high_risk",
"is_in_blacklist"
}
For Each field In usernamefields
Console.WriteLine("username." & field.ToString & ": " & username(field).ToString)
Next
Dim creditcard = result("credit_card")
Dim creditcardfields = New ArrayList From {
"card_brand",
"card_type",
"card_issuing_bank",
"card_issuing_country",
"is_prepaid",
"is_bin_exist",
"is_bin_country_match",
"is_in_blacklist"
}
For Each field In creditcardfields
Console.WriteLine("credit_card." & field.ToString & ": " & creditcard(field).ToString)
Next
Dim device = result("device")
Dim devicefields = New ArrayList From {
"is_malware_exploit",
"is_in_blacklist"
}
For Each field In devicefields
Console.WriteLine("device." & field.ToString & ": " & device(field).ToString)
Next
Console.WriteLine("user_order_id: " & result("user_order_id").ToString)
Console.WriteLine("fraudlabspro_id: " & result("fraudlabspro_id").ToString)
Console.WriteLine("fraudlabspro_score: " & result("fraudlabspro_score").ToString)
Console.WriteLine("fraudlabspro_status: " & result("fraudlabspro_status").ToString)
Console.WriteLine("fraudlabspro_rules: " & result("fraudlabspro_rules").ToString)
Console.WriteLine("api_version: " & result("api_version").ToString)
Console.WriteLine("remaining_credits: " & result("remaining_credits").ToString)
End Sub
End Module
Get Transaction#
You can get the details of a transaction as below:
Imports FraudLabsPro.FraudLabsPro
Imports Newtonsoft.Json
Module Program
Sub Main()
'Configure FraudLabs Pro API KEY
FraudLabsProConfig.APIKey = "YOUR_API_KEY"
Dim GetOrderPara As New OrderPara With {
.ID = "20240112-1EILFK",
.IDType = Order.IDTypes.FLP_ID
}
'Get Order Result API
Dim OrderResult As New Order
Dim result = OrderResult.GetOrderResult(GetOrderPara) 'Get order result from FraudLabs Pro
'pretty-print JSON
'Console.WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented))
Dim ipgeolocation = result("ip_geolocation")
Dim ipgeolocationfields = New ArrayList From {
"ip",
"continent",
"country_code",
"country_name",
"region",
"city",
"latitude",
"longitude",
"zip_code",
"timezone",
"isp_name",
"domain",
"netspeed",
"mobile_mnc",
"mobile_mcc",
"mobile_brand",
"elevation",
"usage_type",
"is_proxy",
"is_in_blacklist"
}
For Each field In ipgeolocationfields
Console.WriteLine("ip_geolocation." & field.ToString & ": " & ipgeolocation(field).ToString)
Next
Dim billingaddress = result("billing_address")
Dim billingaddressfields = New ArrayList From {
"ip_distance_in_km",
"ip_distance_in_mile",
"is_ip_country_match"
}
For Each field In billingaddressfields
Console.WriteLine("billing_address." & field.ToString & ": " & billingaddress(field).ToString)
Next
Dim shippingaddress = result("shipping_address")
Dim shippingaddressfields = New ArrayList From {
"is_address_ship_forward",
"is_bill_country_match",
"is_bill_state_match",
"is_bill_city_match",
"is_bill_postcode_match",
"is_export_controlled_country",
"is_in_blacklist"
}
For Each field In shippingaddressfields
Console.WriteLine("shipping_address." & field.ToString & ": " & shippingaddress(field).ToString)
Next
Dim emailaddress = result("email_address")
Dim emailaddressfields = New ArrayList From {
"is_free",
"is_disposable",
"is_domain_exist",
"is_new_domain_name",
"is_in_blacklist"
}
For Each field In emailaddressfields
Console.WriteLine("email_address." & field.ToString & ": " & emailaddress(field).ToString)
Next
Dim phonenumber = result("phone_number")
Dim phonenumberfields = New ArrayList From {
"is_disposable",
"is_in_blacklist"
}
For Each field In phonenumberfields
Console.WriteLine("phone_number." & field.ToString & ": " & phonenumber(field).ToString)
Next
Dim username = result("username")
Dim usernamefields = New ArrayList From {
"is_high_risk",
"is_in_blacklist"
}
For Each field In usernamefields
Console.WriteLine("username." & field.ToString & ": " & username(field).ToString)
Next
Dim creditcard = result("credit_card")
Dim creditcardfields = New ArrayList From {
"card_brand",
"card_type",
"card_issuing_bank",
"card_issuing_country",
"is_prepaid",
"is_bin_exist",
"is_bin_country_match",
"is_in_blacklist"
}
For Each field In creditcardfields
Console.WriteLine("credit_card." & field.ToString & ": " & creditcard(field).ToString)
Next
Dim device = result("device")
Dim devicefields = New ArrayList From {
"is_malware_exploit",
"is_in_blacklist"
}
For Each field In devicefields
Console.WriteLine("device." & field.ToString & ": " & device(field).ToString)
Next
Console.WriteLine("user_order_id: " & result("user_order_id").ToString)
Console.WriteLine("fraudlabspro_id: " & result("fraudlabspro_id").ToString)
Console.WriteLine("fraudlabspro_score: " & result("fraudlabspro_score").ToString)
Console.WriteLine("fraudlabspro_status: " & result("fraudlabspro_status").ToString)
Console.WriteLine("fraudlabspro_rules: " & result("fraudlabspro_rules").ToString)
End Sub
End Module
Feedback#
You can approve, reject or ignore a transaction as below:
Imports FraudLabsPro.FraudLabsPro
Imports Newtonsoft.Json
Module Program
Sub Main()
'Configure FraudLabs Pro API KEY
FraudLabsProConfig.APIKey = "YOUR_API_KEY"
'Set FeedBack Order parameter
Dim FeedBackPara As New OrderPara With {
.ID = "20240112-1EILFK",
.Action = Order.Action.APPROVE, ' Please refer to reference section for full list of feedback statuses
.Note = "This customer made a valid purchase before."
}
'Feedback Order API
Dim FeedbackOrder As New Order
Dim result = FeedbackOrder.FeedbackOrder(FeedBackPara)
'pretty-print JSON
'Console.WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented))
Console.WriteLine("fraudlabspro_id: " & result("fraudlabspro_id").ToString)
End Sub
End Module
Send SMS Verification#
You can send SMS verification for authentication purpose as below:
Imports FraudLabsPro.FraudLabsPro
Imports Newtonsoft.Json
Module Program
Sub Main()
'Configure FraudLabs Pro API KEY
FraudLabsProConfig.APIKey = "YOUR_API_KEY"
'Send SMS Verification API
Dim SendSMS As New SMSVerification
'Sets SMS details for authentication purpose
Dim SMSPara As New SMSVerificationPara With {
.Tel = "+123456789",
.CountryCode = "US",
.Message = "Hi, your OTP is <otp>."
}
Dim result = SendSMS.SendSMS(SMSPara)
'pretty-print JSON
'Console.WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented))
Console.WriteLine("tran_id: " & result("tran_id").ToString)
Console.WriteLine("credits_remaining: " & result("credits_remaining").ToString)
End Sub
End Module
Get SMS Verification Result#
You can verify the OTP sent by Fraudlabs Pro SMS verification API as below:
Imports FraudLabsPro.FraudLabsPro
Imports Newtonsoft.Json
Module Program
Sub Main()
'Configure FraudLabs Pro API KEY
FraudLabsProConfig.APIKey = "YOUR_API_KEY"
'Get Verification Result API
Dim VerifySMS As New SMSVerification
'Sets SMS details for authentication purpose
Dim SMSPara As New SMSVerificationPara With {
.TransactionID = "UNIQUE_TRANS_ID",
.OTP = "OTP_RECEIVED"
}
Dim result = VerifySMS.VerifySMS(SMSPara)
'pretty-print JSON
'Console.WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented))
Console.WriteLine("result: " & result("result").ToString)
End Sub
End Module
Report Payment Gateway Feedback#
You can report payment gateway feedback as below:
Imports FraudLabsPro.FraudLabsPro
Imports Newtonsoft.Json
Module Program
Sub Main()
'Configure FraudLabs Pro API KEY
FraudLabsProConfig.APIKey = "YOUR_API_KEY"
'Payment Feedback API
Dim PaymentFeedback As New Payment
'Set Payment Feedback parameter
Dim PaymentParam As New PaymentPara With {
.EmailAddress = "hh5566@gmail.com",
.Status = "declined",
.Message = "Call Issuer. Pick Up Card. (2047)",
.FraudLabsProID = "20260131-O263CR"
}
Dim result = PaymentFeedback.Feedback(PaymentParam)
'pretty-print JSON
'Console.WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented))
Console.WriteLine("result: " & result("result").ToString)
End Sub
End Module