Credit card fraud has become pervasive on the Internet. According to MasterCard International, account takeover fraud has increased by 369% since 1995. It has become one of the fastest growing types of fraud, and one of the more difficult to combat. More than $700 million in online sales were lost to fraud in 2001, representing 1.14 percent of total annual online sales of $61.8 billion, according to GartnerG2. Even if the credit card company has given the authorization as to the validity of the card, there are several ways fraudulent cards can be used on your site. The card may have been lost or stolen, but the card owner is yet to report its loss. Or the number on the card (and not the card itself) may have been lifted without the knowledge of the owner. There is also a scam called identity theft, where the card has been issued under false pretenses using someone else’s identity and data.
As an online merchant, you need to have a system to check the authenticity of orders placed to safeguard your business. While the effort may require additional time and money, it can save you the cost and stress caused by charge-backs for fraudulent orders. You lost your physical products; you lose the sale price; you lose another business opportunity; and you will be fined an additional $15-$50 chargeback fee. If you have a high percentage of charge-backs, your card services company can even blacklist you and cancel your merchant account. You will also spend time looking up the order and provide the requested information to your card services company. All of these hassles are things you can surely do without.
E-Commerce Fraud Prevention #
Red Flags and Verification Strategies #
Online fraud can severely impact your bottom line. Recognizing the common warning signs of fraudulent orders and implementing modern verification technologies can help protect your business from costly chargebacks.
Common E-Commerce Fraud Red Flags #
When reviewing incoming orders, be on the lookout for the following suspicious patterns:
- High-Risk Shipping Destinations: Orders shipping to regions with historically high rates of fraud or notoriously unverifiable address systems require extra scrutiny.
- Untraceable Email Addresses: Fraudsters frequently use free, anonymous email services (such as Hotmail or Yahoo) to avoid being traced.
- High-Value or Bulk Orders: Be wary of unusually expensive orders, particularly for brand-name luxury goods or multiple quantities of high-resale items (e.g., ordering three of the same gaming console or smartphone).
- Urgent Shipping Demands: Fraudulent buyers often insist on overnight or express 1-day shipping, aiming to get the goods delivered before the stolen credit card is reported and canceled.
- Shipping & Billing Mismatches: A classic fraud indicator is when the delivery address differs from the credit card’s billing address. For high-value items, consider enforcing a policy that only allows shipping to the cardholder’s verified billing address.
- Suspicious or Incomplete Addresses: Generic, overly simple, or obviously fake billing addresses (e.g., 123 Main St, New York) are immediate red flags. Use online address verification tools to check validity.
- Unsecured Delivery Locations: Orders requesting delivery to a P.O. Box or demanding the courier “leave at the door” carry a higher risk, as they lack a reliable proof-of-delivery signature.
Leveraging Geo-Targeting to Detect Fraud #
Modern fraud prevention relies heavily on geolocation technology to pinpoint where an order is actually being placed. By cross-referencing a customer’s physical location with their provided billing and shipping details, you can easily catch international fraudsters using stolen local credit cards.
The Role of IP Geolocation #
When a user places an order, an IP lookup tool (such as IP2Location) translates their digital IP address into a physical country of origin. This allows merchants to automate fraud detection across various server-side and client-side programming environments (including PHP, Python, ASP, and C++).
How it works: If the IP lookup reveals the buyer is physically located in Country X, but the credit card billing address is in Country Y, the system can instantly flag the transaction for manual review.
Real-World Example: The Stolen Card Scenario #
Consider this scenario for an online merchant:
- The Order Details Received:
- Name: John Ma
- Address: 123 Main St, New York, NY, United States
- Payment: Credit Card approved by the merchant processor (since the billing address matches the bank’s records).
- The Hidden Reality: The credit card data was actually stolen by an fraudster located overseas. The fraudster purchases digital products using John Ma’s real details, and the automated system initially approves it because the bank data is correct.
- The Geolocation Solution: By analyzing the buyer’s IP address (e.g.,
161.139.12.3), IP geolocation technology reveals that the connection is actually originating from outside the United States.
By filtering out these geographic discrepancies before completing the order or delivering digital goods, businesses can stop fraud in its tracks and save thousands in lost inventory and chargeback fees.
Using IP2Location .NET Component #
Technical Implementation via .NET
To automate this process, you can integrate a dedicated geolocation library directly into your development workflow.
In this implementation, we utilize the fully functional IP2Location .NET Component (available at https://www.ip2location.com/software/dot-net-component) to query the visitor’s country by their IP address:
- Installation: Run the installer to place the IP2Location .NET component onto your local drive.
- Locate Files: Navigate to the default directory (typically
C:\Program Files\IP2Location) to retrieve theIP2Location.dllfile and the accompanying sample database. - Project Integration: Add a reference to this DLL within your Visual Studio web project. A copy of the component will automatically be deployed to your project’s
/bindirectory.
Sample Code (VB.NET)
Imports IP2Location
Private Sub Query(ByVal strIPAddress As String, billingCountry As String)
Dim oIPResult As New IP2Location.IPResult
Try
If strIPAddress <> "" Then
IP2Location.Component.IPDatabasePath = "C:\Program Files\IP2Location\Database\IP-COUNTRY.SAMPLE.BIN"
oIPResult = IP2Location.Component.IPQuery(strIPAddress)
Select Case oIPResult.Status
Case "OK"
If oIPResult.CountryShort = billingCountry Then
' buyer is from the same country by IP address
Else
' buyer is from the different country by IP address
End If
Case "EMPTY_IP_ADDRESS"
Response.Write("IP Address cannot be blank.")
Case "INVALID_IP_ADDRESS"
Response.Write("Invalid IP Address.")
Case "MISSING_FILE"
Response.Write("Invalid Database Path.")
End Select
Else
Response.Write("IP Address cannot be blank.")
End If
Catch ex As Exception
Response.Write(ex.Message)
Finally
oIPResult = Nothing
End Try
End Sub
Sample Code (C#)
Sample Code (C#)
Using IP2Location;
private void Query(string strIPAddress, string billingCountry)
{
IPResult oIPResult = new IP2Location.IPResult();
try
{
if (strIPAddress != "")
{
IP2Location.Component.IPDatabasePath = "C:\Program Files\IP2Location\Database\IP-COUNTRY.SAMPLE.BIN";
oIPResult = IP2Location.Component.IPQuery(strIPAddress);
switch(oIPResult.Status.ToString())
{
case "OK":
if (oIPResult.CountryShort == billingCountry) {
// buyer is from the same country by IP address
} else {
// buyer is from the different country by IP address
}
break;
case "EMPTY_IP_ADDRESS":
Response.Write("IP Address cannot be blank.");
break;
case "INVALID_IP_ADDRESS":
Response.Write("Invalid IP Address.");
break;
case "MISSING_FILE":
Response.Write("Invalid Database Path.");
break;
}
}
else
{
Response.Write("IP Address cannot be blank.");
}
}
catch(Exception ex)
{
Response.Write(ex.Message);
}
finally
{
oIPResult = null;
}
}
