IP Library Granted Patent US 10,402,911
Granted Patent B1
US 10,402,911 · App. 15/091,015 · Granted Sep 3, 2019

System, method, and computer-readable medium for removing credit card numbers from both fixed and variable length transaction records

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,402,911
App. No.
15/091,015
Granted
Sep 3, 2019
Kind
B1
Abstract

A system, method, and computer readable medium for removing credit card numbers from a financial transaction record is provided. A temporary record containing only numeric characters is generated by parsing non-numeric characters from the financial transaction record. Numeric strings are then parsed from the temporary record and evaluated to determine if the parsed numeric strings potentially comprise a credit card number. Numeric strings that are evaluated as potentially comprising credit card numbers may then be further evaluated to determine if the numeric strings comprise valid credit card numbers. The original financial transaction record may then be searched for numeric strings evaluated as valid credit card numbers. Any string of consecutive characters that match a validated credit card number may then be replaced with white space characters or other innocuous characters in the transaction record.

Claims (47)

1. A method for processing, by a processor, comprising:

reading a first transaction record comprising a plurality of characters, including a credit card number, wherein one or more of the plurality of characters comprises alphabetic and numeric characters, the first transaction record comprising either a fixed field record or a delimited record of variable length;

generating a second record comprising only the numeric characters by parsing the alphabetic characters from the first transaction record, the second record comprising a temporary numeric string having a greater length than a number of characters of a valid credit card;

sequentially parsing N consecutive numeric characters from the second record with each sequentially parsing step offset by one numeric character from a previous parsing step such that each possible sequence of N consecutive numeric characters are parsed from the second record until an end-of-line character is identified in the second record;

evaluating each of a plurality of sequences of N consecutive numeric characters to determine whether the respective sequence comprises a valid credit card number by evaluating each of the plurality of sequences of N consecutive numeric characters with a LUHN Mod 10 evaluation;

when any one of the sequences of N consecutive numeric characters does not pass the LUHN Mod 10 evaluation, then determining that particular sequence of N consecutive numeric characters does not comprise a valid credit card number;

responsive to identifying the N consecutive numeric characters do not comprise a valid credit card number N, incrementing a character index variable;

searching the first transaction record for any sequence evaluated as the valid credit card number;

responsive to searching, determining a first sequence evaluated as a valid credit card number is included in the first transaction record; and

replacing each character of the first sequence in the first transaction record with a respective non-numeric and non-identifying character to generate a scrubbed transaction record.

2. The method of claim 1 , comprising incrementing the character index variable responsive to determining the valid credit card number.

3. The method of claim 1 , wherein replacing each character comprises replacing each character with an * character.

4. The method of claim 1 , comprising generating a temporary record containing only numeric characters by parsing non-numeric characters from the first transaction record, wherein the temporary record comprises at least a numeric credit card number.

5. The method of claim 1 , further comprising, responsive to determining a first sequence of N consecutive numeric characters is valid according to the LUHN Mod 10 evaluation, evaluating the first sequence of N consecutive numeric characters to determine the first sequence comprises a valid credit card number.

6. The method of claim 1 , comprising generating a scrubbed transaction record from the first transaction record based on the sequence evaluated as the valid credit card number, wherein the scrubbed transaction record comprises each of plurality of characters with the credit card number being scrubbed.

7. A computer-readable medium having computer-executable instructions for execution by a processing system, the computer-executable instructions for when executed, cause the processing system to:

read a first transaction record comprising a plurality of characters, including a credit card number, wherein one or more of the plurality of characters comprises alphabetic and numeric characters, the first transaction record comprising either a fixed field record or a delimited record of variable length;

generate a second record comprising only the numeric characters by parsing the alphabetic characters from the first transaction record, the second record comprising a temporary numeric string having a greater length than a number of characters of a valid credit card;

sequentially parse N consecutive numeric characters from the second record with each sequentially parsing step offset by one numeric character from a previous parsing step such that each possible sequence of N consecutive numeric characters are parsed from the second record until an end-of-line character is identified in the second record;

evaluate each of a plurality of sequences of N consecutive numeric characters to determine whether the respective sequence comprises a valid credit card number by evaluating each of the plurality of sequences of N consecutive numeric characters with a LUHN Mod 10 evaluation;

when any one of the sequences of N consecutive numeric characters does not pass the LUHN Mod 10 evaluation, then determine that particular sequence of N consecutive numeric characters does not comprise a valid credit card number;

responsive to identifying the N consecutive numeric characters do not comprise a valid credit card number N, increment a character index variable;

search the first transaction record for any sequence evaluated as a valid credit card number;

responsive to searching, determine a first sequence evaluated as a valid credit card number is included in the first transaction record; and

replace each character of the first sequence in the first transaction record with a respective non-numeric and non-identifying character to generate a scrubbed transaction record.

8. The computer-readable medium of claim 7 , comprising instructions for incrementing the character index variable responsive to determining the valid credit card number.

9. The computer-readable medium of claim 7 , wherein the instructions to replace each character comprise instructions to replace each character with an * character.

