Reflection 2014 .NET API Guide
Monitor Credit Card Access

You can enable the CreditCardRecognized event to fire when unredacted PAN data is recognized and handle this event to create logs or perform other actions required for compliance.

When the event is enabled, it is fired when unredacted PAN data is copied from the terminal to the clipboard or to a productivity tool. For IBM systems, the event is also fired when unredacted PAN data is displayed on the screen.

Note: This event is fired only when a PAN is copied or displayed in its entirety ("in the clear"). It is not fired when only redacted PANs are copied or displayed.

To monitor credit card access

  1. In the Reflection Workspace Settings window, click Set Up Information Privacy.
  2. Under Primary Account Number (PAN) Redaction Rules, make sure Enable Redaction is unselected. (For  IBM terminals, if you leave Redact display data (IBM terminals only) unselected, the event fires when PAN data is typed on the screen.) 
  3. Under PCI DSS Rules, select Enable API events when PANs are viewed by the user.
  4. Set up the CreditCardRecognized event and event handler.

    This sample sends information from the CreditCardRecognized event to standard output.

    Copy Code
    //Set up the event handler to get the data you want to collect
    void ibmTerminal_CreditCardRecognized(object sender, CreditCardRecognizedEventArgs e)
    {
      Console.Write(("\n" + "Credit Card Number Viewed on Screen \n"
      + "Date and Time: " + e.DateTime.ToString() + " \n"
      + "Machine name: " + e.MachineName.ToString() + " \n"
      + "User ID: " + e.UserId.ToString() + " \n"
      + "Card number: " + e.RedactedAccountNumber + "\n"));
    }
     ............
    
     //Attach the event handler to the IbmTerminal object's CreditCardRecognized event,
     //where ibmTerminal is an instance of IbmTerminal.
     ibmTerminal.CreditCardRecognized += new CreditCardRecognizedEventHandler(ibmTerminal_CreditCardRecognized);
     ...........
    
    Copy Code
    //Set up the event handler to get the data you want to collect
    void terminalVT_CreditCardRecognized(object sender, CreditCardRecognizedEventArgs e)
    {
         Console.Write(("\n" + "Credit Card Number Viewed on Screen \n"
         + "Date and Time: " + e.DateTime.ToString() + " \n"
         + "Machine name: " + e.MachineName.ToString() + " \n"
         + "User ID: " + e.UserId.ToString() + " \n"
         + "Card number: " + e.RedactedAccountNumber + "\n"));
    }
    //Attach the event handler to the Terminal object's CreditCardRecognized event,
    //where terminalVT is an instance of Terminal.
    terminalVT.CreditCardRecognized += new CreditCardRecognizedEventHandler(terminalVT_CreditCardRecognized);