Payment Test Cards (CSV)
A reference list of well-known payment TEST card numbers (Visa, Mastercard, Amex, Discover, JCB, Diners) with sample CVV and expiry. These are published test values that pass the Luhn check but are not real accounts — for testing payment forms and card validators. Never use real card data.
brand,number,cvv,expiry,note
Visa,4111 1111 1111 1111,123,12/34,"TEST CARD — sample only, not a real account; passes the Luhn check"
Visa,4242 4242 4242 4242,123,12/34,"TEST CARD — sample only, not a real account; passes the Luhn check"
Mastercard,5555 5555 5555 4444,123,12/34,"TEST CARD — sample only, not a real account; passes the Luhn check"
Mastercard,2223 0031 2200 3222,123,12/34,"TEST CARD — sample only, not a real account; passes the Luhn check"
American Express,3782 822463 10005,1234,12/34,"TEST CARD — sample only, not a real account; passes the Luhn check"
Discover,6011 1111 1111 1117,123,12/34,"TEST CARD — sample only, not a real account; passes the Luhn check"
JCB,3566 0020 2036 0505,123,12/34,"TEST CARD — sample only, not a real account; passes the Luhn check"
Diners Club,3056 9309 0259 04,123,12/34,"TEST CARD — sample only, not a real account; passes the Luhn check"
Specifications
- Rows
- 8
- Note
- well-known published TEST card numbers; sample-only, never real accounts
- Validation
- all pass the Luhn check
What is a .csv file?
CSV (Comma-Separated Values) is a plain-text tabular format where rows are lines and fields are separated by commas, with quoting rules for values that contain delimiters, quotes, or newlines. It has no formal type system and depends on encoding and dialect conventions. It is the most portable format for tabular data exchange.
How to use this file
Use an example CSV to test parsers against quoting and embedded-delimiter edge cases, header handling, encoding detection, and import pipelines into databases or spreadsheets.
Code examples
import pandas as pd
df = pd.read_csv("test-cards.csv")
print(df.head())
print(df.dtypes)Related files
- csvBank Transactions (CSV, 60 rows)A bank-transaction statement — 60 debits and credits across three accounts (masked numbers) with running balances, categories, and merchants. Synthetic data for testing statement parsers, categorisation, and reconciliation.

- jsonBank Transactions (JSON, 60 records)The bank transactions as a JSON array — the format twin of the CSV, for import and reconciliation testing.

- xmlISO 20022 Credit Transfer — pain.001 (XML)A sample ISO 20022 customer credit-transfer initiation (pain.001.001.09) — a single payment with debtor/creditor parties, IBANs, BICs, amount, and remittance info. IBANs are published documentation examples; a fixture for testing payment-message parsers and bank integrations.

- csv10,000-Row CSVA CSV with 10,000 data rows — for testing streaming parsers, memory handling, and import performance.

- logApache Access Log — Combined Format (log)An Apache access log in the Combined Log Format — the Common fields plus referer and user-agent. A realistic web-server log for testing access-log parsers, analytics, and grok patterns.

- logApache Access Log — Common Format (log)An Apache access log in the Common Log Format (CLF) — client, timestamp, request line, status, and byte count. Deterministic, with reserved documentation IPs. Paired with a Combined-format twin for testing log parsers.

Generated by generation/data_domains.py. Free for any use, no attribution required — license.