10. The computer-readable medium of claim 7 , comprising instructions to generate a temporary record containing only numeric characters by parsing non-numeric characters from the first transaction record, wherein the temporary record comprises at least a numeric credit card number.

11. The computer-readable medium of claim 7 , further comprising, responsive to a determining a first sequence of N consecutive numeric characters is valid according to the LUHN Mod 10 evaluation, instructions to evaluate the first sequence of N consecutive numeric characters to determine the first sequence comprises a valid credit card number.

12. The computer-readable medium of claim 7 , comprising instructions to generate a scrubbed transaction record from the first transaction record based on the sequence evaluated as the valid credit card number, wherein the scrubbed transaction record comprises each of plurality of characters with the credit card number being scrubbed.

13. A system, comprising:

a processing unit; and

a memory communicatively coupled with the processing unit and storing computer-executable instructions for execution by the processing unit, the computer-executable instructions specifying logic that, when executed, causes the processing unit to:

read a first transaction record comprising a plurality of characters, including a credit card number, wherein one or more of the plurality of characters comprises alphabetic and numeric characters, the first transaction record comprising either a fixed field record or a delimited record of variable length;

generate a second record comprising only the numeric characters by parsing the alphabetic characters from the first transaction record, the second record comprising a temporary numeric string having a greater length than a number of characters of a valid credit card;

sequentially parse N consecutive numeric characters from the second record with each sequentially parsing step offset by one numeric character from a previous parsing step such that each possible sequence of N consecutive numeric characters are parsed from the second record until an end-of-line character is identified in the second record;

evaluate each of a plurality of sequences of N consecutive numeric characters to determine whether the respective sequence comprises a valid credit card number by evaluating each of the plurality of sequences of N consecutive numeric characters with a LUHN Mod 10 evaluation;

when any one of the sequences of N consecutive numeric characters does not pass the LUHN Mod 10 evaluation, then determine that particular sequence of N consecutive numeric characters does not comprise a valid credit card number;

responsive to identifying the N consecutive numeric characters do not comprise a valid credit card number N, increment a character index variable; and

search the first transaction record for any sequence evaluated as a valid credit card number;

responsive to searching, determine a first sequence evaluated as a valid credit card number is included in the first transaction record; and

replace each character of the first sequence in the first transaction record with a respective non-numeric and non-identifying character to generate a scrubbed transaction record.

14. The system of claim 13 , further comprising a storage device configured to maintain a database including the first transaction record.

15. The system of claim 13 , wherein the computer-executable instructions specify logic to increment the character index variable responsive to determining the valid credit card number.

16. The system of claim 13 , wherein the processing unit is configured to replace each character with an * character.

17. The system of claim 13 , wherein the computer-executable instructions specify logic to generate a temporary record containing only numeric characters by parsing non-numeric characters from the first transaction record, wherein the temporary record comprises at least a numeric credit card number.

18. The system of claim 13 , wherein the processing unit, responsive to determining a first sequence of N consecutive numeric characters is valid according to the LUHN Mod 10 evaluation, is configured to evaluate the first sequence of N consecutive numeric characters to determine the first sequence comprises a valid credit card number.

Assignments (9)
OMNIBUS ASSIGNMENT OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Nov 25, 2024
From: UBS AG, STAMFORD BRANCH (AS SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH IN ITS CAPACITY AS COLLATERAL AGENT)
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS THE SUCCESSOR COLLATERAL AGENT
Reel/Frame 069438/0775 →
CHANGE OF NAME Recorded Apr 3, 2023
From: INTRADO CORPORATION
To: WEST TECHNOLOGY GROUP, LLC
Reel/Frame 063239/0876 →
CHANGE OF NAME Recorded Apr 3, 2023
From: WEST CORPORATION
To: INTRADO CORPORATION
Reel/Frame 063239/0900 →
NOTICE OF GRANT OF SECURITY INTEREST (SECOND LIEN) IN PATENTS Recorded Jan 31, 2023
From: CX360, INC.; WEST TECHNOLOGY GROUP, LLC (FKA INTRADO CORPORATION, FKA WEST CORPORATION); INTRADO INTERACTIVE SERVICES CORPORATION (FKA WEST INTERACTIVE SERVICES CORPORATION, FKA COBALT ACQUISITION COMPANY)
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 062571/0018 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: U.S. BANK NATIONAL ASSOCIATION
To: WEST CORPORATION; WEST INTERACTIVE SERVICES CORPORATION
Reel/Frame 045682/0403 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT REEL 040019, FRAME 0508 AND REEL 040019, FRAME 0761 Recorded Oct 10, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: WEST INTERACTIVE SERVICES CORPORATION; WEST CORPORATION
Reel/Frame 044217/0284 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS (FIRST LIEN) Recorded Oct 10, 2017
From: WEST CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044166/0901 →
SHORT FORM INTELLECTUAL PROPERTY AGREEMENT Recorded Sep 13, 2016
From: WEST CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 040019/0508 →
SECURITY INTEREST Recorded Aug 22, 2016
From: WEST CORPORATION; WEST INTERACTIVE SERVICES CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 039500/0366 →