Meridianmeridian

Credit Card Number

finance.payment.credit_card_number

Credit card or debit card primary account number (PAN). Typically 13-19 digits. Last digit is check digit (Luhn algorithm). HIGHLY SENSITIVE — encrypt immediately in production.

Domain
finance
Category
payment
Casts to
VARCHAR
Scope
Universal

Try it

CLI
$ finetype infer -i "4532015112830366"
→ finance.payment.credit_card_number

DuckDB

Detect
SELECT finetype('4532015112830366');
-- → 'finance.payment.credit_card_number'
Cast expression
CAST({col} AS VARCHAR)
Safe cast pipeline
-- Normalise and cast in one step
SELECT TRY_CAST(finetype_cast(my_column) AS VARCHAR) AS clean_value
FROM my_table
WHERE finetype(my_column) = 'finance.payment.credit_card_number';

Struct Expansion

Expression
card_type: CASE WHEN {col} LIKE '4%' THEN 'Visa' WHEN {col} LIKE '5[1-5]%' THEN 'Mastercard' WHEN {col} LIKE '3[47]%' THEN 'Amex' ELSE 'Other' END
issuer_identification_number: REGEXP_EXTRACT({col}, '^([0-9]{6})')
last_four: REGEXP_EXTRACT({col}, '([0-9]{4})$')

JSON Schema

finetype schema finance.payment.credit_card_number
{
  "$id": "https://meridian.online/schemas/finance.payment.credit_card_number",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Credit card or debit card primary account number (PAN). Typically 13-19 digits. Last digit is check digit (Luhn algorithm). HIGHLY SENSITIVE — encrypt immediately in production.",
  "examples": [
    "4532015112830366",
    "5425233010103442",
    "374245455400126"
  ],
  "pattern": "^[0-9]{13,19}$",
  "title": "Credit Card Number",
  "type": "string",
  "x-finetype-broad-type": "VARCHAR",
  "x-finetype-transform": "CAST({col} AS VARCHAR)"
}

Examples

45320151128303665425233010103442374245455400126

Aliases

pancredit_card