- About the IPQS APIs
- Proxy & VPN Detection API
- Email Verification API
- Phone Number Validation API
- Malicious URL Scanner API
- Device Fingerprint API
- Mobile Device Fingerprinting SDK
- Fraud Flows
- Transaction Scoring API
- Gaming Fraud Detection SDK
- Dark Web Leak API
- Malware File Scanner API
- Request List API
- Fraud Reporting API
- Account Management APIs
- Bulk Validation CSV
- Allowlist Blocklist APIs
- AI Fraud Analyst
- Plugins Platforms Integrations
- IP Reputation Database
- IP Address Abuse Feed
- Email Verification Database
-
Custom Integrations
- Getting Started
- Authentication
- Refresh Secret
- IP & Proxy Checks
- Email Verification Checks
- Phone Number Validity Checks
- Device Tracker
- List Device Trackers
- Device Tracker Statistics
- Login Tokens
- Overview Statistics
- Recent Proxy Statistics
- Recent Email Statistics
- Fraud Reporting
- Retrieve Requests by ID
- Device Fraud Risk Reasons API Documentation
- Transaction Risk Reasons API Documentation
- Country List API Documentation
- Release Notes
About the Transaction Scoring API
The Transaction Scoring API enables you to score payments or users, detect e-commerce fraud, and provide real-time online payment fraud detection. This transaction screening service is ideal for preventing chargeback fraud and performing advanced user scoring, which can identify even the most sophisticated fraudulent transactions on websites and apps.
IPQS can analyze additional user data for orders, payments, transactions, lead generation, and personal user information to enhance the accuracy of the transaction risk API fraud score. The fields listed below are entirely optional and provide additional data that can be used to detect fraudulent payments and suspicious behavior likely to generate chargeback fraud disputes. Any further data beyond the IP address greatly improves the detection of high-risk activity.
The transaction_details object displays transaction risk analysis. If only one address is available for the user or transaction screening process, enter the address data into the billing or shipping variables, rather than entering the same address in both variables. Passing the email address also contributes to detecting fraudulent users. However, the API will only perform a light abusive check. A full lookup with Email Verification API will provide greater detail and accuracy for email reputation. The transaction variables listed below are optional; you can ignore any irrelevant variables.
What is a Transaction Scoring API?
A Transaction Scoring API analyzes information associated with a payment, order, or user to determine the likelihood that a transaction is fraudulent. The Transaction Scoring API evaluates billing and shipping information, payment details, contact information, and other available transaction data to identify suspicious behavior and calculate an overall risk score.
Transaction scoring can help detect potentially fraudulent purchases before they result in chargebacks, financial losses, or other abusive activity. Providing additional transaction details allows the API to compare multiple data points and identify inconsistencies or risk signals that may not be apparent when evaluating individual fields separately.
How does transaction scoring work?
The Transaction Scoring API evaluates the transaction details included in the request and analyzes them for fraud and reputation signals. You can submit information such as billing and shipping addresses, email addresses, phone numbers, payment details, order amounts, usernames, and other available customer data.
The API compares these data points and evaluates factors such as the validity and reputation of the supplied information, inconsistencies between customer details, known fraudulent behavior, and other indicators of transaction risk. It then returns a risk_score along with supporting risk factors and a recommended_action that can help determine how the transaction should be handled.
Transaction Scoring API use cases
The Transaction Scoring API can be used anywhere a business needs to evaluate the risk associated with a payment, order, account, or other transaction. Common use cases include:
- E-commerce fraud prevention: Evaluate online purchases before processing or fulfilling an order.
- Chargeback prevention: Identify transactions with characteristics associated with fraudulent payments or chargeback disputes.
- Payment risk analysis: Review payment details and customer information for suspicious or inconsistent activity.
- Order screening: Analyze billing, shipping, contact, and order information before approving or fulfilling an order.
- Lead generation fraud detection: Evaluate submitted user information to identify suspicious or fraudulent leads.
Using the API
JSON
https://www.ipqualityscore.com/api/json/transaction/YOUR_API_KEY_HERE/TRANSACTION_DETAILS
XML
https://www.ipqualityscore.com/api/xml/transaction/YOUR_API_KEY_HERE/TRANSACTION_DETAILS
Example Request
In this example, the Transaction Scoring API will review the billing contact info, shipping contact info, payment info, and order details to analyze the transaction for risk factors.
Note
The Transaction Scoring API only performs light abuse and reputation analysis on email addresses. For deeper email analysis, use our dedicated Email Verification API.
https://www.ipqualityscore.com/api/json/transaction/YOUR_API_KEY_HERE/?billing_first_name=John&billing_last_name=Doe&billing_country=US&billing_address_1=123+Fake+St&billing_city=Miami&billing_region=FL&billing_postcode=33129-2412&billing_email=user@example.com&billing_phone=5555551234&shipping_first_name=John&shipping_last_name=Doe&shipping_country=US&shipping_address_1=123+Fake+St&shipping_city=Miami&shipping_region=FL&shipping_postcode=33129-2412&shipping_email=user@example.com&shipping_phone=5555551234&credit_card_bin=55554444&credit_card_last_four=1111&credit_card_expiration_month=03&credit_card_expiration_year=2030&transaction_type=credit_card&order_amount=5027.93&order_quantity=1&order_id=168989billing_country=US
Submitting Transaction Scoring API requests via other APIs
You can also submit requests to the Transaction Scoring API as part of requests to the Proxy & VPN Detection API, Email Verification API, Phone Number Validation API, and Device Fingerprint API.
When submitting transaction details in requests to different APIs, the Transaction Scoring API will return the results in a transaction_details object alongside the other results for that API.
In this example, we submit an email address to the Email Verification API for review and also include transaction information as additional request parameters. Using this method, we can review transactions while also performing deeper email analysis using the Email Verification API.
https://www.ipqualityscore.com/api/json/email/YOUR_API_KEY_HERE/user@example.com?&billing_first_name=John&billing_last_name=Doe&billing_country=US&billing_address_1=123+Fake+St&billing_city=Miami&billing_region=FL&billing_postcode=33129-2412&billing_email=user@example.com&billing_phone=5555551234&shipping_first_name=John&shipping_last_name=Doe&shipping_country=US&shipping_address_1=123+Fake+St&shipping_city=Miami&shipping_region=FL&shipping_postcode=33129-2412&shipping_email=user@example.com&shipping_phone=5555551234&credit_card_bin=55554444&credit_card_last_four=1111&credit_card_expiration_month=03&credit_card_expiration_year=2030&transaction_type=credit_card&order_amount=5027.93&order_quantity=1&order_id=168989billing_country=US
Request Parameters
| Key | Description | Expected Values |
|---|---|---|
billing_first_name |
The customer's billing first name. | String |
billing_last_name |
The customer's billing last name. | String |
billing_company |
The customer's billing company. | String |
billing_country |
The customer's billing country name or billing country ISO-Alpha2. (e.g., United States or US) | String |
billing_address_1 |
The customer's billing street address part 1. | String |
billing_address_2 |
The customer's billing street address part 2. | String |
billing_city |
The customer's billing city. | String |
billing_state |
The customer's shipping state. State must be two-letter abbreviation. (e.g., CA, FL, NY) | String |
billing_region |
The customer's shipping region. | String |
billing_zipcode |
The customer's billing ZIP code | String / Number |
billing_postcode |
The customer's billing postcode. | String / Number |
billing_email |
The customer's billing email address. | String |
billing_phone |
The customer's billing 11 to 14 digit phone number. (If less than 10 digits provided, our system the will infer the country code.) | Number |
shipping_first_name |
The customer's shipping first name. | String |
shipping_last_name |
The customer's shipping last name. | String |
shipping_company |
The customer's shipping company. | String |
shipping_country |
The customer's shipping country name or shipping country ISO-Alpha2. (e.g., United States or US) | String |
shipping_address_1 |
The customer's shipping street address part 1. | String |
shipping_address_2 |
The customer's shipping street address part 2. | String |
shipping_city |
The customer's shipping city. | String |
shipping_region |
The customer's shipping region or state. State must be two-letter abbreviation. (e.g., CA, FL, NY) | String |
shipping_zipcode |
The customer's shipping ZIP code. | String / Number |
shipping_postcode |
The customer's shipping postcode. | String / Number |
shipping_email |
The customer's shipping email address. | String |
shipping_phone |
The customer's billing 11 to 14 digit phone number. (If less than 10 digits provided, our system the will infer the country code.) | Number |
username |
The customer's username. | String |
password_hash |
For security reasons and following industry best practices, a SHA256 hash of the user's password for better user analysis. | SHA256 / string |
credit_card_bin |
First six digits of the credit or debit card, referred to as the Bank Identification Number. | Number |
credit_card_last_four |
Last four digits of the credit or debit card, referred to as the "Primary Account Number" or simply "last four". | Number |
credit_card_hash (deprecated) |
In general we recommend that customers supply the bin and last four of a credit card number for best results. PCI DSS v4 does not allow raw hashes of credit card numbers, however for backwards compatibility for older transactions, a SHA256 hash of the credit card number is accepted to check against blacklisted cards. If you are planning a new implementation please avoid using this field. | SHA256 / string |
credit_card_expiration_month |
Two number format of the credit card's expiration month. For example, May would be "05". | Number |
credit_card_expiration_year |
Two number format of the credit card's expiration year. For example, 2022 would be "22". | Number |
avs_code |
One letter Address Verification Service (AVS) response code provided by the credit card processor or bank. A full list of acceptable response codes can be viewed here. If your system cannot retrieve the exact response code, values of "pass" or "fail" can be used. Passing anything more than a single character to this field will return an error to prevent collecting the customer's CVV as this is not PCI DSS compliant. | String |
cvv_code |
One letter Card Verification Value (CVV2) response code provided by the credit card processor or bank. A full list of acceptable response codes can be viewed here. If your system cannot retrieve the exact response code, values of "pass" or "fail" can be used. Passing anything more than a single character to this field will return an error to prevent collecting the customer's CVV as this is not PCI DSS compliant. | String |
order_amount |
Total balance of the entire order without currency symbols. | Number |
order_quantity |
Quantity of items for this order. | Number |
recurring |
Is this a recurring order that automatically rebills? | Boolean |
recurring_times |
If this is a recurring order, then how many times has this recurring order rebilled? For example, if this is the third time the user is being billed, please enter this value as "3". If this is the initial recurring order, please leave the value as blank or enter "1". | Number |
transaction_type |
The type of transaction occurring; One of the following values: "google", "apple", "stripe", "paypal", "credit_card", "cash_app", "venmo", "alipay", "ACH", "wire", "direct_debit", "check", "square", "shopify", "SEPA", "zelle", "crypto", "bitcoin", "litecoin", "monero", "bitpay", "etherium", "coingate", "other". If you have an additional payment method you would like to add please contact support for addition. | Enum (string) |
account_number |
Alpha numeric string representing the bank account number, SEPA, crypto wallet address or other payment account number. Please do NOT use this field for credit cards numbers. Credit card numbers will be rejected with an error message. Please use credit_card_bin or credit_card_last_four for processing credit cards. | String |
routing_number |
Alpha numeric string representing the bank or financial institution. | String |
fraud_risk |
An array containing a message that describes the transaction’s fraud risk level and a list of reasons enums identifying the factors that contributed to that risk. |
Array |
Success Response Examples
Standalone
This is an example success response when submitting a request directly to the Transaction Scoring API.
{
"valid_billing_address": true,
"valid_shipping_address": true,
"billing_address_distance": {
"miles": 1093,
"kilometers": 1759
},
"shipping_address_distance": {
"miles": 1093,
"kilometers": 1759
},
"valid_billing_email": false,
"valid_shipping_email": false,
"risky_billing_phone": false,
"risky_shipping_phone": true,
"billing_phone_country": "US",
"billing_phone_country_code": "1",
"shipping_phone_country": "US",
"shipping_phone_country_code": "1",
"billing_phone_carrier": "T-Mobile",
"shipping_phone_carrier": "INTERMEDIA COMMUNICATIONS INC.",
"billing_phone_line_type": "Wireless",
"shipping_phone_line_type": "VOIP",
"fraudulent_behavior": false,
"bin_country": null,
"bin_type": "N/A",
"risky_username": null,
"valid_billing_phone": true,
"valid_shipping_phone": true,
"leaked_billing_email": false,
"leaked_shipping_email": false,
"leaked_user_data": false,
"is_prepaid_card": null,
"phone_name_identity_match": "No match",
"phone_email_identity_match": "No match",
"phone_address_identity_match": "No match",
"email_name_identity_match": "Match",
"name_address_identity_match": "No match",
"address_email_identity_match": "No match",
"risk_score": 97,
"billing_first_name": "natalia",
"billing_last_name": "weissman",
"billing_address1": "2333 BRICKELL AVE",
"billing_address2": "#1111",
"billing_city": "MIAMI",
"billing_region": "FL",
"billing_zipcode": "33129",
"billing_country": "US",
"billing_email": "natalia@blueprint-eq.com",
"billing_phone_extension": "7644015",
"billing_phone_area": "305",
"recommended_action": "deny",
"bin_bank_name": null,
"user_activity": "medium",
"results": {
"billing_phone_result": {
"message": "Phone is valid.",
"success": true,
"formatted": "+13057644015",
"local_format": "(305) 764-4015",
"valid": true,
"fraud_score": 0,
"recent_abuse": false,
"VOIP": false,
"prepaid": false,
"risky": false,
"active": true,
"carrier": "T-Mobile",
"line_type": "Wireless",
"country": "US",
"city": "Homestead",
"zip_code": "33033",
"region": "Florida",
"dialing_code": 1,
"active_status": "N/A",
"sms_domain": "tmomail.net",
"associated_email_addresses": {
"status": "No associated emails found.",
"emails": []
},
"user_activity": "none",
"mnc": "160",
"mcc": "310",
"leaked": false,
"spammer": false,
"request_id": null,
"name": "N/A",
"timezone": "America/New_York",
"do_not_call": false,
"tcpa_blacklist": false,
"accurate_country_code": false,
"sms_email": "3057644015@tmomail.net",
"number_recycling": {
"message": "Number recycling feature disabled. Please contact support to activate.",
"recently_recycled": null,
"last_ported_date": null,
"ported": null
}
},
"billing_email_result": {
"message": "Success.",
"success": true,
"valid": false,
"disposable": false,
"smtp_score": 0,
"overall_score": 0,
"first_name": "Unknown",
"generic": false,
"common": false,
"dns_valid": false,
"honeypot": false,
"deliverability": "low",
"frequent_complainer": false,
"spam_trap_score": "none",
"catch_all": false,
"timed_out": false,
"suspect": false,
"recent_abuse": true,
"fraud_score": 100,
"suggested_domain": "N/A",
"leaked": false,
"domain_age": {
"human": "9 months ago",
"timestamp": 1759249039,
"iso": "2025-09-30T12:17:19-04:00"
},
"first_seen": {
"human": "3 months ago",
"timestamp": 1775665296,
"iso": "2026-04-08T12:21:36-04:00"
},
"domain_trust": "suspicious",
"sanitized_email": "natalia@blueprint-eq.com",
"domain_velocity": "none",
"user_activity": "none",
"associated_names": {
"status": "No associated names found.",
"names": []
},
"associated_phone_numbers": {
"status": "No associated phone numbers found.",
"phone_numbers": []
},
"risky_tld": false,
"spf_record": false,
"dmarc_record": false,
"mx_records": [],
"a_records": [],
"result_type": "cached"
},
"shipping_phone_result": {
"message": "Phone is valid.",
"success": true,
"formatted": "+13057688015",
"local_format": "(305) 768-8015",
"valid": true,
"fraud_score": 65,
"recent_abuse": false,
"VOIP": true,
"prepaid": null,
"risky": true,
"active": true,
"carrier": "INTERMEDIA COMMUNICATIONS INC.",
"line_type": "VOIP",
"country": "US",
"city": "Homestead",
"zip_code": "33033",
"region": "Florida",
"dialing_code": 1,
"active_status": "N/A",
"sms_domain": "N/A",
"associated_email_addresses": {
"status": "No associated emails found.",
"emails": []
},
"user_activity": "none",
"mnc": "N/A",
"mcc": "N/A",
"leaked": false,
"spammer": false,
"request_id": null,
"name": "N/A",
"timezone": "America/New_York",
"do_not_call": false,
"tcpa_blacklist": false,
"accurate_country_code": false,
"sms_email": "N/A",
"number_recycling": {
"message": "Number recycling feature disabled. Please contact support to activate.",
"recently_recycled": null,
"last_ported_date": null,
"ported": null
}
},
"shipping_email_result": {
"message": "Success.",
"success": true,
"valid": false,
"disposable": false,
"smtp_score": 0,
"overall_score": 0,
"first_name": "Unknown",
"generic": false,
"common": false,
"dns_valid": false,
"honeypot": false,
"deliverability": "low",
"frequent_complainer": false,
"spam_trap_score": "none",
"catch_all": false,
"timed_out": false,
"suspect": false,
"recent_abuse": false,
"fraud_score": 97,
"suggested_domain": "N/A",
"leaked": false,
"domain_age": {
"human": "9 months ago",
"timestamp": 1759249039,
"iso": "2025-09-30T12:17:19-04:00"
},
"first_seen": {
"human": "1 minute ago",
"timestamp": 1783622066,
"iso": "2026-07-09T14:34:26-04:00"
},
"domain_trust": "suspicious",
"sanitized_email": "differentemail@blueprint-eq.com",
"domain_velocity": "none",
"user_activity": "none",
"associated_names": {
"status": "No associated names found.",
"names": []
},
"associated_phone_numbers": {
"status": "No associated phone numbers found.",
"phone_numbers": []
},
"risky_tld": false,
"spf_record": false,
"dmarc_record": false,
"mx_records": [],
"a_records": [],
"result_type": "cached"
},
"proxy_result": {
"success": true,
"message": "Success",
"fraud_score": 0,
"country_code": "US",
"region": "New York",
"city": "New York",
"ISP": "Access Media Holdings, LLC",
"ASN": 8092,
"organization": "Access Media Holdings, LLC",
"is_crawler": false,
"timezone": "America/New_York",
"mobile": false,
"host": "66.135.148.26",
"proxy": false,
"vpn": false,
"tor": false,
"active_vpn": false,
"active_tor": false,
"recent_abuse": false,
"bot_status": false,
"connection_type": "Residential",
"abuse_velocity": "none",
"shared_connection": false,
"dynamic_connection": false,
"frequent_abuser": false,
"high_risk_attacks": false,
"security_scanner": false,
"trusted_network": false,
"zip_code": "N/A",
"latitude": 40.71,
"longitude": -74.01,
"abuse_events": [
"Enterprise plan required to view abuse events and active proxy networks"
]
}
},
"risk_factors": [
"Suspicious billing email address reputation.",
"Suspicious shipping email address reputation.",
"High risk behavior associated with an invalid email address."
],
"request_id": "DAtqmMQtnX"
}
Next Steps
Learn more about each of the variables included in the responses you receive.docs