REGISTER
This command registers a POS to the device’s list of trusted clients and establishes the data to be passed with each request that is necessary to determine if transactions originating from the POS are authentic.This command sends a 4-digit code to the device. The code must be entered in order to register/unregister the associated POS to/from the device. POS should perform the Test MAC command to verify pairing was successful.
For Version 2.0 (REG_VER 2), the difference is that it’s an 8-character key, it is not sent in the request, and it is returned in the response to the POS. What the key is made up of and how it’s checked is identical to how it is described in the REGISTER_ENCRYPTION method. See section Full Packet Encryption.
Note
The COUNTER resets to 0 with each REGISTER command.
Device UI Required: Yes
Request Packet
Field | Rule | Type | Minimum | Maximum | Value(s) | Description |
---|---|---|---|---|---|---|
FUNCTION_TYPE | Required | Static Value | N/A | N/A | SECURITY | Type of function. |
COMMAND | Required | Static Value | N/A | N/A | REGISTER | Command name |
ENTRY_CODE | Conditional | Character | 4 | 4 | Random 4 digits, like 1234 | This is required to send if REG_VER = 1. Four digits character code that should be entered through the device UI. This should not be a static value. POS UI should display this value for user to enter on the device for pairing. NOTE: If autopair=1, then the Engage devices do not require four character entry through the UI. Refer to Pairing and Key Exchange section for details on AUTOPAIR functionality and Application Parameters for more details on AUTOPAIR parameter. |
KEY | Required | Base64 Encoded Data | The public component of RSA 2048-bit key pair. This value should be DER formatted and base64 encoded. The corresponding private key (not sent here) is used to decrypt the MAC_KEY returned in the response. | |||
REG_VER | Conditional | List |
|
If REG_VER is not sent, it will be treated as REG_VER 1. Refer Message Authentication for more details. |
Sample Request
<TRANSACTION>
<FUNCTION_TYPE>SECURITY</FUNCTION_TYPE>
<COMMAND>REGISTER</COMMAND>
<KEY> … </KEY>
</TRANSACTION>
Response Packet
Field | Type | Value(s) | Description |
---|---|---|---|
RESPONSE_TEXT | Character | Registered [MAC_LABEL] | Processor response text. |
RESULT | Character | OK or Error Code | This indicates the Result details. |
RESULT_CODE | Numeric |
|
This indicates the result code. Refer to Result/Error Codes for details. |
TERMINATION_STATUS | Character | SUCCESS or FAILURE | This indicates the transaction termination status. This is the overall status of the transaction irrespective of approved or declined. Like, if the output is generated then the status is SUCCESS and if no output is generated then the status will be FAILURE. |
MAC_KEY | Base64 Encoded Data | Encrypted AES-128 bit key | This key is used by POS to encrypt the counter. This value is in Base64 encoded. |
MAC_LABEL | Character | P_<Random String> | Value to be stored by POS |
ENTRY_CODE | Character | Value entered by user. | Sent in response for POS to validate when REG_VER = 2. It will appear as a Base64 encoded, encrypted value of 8-character code. Example: 87654321 |
Sample Response
<RESPONSE>
<RESPONSE_TEXT>Registered P_175</RESPONSE_TEXT>
<RESULT>OK</RESULT>
<RESULT_CODE>-1</RESULT_CODE>
<TERMINATION_STATUS>SUCCESS</TERMINATION_STATUS>
<MAC_KEY> … </MAC_KEY>
<MAC_LABEL>P_175</MAC_LABEL>
</RESPONSE>