Payment Fraud Detection Dataset
This dataset contains detailed synthetic payment transaction records, each labeled with ground-truth indicators of fraud. It includes transaction metadata, customer and merchant identifiers, payment methods, device and location context, and fraud reasons, making it ideal for developing and benchmarking machine learning models for payment fraud detection and risk mitigation.
Sample rows
preview · 8 of 200 rows · all 19 columns| transaction_idstring | customer_genderstring | amountfloat | fraud_labelboolean | fraud_reasonstring | transaction_datetimedatetime | currencystring | customer_idstring | merchant_idstring | payment_methodstring | device_idstring | ip_addressstring | customer_countrystring | merchant_countrystring | is_internationalboolean | transaction_statusstring | entry_modestring | merchant_category_codestring | customer_ageinteger |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TXN000001 | female | 249.99 | false | blank | 2024-03-14T10:07:23Z | USD | CUST0001 | MCH0001 | credit_card | DEV0001A | 192.168.1.101 | US | US | false | completed | chip | 5311 | 29 |
| TXN000002 | male | 19.95 | false | blank | 2020-11-28T18:22:14Z | GBP | CUST0002 | MCH0002 | debit_card | DEV0002B | 203.0.113.5 | GB | GB | false | completed | chip | 5812 | 33 |
| TXN000003 | unknown | 0.01 | true | testing_abuse | 2023-07-02T13:15:44Z | INR | CUST0003 | MCH0003 | ewallet | blank | 10.0.0.21 | IN | IN | false | failed | online | 5999 | 0 |
| TXN000004 | female | 85.44 | false | blank | 2022-02-11T20:35:12Z | EUR | CUST0004 | MCH0004 | credit_card | DEV0004C | 198.51.100.8 | DE | DE | false | completed | contactless | 5411 | 41 |
| TXN000005 | male | 1250 | false | blank | 2024-01-05T08:12:36Z | USD | CUST0005 | MCH0005 | bank_transfer | blank | 172.16.0.4 | US | CA | true | completed | online | 6012 | 54 |
| TXN000006 | female | 57.43 | false | blank | 2023-11-17T15:05:55Z | EUR | CUST0006 | MCH0006 | ewallet | blank | 217.160.0.12 | FR | DE | true | pending | online | 5732 | 27 |
| TXN000007 | male | 15000 | true | high_value_outlier | 2022-09-10T19:49:26Z | USD | CUST0007 | MCH0007 | prepaid_card | DEV0007D | 203.0.113.111 | US | MX | true | reversed | manual | 7995 | 83 |
| TXN000008 | male | 720.5 | false | blank | 2021-08-23T23:58:10Z | AUD | CUST0008 | MCH0008 | credit_card | DEV0008E | 8.8.8.8 | AU | AU | false | completed | chip | 5541 | 35 |
| TXN000009 | female | 100 | false | blank | 2020-05-14T09:53:41Z | USD | CUST0009 | MCH0009 | debit_card | DEV0009F | 192.0.2.1 | US | CA | true | pending | swipe | 5814 | 25 |
| TXN000010 | male | 347.5 | false | blank | 2024-04-07T22:40:32Z | USD | CUST0010 | MCH0010 | credit_card | DEV0010G | 172.217.14.206 | US | US | false | completed | contactless | 5942 | 62 |
| TXN000011 | male | 0 | true | testing_abuse | 2021-03-10T02:17:13Z | SGD | CUST0011 | MCH0011 | crypto | blank | blank | SG | SG | false | failed | online | 7999 | 41 |
| TXN000012 | female | 99.99 | false | blank | 2023-12-25T15:25:45Z | USD | CUST0012 | MCH0012 | ewallet | blank | 185.32.1.12 | US | CA | true | completed | online | 5816 | 30 |
| TXN000013 | female | 483.95 | false | blank | 2024-02-20T07:32:06Z | USD | CUST0013 | MCH0013 | debit_card | DEV0013H | 203.0.113.45 | US | US | false | completed | swipe | 5813 | 28 |
| TXN000014 | male | 999.99 | false | blank | 2022-12-13T12:12:25Z | EUR | CUST0014 | MCH0014 | credit_card | DEV0014I | 185.33.44.55 | DE | FR | true | completed | chip | 5815 | 34 |
| TXN000015 | female | 48 | false | blank | 2020-06-16T16:44:51Z | SEK | CUST0015 | MCH0015 | debit_card | DEV0015J | 192.168.100.10 | SE | SE | false | completed | chip | 5912 | 52 |
| TXN000016 | unknown | 99999999.99 | true | high_value_outlier | 2023-06-30T11:11:11Z | USD | CUST0016 | MCH0016 | crypto | blank | 255.255.255.0 | US | GR | true | completed | online | 7011 | 120 |
| TXN000017 | female | 27.1 | false | blank | 2021-09-19T21:09:33Z | JPY | CUST0017 | MCH0017 | prepaid_card | DEV0017K | 203.0.113.116 | JP | JP | false | completed | manual | 4789 | 24 |
| TXN000018 | male | 3500 | false | blank | 2022-10-14T14:14:14Z | USD | CUST0018 | MCH0018 | debit_card | DEV0018L | 203.0.113.215 | US | ZA | true | completed | chip | 5943 | 45 |
| TXN000019 | female | 15.75 | false | blank | 2023-01-08T03:03:23Z | EUR | CUST0019 | MCH0019 | bank_transfer | blank | 203.0.113.201 | FR | DE | true | pending | online | 4111 | 59 |
| TXN000020 | other | 5 | true | testing_abuse | 2024-06-01T05:43:22Z | BRL | CUST0020 | MCH0020 | ewallet | blank | blank | BR | BR | false | failed | online | 5995 | 22 |
What the 200 rows show
from the 200-row sampleUnknown (customer gender) stands out: 22 of its 22 rows have fraud_
- 27%fraud_
label = true - 100.0median amount
- 4transaction statuses
- 5entry modes
- 6payment methods
- 11currencies
Unknown (customer gender)'s mean amount is 13,636,935, against 7,047 for male, 3,049 for female and 4,777,159 for other.
Median 100.0, from 0.0 to 100,000,000.
- string 14
- integer 1
- float 1
- datetime 1
- boolean 2
Columns
19 columns in four groups| column | type | description | example |
|---|---|---|---|
| Text 14 columns | |||
transaction_id | string | Unique identifier for each payment transactionunique | TXN000001 |
currency | string | ISO 4217 currency code used for the transaction (e.g., USD, EUR)11 currencies | USD |
customer_id | string | Unique identifier for the customer making the transaction | CUST0001 |
merchant_id | string | Unique identifier for the merchant receiving the payment | MCH0001 |
payment_method | string | Payment method used (e.g., credit_card, debit_card, bank_transfer, ewallet)6 values | credit_card |
device_id | string | Identifier for the device used to initiate the transactionoptional | DEV0001A |
ip_address | string | IP address from which the transaction was initiatedoptional | 192.168.1.101 |
customer_country | string | Country code of the customer (ISO 3166-1 alpha-2)optional | US |
merchant_country | string | Country code of the merchant (ISO 3166-1 alpha-2)optional | US |
transaction_status | string | Status of the transaction (e.g., completed, failed, pending, reversed)completed · failed · pending · reversed | completed |
fraud_reason | string | Short code or description indicating the reason for fraud label (e.g., stolen_card, account_takeover, synthetic_identity)6 reasons · optional | testing_abuse |
entry_mode | string | How the payment information was entered (e.g., chip, swipe, online, contactless)chip · swipe · online · contactless · manual · optional | chip |
merchant_category_code | string | Merchant Category Code (MCC) indicating the type of merchantoptional | 5311 |
customer_gender | string | Gender of the customermale · female · other · unknown · optional | female |
| Numbers 2 columns | |||
amount | float | Monetary value of the transaction0 or more | 249.99 |
customer_age | integer | Age of the customer at the time of transaction0 to 120 · optional | 29 |
| Dates and times 1 column | |||
transaction_datetime | datetime | Date and time when the transaction occurred | 2024-03-14T10:07:23Z |
| True or false 2 columns | |||
is_international | boolean | Indicates if the transaction is cross-border (customer and merchant in different countries)optional | false |
fraud_label | boolean | Ground-truth label indicating if the transaction is fraudulent (true) or legitimate (false) | false |
Use it for
A finance dashboard
The fraud_
label rate, amount by customer_ gender and a breakdown of fraud_ reason. Excel, Power BI or Tableau. Why do 54 of 200 rows have fraud_
label = true? A root-cause class exercise
Hand out the rows and one question. The answer is in the data, not in the brief.
- Transactions200TXN000001249.99femaleTXN0000030.01unknownTXN00000715000male
A software demo
Believable transactions with transaction_
datetime, amount and currency to fill a screen in front of a buyer.
blueprint · payment-fraud-detection-dataset
Behind this dataset
Same schema. As many rows as you need.
These 200 rows came out of a blueprint — 19 columns with generation rules behind each one. Open it in Data Factory to retune a column, add your own, wire in foreign keys, and run it at the size you actually need.
- Include customer demographics
- Label each transaction as fraud/non-fraud
- Simulate account relationships
- Vary fraud patterns over time
1 credit per row. New accounts start with 25 free credits.
- Exports
- CSV, JSON, JSONL, Parquet, SQL, Excel, TSV, XML
- Licence
- yours to use, including commercially
- API slug
- payment-fraud-detection-dataset