# CXPI\_Discretionary\_Data \_ReferenceGuide\_Ver1.0

## Introduction

This purpose of this document is to provide details on the support for clear discretionary data and its configuration settings.

### Intended audience

This document is a reference guide that provides encryption information to the integrators, sales engineers, other Verifone project teams, and accredited Verifone customers who wants to use this encryption with CXPI.

### Knowledge prerequisites

It is assumed that the user of this guide is familiar with these concepts:

* CAM-XPI application
* Application Programming Interface (API) to the Verifone programmable PIN Pads
* Different payment devices and Verifone terminals
* Magnetic Stripe, Contactless (MSD & EMV), and Contact EMV transactions
* Processing of credit, debit, and loyalty or gift card transactions

### Reference Documents

Following are the list of related documents that can be referred for more details on any associated section:

* EPP Interface Functional Specification Guide
* Forms Processor Application Guide

## Support for Clear Discretionary Data

According to P2PE standards, discretionary data is considered as sensitive information and should not be returned in clear. Since the discretionary data is considered as sensitive data for payment cards, XPI cannot send back the clear discretionary data in the response. However for the fleet card, discretionary data is considered as non sensitive data.

XPI application identifies whether the card swiped is a fleet card or not by using CAMCRYPTO.BIN. Two new optional fields are added as CLEARDISCDATAPOSITION and CLEARDISCDATALEN at the end of each record along with BINLEN, BINLOW, BINHIGH, PANLENLOW, PANLENHIGH, CARDTYPE, ENCRYPTIONTYPE.

| Fields                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CLEARDISCDATAPOSITION | This is an optional field, which refers to from which position starting from the end of discretionary data POS is expecting clear discretionary data. The highlighted data provided in the example below is discretionary data. Example: 5454545454545454=1225 123 12345678 If the discretionary data is of 8 bytes length and if POS is expecting last 3 digits in clear, then CLEARDISCDATAPOSITION should be configured as 3. If the value is not configured or if the value configured as 0, then the complete discretionary data will be encrypted. |
| CLEARDISCDATALEN      | This is also an optional field, which refers to the number of digits of discretionary data expected in clear. If the value is not configured or if the value configured as 0, then the complete discretionary data will be encrypted.                                                                                                                                                                                                                                                                                                                    |

If the customer configures CLEARDISCDATAPOSITION and CLEARDISCDATALEN then discretionary data as part of track data / 57 tag as part of C30/F30/S16/S20 response will be sent in clear based on the configuration. There is no change as part of encrypted blob information.

{% hint style="info" %}

* ALLOWBINEXCEPTION parameter should be set to 1 in CAMCORE.INI to accept BIN ranges as part of CAMCRYPTO.BIN.
* Clear discretionary data will not be sent if ACIFLAG is enabled. If ACIFLAG is enabled then the track2 data / 57 tag data is sent in unclear format and this scenario is not applicable for Non ISO cards.
* In case of VSP encryption, handling of discretionary data will be through VCL settings file.
  {% endhint %}

### Parameters

| Parameter         | Description                                                                                                                                               | Values                                                                                                              | INI File Location |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ----------------- |
| ALLOWBINEXCEPTION | Allows application to check the CAMCRYPTO.BIN file and recognize the encryption type for any given BIN range. NOTE: Only NOE is allowed in CAMCRYPTO.BIN. | Flag. 0/1 — 0: Do not allow BIN Exception from CAMCRYPTO.BIN. 1: Allow BIN Exception from CAMCRYPTO.BIN. Default: 0 | CAMCORE.INI       |

## Configuration Settings

#### XPI Parameter

| Parameter         | Description                                                                                                                                               | DDK Mode                                                                                                            | AES DUKPT Mode |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | -------------- |
| ALLOWBINEXCEPTION | Allows application to check the CAMCRYPTO.BIN file and recognize the encryption type for any given BIN range. NOTE: Only NOE is allowed in CAMCRYPTO.BIN. | Flag. 0/1 — 0: Do not allow BIN Exception from CAMCRYPTO.BIN. 1: Allow BIN Exception from CAMCRYPTO.BIN. Default: 0 | CAMCORE.INI    |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.verifone.com/xpi/tbd-documentation/engage-miscellaneous/cxpi_discretionary_data-_referenceguide_ver1.0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
