# What’s Changed?

#### XPI Commands

As the XPI application architecture has evolved, some supported commands have changed request and/or response format. In most cases, changes to the request / response formats are backwards compatible and are usually conditional based upon a variable setting.

In some cases, commands are not backwards compatible to all XPI code versions. This chapter will highlight those changes.

D25 - Optional Flags Command

The D25 command has the same command format between all versions of XPI, however, not all of the positions have the same meaning. Integrators who have coded to the VX XPI 11.xx or 12.xx application versions should be familiar with the changes required for the D25 command since these changes have been in place since the XPI 11.xx application version.

Integrators who have coded for the D25 command as implemented with MX XPI 5x00 application versions will need to change their code to support the changes to the D25 command.

For more detail on the command differences, see the EPP Interface Functional Specification Guide for changes to field definitions.

D30 / D32 - Prompt Message Changes

The D30 and D32 commands previously supported different field lengths. The D30 command limited the Line x display text to 16 or 24 characters, depending on the device type / screen size. The D32 command allowed the user to display text up to 32 characters in order to accommodate larger screen sizes.

With XPI 19.01.xx, both D30 and D32 will support up to 40 characters sent from the POS. There is no functional difference between the D30 and D32 commands, but both commands are supported to maintain compatibility for integrators who have coded to both commands.

When using the F30 – EMV Quick Chip command, the display text can be included as part of the command. It is recommended for customer that send the D30 command prior to every transaction to move to the F30 command and add the custom tag <9F> <40> to the command to eliminate the extra D30/D32 command.

E30 - Bin Range Check

The E30 request format remains the same as previous application versions. However, the format of the response data will vary slightly.

The command is supported in legacy XPI and CAM-XPI to check the bin range that the card belongs to, by comparing the 7th through the 9th bytes of the PAN data. The only difference in legacy XPI and CAM-XPI is the response format of the command. The CAM-XPI responses include response code and error string, whereas legacy XPI responses include and error string, as mentioned in the below table.

| CAM-XPI | Legacy XPI                                     |
| ------- | ---------------------------------------------- |
|         | 00 and 01                                      |
|         | Y, N and errors details for response code = 01 |

Refer to E30 command in *EPP Interface Functional Specification Guide* and *Mx Specification Guide for XPI* respectively for more details on the response format.

S23 - Combined Prompt Command

The S23 request format remains the same as previous application versions. However, the format of the response data will vary slightly.

Previous versions of the application included padding of the PINPad Serial Number field. The serial number is left justified and padded with spaces to 16 characters. In XPI 19.01.xx, the field length is the size of the PINPad serial number – which is 9 digits. This is the same response format followed by the VX XPI 11.xx and 12.xx applications already.

Another difference which is already seen in the VX XPI 11.xx and 12.xx versions is the behavior for the Account Selected response field. If Prompt Index Array 02 is not included in the request, the application will return a “0” in the response.

S66 - Create MAC Request Command

Previous versions of the application included padding of the PINPad Serial Number field in the response packet. The serial number is left justified and padded with spaces to 16 characters. In XPI 19.01.xx, the field length is the size of the PINPad serial number – which is 9 digits. This is the same response format followed by the VX XPI 11.xx and 12.xx application versions already.

Additionally, there is a difference in how the MX XPI 5x00 application defines the masked data to compare to the stored masked data when MACing the clear track or PAN data. The input data is prefixed with either a \*P for PAN or \*T for Track data. In the XPI 19.01.xx application, the prefix is not required. The application will check internally for the match on Track data and if no match is found it will then check against the PAN data. Whenever a match is found, the clear data will be MACed.

S95 - Request Serial Number Block Command

The S95 command has been enhanced in order to better support the Verifone Engage devices and to better support the differences between VOS and VOS2 devices. In some older VX applications and in the MX application, the command had fixed length fields As the XPI architecture changed, version numbers for some components did not fit into the fixed length fields. The same information is available from the command, but the command can now be configured to return only specific version information, or to return all version information.

Integrators who have coded to the VX XPI 11.xx or 12.xx application versions should not be required to make any changes. However, if using S9510 (Return all available codes), integrators should check the latest version of the EPP Interface Functional Specification Guide for updated codes which can be returned.

Integrators who have not coded to the VX XPI 11.xx or 12.xx application versions will need to change their code to parse the response from the S95 command differently.

For a detailed description of the S95 command and available options, please refer to the EPP Interface Functional Specification Guide > API Command Set > S95 – Request Serial Number Block.

Z2 - Display a String Command

Previous application versions did not include a response to the Z2 packet. The XPI 19.01.xx application includes a Z2 response packet. The response packet is the same as what is already implemented in the VX XPI 11.xx and 12.xx application versions.

For a detailed description of the Z2 response command, please refer to the EPP Interface Functional Specification Guide > API Command Set > Z2 – Display a String.

Z3 - Display Messages Command

Previous application versions did not include a response to the Z3 packet. The XPI 19.01.xx application includes a Z3 response packet. The response packet is the same as what is already implemented in the VX XPI 11.xx and 12.xx application versions.

For a detailed description of the Z3 response command, please refer to the EPP Interface Functional Specification Guide > API Command Set > Z3 – Display Messages.

Z8 - Set / Rest Idle Prompt Command

Previous application versions did not include a response to the Z8 packet. The XPI 19.01.xx application includes a Z8 response packet. The response packet is the same as what is already implemented in the VX XPI 11.xx and 12.xx application versions.

For a detailed description of the Z8 response command, please refer to the EPP Interface Functional Specification Guide > API Command Set > Z8 – Set / Reset Idle Prompt.

Z62 - Accept and Encrypt PIN, Display Custom Messages Command

The Z62 command request and response formats have not changed for successful PIN entry or PINPad based errors. The 71 response will still be returned with the encrypted PIN block or for any errors related to PIN entry. However, additional response codes have been added in the case of a timeout or in the case that Cancel key is pressed.

In the case where the PIN entry times out or Cancel key is pressed, the 71 response will not be returned.

The response format will be as follows:

Z62

Response Codes

* 03 – Cancel Key is pressed at PIN prompt
* 06 – Timeout is reached without completed PIN entry

For more detailed information on the Z62 response changes, see the EPP Interface Functional Specification Guide.

#### FP Commands

As the Forms Processor application architecture has evolved, some supported commands have changed request and/or response format. In most cases, changes to the request / response formats are backwards compatible and are usually conditional based upon a variable setting.

In some cases, commands are not backwards compatible to all FP code versions.

XCLOCK

The XCLOCK command is used to set the date and time of the terminal. The Success and Failure responses are different for Legacy and Engage devices. The reason for this difference is because with an Engage device the XCLOCK command is always processed by CXPI, whereas in Legacy devices, the Form Agent application processes the XCLOCK request. Examples of the responses are as follows:

| Devices              | Success Response | Failure Response |
| -------------------- | ---------------- | ---------------- |
| Legacy Device (Mx9)  | XCLOCK1          | XCLOCK0          |
| Engage Device (M400) | XCLOCK00         | XCLOCK02         |


---

# 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/xpi-migration-guide/engage/whats-changed.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.
