Skip to content

Credit Card Number

Type Registry

Credit Card Number

identity.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 identitypayment
Casts to VARCHAR
Scope Universal

Try it

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

DuckDB

Detect
SELECT finetype('4532015112830366');
-- → 'identity.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) = 'identity.payment.credit_card_number';

Struct Expansion

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 identity.payment.credit_card_number
{
  "$id": "https://noon.sh/schemas/identity.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"
}

Examples

45320151128303665425233010103442374245455400126

Also known as

pancredit_card

Types in identity