Skip to main content

SCA Functional Specification

REGISTER_ENCRYPTION

Last updated: 23-Jul-2025

This command is used when full packet encryption is to be implemented.

Device UI Required
Display User Action Terminal Action
../../_images/proto_device_ui_register_enc_1.png Enter the PIN for POS paring. The device displays POS paring screen.
../../_images/proto_device_ui_register_enc_2.png Select the Enter button.  
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_ENCRYPTION Command name
KEY Required Base64 Encoded Data       RSA 2048-bit public key pair signed by a (possibly) self-signed certificate. This is used to decrypt the MAC_KEY returned in the response. This value is Base64 encoded.
REG_VER Conditional List 1 2
Possible values:
  • 1 - SHA1 with PKCS padding
  • 2 - SHA2 with OAEP padding
  • Empty - Uses SHA1 with PKCS padding (by default)
If REG_VER is not sent, then it will be treated as REG_VER 1.
Example

Following is an example of request packet

<TRANSACTION>
<FUNCTION_TYPE>SECURITY</FUNCTION_TYPE>
<COMMAND>REGISTER_ENCRYPTION</COMMAND>
<KEY></KEY>
<REG_VER>2</REG_VER>
</TRANSACTION>
Response Packet
Field Type Value Description
RESPONSE_TEXT Character Registered Processor response text.
RESULT Character Valid values: OK or ERROR This indicates the Result details.
RESULT_CODE Numeric
Valid values:
  • -1
  • 59001
  • 59020
  • 59040
  • 59051
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.
TERMINAL_KEY Base64 Encoded Data Encrypted AES-128 with Public Key This is the terminal key used to encrypt and decrypt the transaction data. It will appear as Base64 data. The decoded, decrypted TERMINAL_KEY is to be used as the MAC Key when encryption is enabled.
MAC_LABEL Character P_<Random String> Value to be stored by POS
ENTRY_CODE Character Value entered by user Appears as a Base64 encoded, encrypted value representing 8-character code sent in response for POS to validate.
Example

Following is an example of response packet

<RESPONSE>
<RESPONSE_TEXT>Registered</RESPONSE_TEXT>
<RESULT>OK</RESULT>
<RESULT_CODE>-1</RESULT_CODE>
<TERMINATION_STATUS>SUCCESS</TERMINATION_STATUS>
<TERMINAL_KEY></TERMINAL_KEY>
<MAC_LABEL>aBC124</MAC_LABEL>
<ENTRY_CODE></ENTRY_CODE>
</RESPONSE>
  

Note

The COUNTER resets to 0 with each REGISTER command.

Sample for Register Encryption 1.0:

SCI_REQUEST

<TRANSACTION>
<FUNCTION_TYPE>SECURITY</FUNCTION_TYPE>
<COMMAND>REGISTER_ENCRYPTION</COMMAND>
<REG_VER>1</REG_VER>
<KEY>MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnM6CnGUBdIjvs0Li5S349c1S1pL1n7tQVmQZSpN1PDl6jL2sBp2KeqQcVa/PkYb7n5o0LFK9oHCurn/MQf3AEWeEK7pIsmjXG2NhUnoC1Qrzk23aS9iQhircSnzluQiAqxsRerImN+NTq1q6kdQ61MpPuk6Z/Md9JR93CDwSLyN0KqAX84GEPIP0m6AjFzaJirMPSsRAI4VcO13Dc2r94jeT1rR20yohnV3RCTznknujwBA/uUARWT68X1L3Bs9YmM+EU5NW33GofkMjGoiEK3RZqpLp4lXA61xkCXAugNWiIkBFCGV26TsDiU2iddBn9d2Laz2SmmNGvlrbNUZCQIDAQAB</KEY>
</TRANSACTION>

SCI_RESPONSE

<RESPONSE>
<RESPONSE_TEXT>Registered P_YI1SWE</RESPONSE_TEXT>
<RESULT>OK</RESULT>
<RESULT_CODE>-1</RESULT_CODE>
<TERMINATION_STATUS>SUCCESS</TERMINATION_STATUS>
<MAC_LABEL>P_YI1SWE</MAC_LABEL>
<ENTRY_CODE>UuSMf+Rs/fE1RH23YO7R4r/U3OTu153A+2zOSA/NE203WcL9+aP/aAyoYTaeFl4K6yNQdYSZuQWaSHR0FmI8moohe+n4QGPYWipHv9AZ1Ps1Ac+Yb5PA612mLZ8gsahXdImFSJlxhNuT7Te8gciqZDe+47fNL/uzzIwOl8SaepVyz9/lGGlHXQla73eaMsPg8NcDbErTProXeahAVZCYik3VI0BHCT3ZfHAKQAvTdTArO9p+U7v70vlV6Le5sDrxLLIMrdGMEnvN60BskpUgGGElR2wlTZN/b4oc7lzyhxO30gEj2hsr/n+h7fE1+y7y81Lla8avvzsSoop85FH3iw==</ENTRY_CODE>
<TERMINAL_KEY>U7GsMtv3Gd3ZIb2j0/0/9CTdiBrKRJROdoyslluTQ250hGADEMlYD954BD7v8r5WQUcOMYfV+v9GW0lY9Md4iyBnUmOqaz7h41qAM+WJPo/1+Bh3H4DNzM56FKxHG0mFPVGg3yqabOYltKrvbW515vEg8GNw/a7lSHj3T9UzhO9dDWCDkgl9XNyedd8hoIdJoorK2vaEvr7MmqfcZzE6Xqm+LBKeUoLb0RrkXchigHZczKDPGq9qAaV9hbko5NzyBEnTbxEeNKyP27BN9rX0Bjld3IyjjiuvT3AM1cjQ+UO8GZ+ivHVOD0jeJJcHB5dbUpTI6IHC++LlW8ULIebBKA==</TERMINAL_KEY>
</RESPONSE>

Explanation:

Private key in base 64 : MIIEpAIBAAKCAQEAs4gXJt6dfXNi6L3UmGZ0eG/phIZdqfVpQROXyyGULpZ2iI7cllQ4XOLxH1L68VjGtdoa/pgYYU0SyuekHdt2dErcAX1K/upkTkYG1f4RWKQYW1GGxUfd8afdnuxgIQzk8QIT09F2gJfBcdgri7vRKCGd8jyMKyIiQ01HYsXFDga7eoJExGVvVmIWHrN9WlOvgxFoMiR0oxiPWliWT5Lsg//2/yPV0MeAH2ypNptlb2Qr2o4IdxDu4nGVHk7CMp8COwKxpljY+RaFqkTYM+hPiwDPLodD3IKhi/ZBc7cUUFRr5jIbHyybaknRCWxYV2hOXuM5DoSQM5Fqy29cTMQIDAQABAoIBAGqgGff44RpfzE+kZr44o1XgSZVu4/QMD/4Zb96xy7s7m5yRFIun622nT0OmWem7KxFYPw4UMO6hAtdFaiBddmWtDCtKSZ/jS+s3OI0M2yQCXPOwHaH6Ep1ldtG8tvg4DBXnqHPKBhdrrxnUhyQMNgjROeusicLExbZ4BKLON9/GTqYr30W8CnDaFaE+qfol+Ryu+Gbkrf09w8W6nL2+a4nlVqx0J/Ray0Y0l4222iLpIKdsvvGQ9wNVgVfw3rdDclsp4lZgaJ0FXXC5zn+R4/71RgY+wLulBV4kT1oPlmIeLNel38fiKyKjQPYeC37k0SZG1NIuNvIT7YvpESdN40CgYEAwZqzWVLe3p0YnvgEY/xb5//7zgoXXHKS3ZOQfIy/1ZfA4hjZyStzpn7mdAT6RctwfrQgoGcYkwgTtywbts9tQeQmK4oY7sUShX3iju9UDw1bXQ6VCNhb4JOGcayOztlrNxjPnCmnuzpm/5Lp1mZ1/keJ88/x0Trv91L6+zND6ycCgYEA7WRS4tt6UaYYBni/829rp+dmmaHuktDstLm/hSjIWmKFC207zccIBpCCizRhyz6C7oRpfUF72vXY2jx6bc79MHpfSFS2x2/selEqZFCey/CXycbD9Y5aDmAq1jZg+8saaZrOjxCZKYsoTXM40CKCPK3gSz3HEFaOMZU+15as5ecCgYEAsz3JnAIoSovBFrRiRDuIz1Lkys328OU2aaPL2jPpCxPzRKBjSWdMLDJCo9lT6DhAT13u8vJgAwgwUJ6qjeaeralPWXICQVT9H8/7Z//VoBXqp03v1v+QmGucxjNPB9ys8Zar51V9b87TOvzGN3Qm+6M56ht0MxTQw/b0XIsK73MCgYEA2UF5gdivZ04EqteThGyyL+Xcxjmmp4LBPtzH5EvgoKeNb1m246qFM8zJTDDSVzmMhlF0YYeunENnBMNYoGpQ2S8FSKMO7BMIbyEdFNWbnrU/lRBtgquWy5VDXuxBce786y0cYV4lbhnG9qq+ke0jF/lhTjrplZBBbitSaeehsH0CgYBEZUs3hXpgy29HLCBuRwjbZ3HqbVWBLs6unscmZuvvnjAjdXVrU0kcu9up7oslqqMedH5LjC8XCMUn4CYN/+uDOIvBqk8aNUl0mCXrwIH0zXTRr/1ZFItR6aTwl75oXIvGgI8pJE1vasFSkWRk+O8Ze+n0Y03fXkoKfcDOTI1VZA==
Private key in base 64 length : 1592

Public key in base 64 : MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs4gXJt6dfXNi6L3UmGZ0eG/phIZdqfVpQROXyyGULpZ2iI7cllQ4XOLxH1L68VjGtdoa/pgYYU0SyuekHdt2dErcAX1K/upkTkYG1f4RWKQYW1GGxUfd8afdnuxgIQzk8QIT09F2gJfBcdgri7vRKCGd8jyMKyIiQ01HYsXFDga7eoJExGVvVmIWHrN9WlOvgxFoMiR0oxiPWliWT5Lsg//2/yPV0MeAH+2ypNptlb2Qr2o4IdxDu4nGVHk7CMp8COwKxpljY+RaFqkTYM+hPiwDPLodD3IKhi/ZBc7cUUFRr5jIbHyybaknRCWxYV2hOXuM5DoSQM5Fqy29cTMQIDAQAB
Public key in base 64 length : 392

Register Request:

<TRANSACTION>
<FUNCTION_TYPE>SECURITY</FUNCTION_TYPE>
<COMMAND>REGISTER_ENCRYPTION</COMMAND>  <KEY>MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs4gXJt6dfXNi6L3UmGZ0eG/phIZdqfVpQROXyyGULpZ2iI7cllQ4XOLxH1L68VjGtdoa/pgYYU0SyuekHdt2dErcAX1K/upkTkYG1f4RWKQYW1GGxUfd8afdnuxgIQzk8QIT09F2gJfBcdgri7vRKCGd8jyMKyIiQ01HYsXFDga7eoJExGVvVmIWHrN9WlOvgxFoMiR0oxiPWliWT5Lsg//2/yPV0MeAH+2ypNptlb2Qr2o4IdxDu4nGVHk7CMp8COwKxpljY+RaFqkTYM+hPiwDPLodD3IKhi/ZBc7cUUFRr5jIbHyybaknRCWxYV2hOXuM5DoSQM5Fqy29cTMQIDAQAB</KEY>
</TRANSACTION>

Register Response:

<RESPONSE>
<RESPONSE_TEXT>Registered P_KD1S7Y</RESPONSE_TEXT>
<RESULT>OK</RESULT>
<RESULT_CODE>-1</RESULT_CODE>
<TERMINATION_STATUS>SUCCESS</TERMINATION_STATUS>
<MAC_LABEL>P_KD1S7Y</MAC_LABEL>  <ENTRY_CODE>rkr8DDwPyhWSffdAUs9AG20LCo8DtKnxezV9DPigwBJ8BLojQeixBpZAoj1DwJoJ4jY28T5kK3ueIM8kotAq0CE/S8bgK3lCRn/MZyPVxdke1VjxVvlU0eBUbW/982882NYVxISSkZRrIiUgW/p+AQHeTNKT7sumWypPx7P9dsT1n84U5JY/8bEkmnz36FTLKs2AdiTQhPxYljK3ax8tlukXUpdaPPgOdArtjl9QMhIYx5gMwrO2t5CKjVHkL1f4Yg0BLPHeKTDwkiyXoL2lDJUb4f/j0AhavX7BnYJr8o3k7NPdQlLREoDe6r15aMmdJ7cP5dQPDjm/B+0RnP80MQ==</ENTRY_CODE>
<TERMINAL_KEY>l5hEg80188g1KBQL0lOSxtPQtbvCenMjCMhDhz68QuZZCpml08BHVI+yVUXYC9GrQe/HqYVaC+nCt/Ub20ImimsxWagufD0PMYwORq7ZAnDI/l3zqmKjKrxJ6MWJJhDnPQmyk+IgaDmOY/OoowehJVXvOFiTYb0eQ8aIKNiaFo5h7oNdSJoIwJSTNOWiIkvhMpgv4aMuD8CwC4ixUMZEyIrki0Pr1oPXWCx2giSCXcE0DzJNS8Bn7+slW4ywRdOoeh3FbG8tylHU4ihLRSaobjpzhD4w/JHWBzMjwjOmv7jdV6NSQvsQ8a3sogpgqfFrt5584ffAi2KQZvx76wyl6g==</TERMINAL_KEY>
</RESPONSE>
encryptedMacKey : l5hEg80188g1KBQL0lOSxtPQtbvCenMjCMhDhz68QuZZCpml08BHVI+yVUXYC9GrQe/HqYVaC+nCt/Ub20ImimsxWagufD0PMYwORq7ZAnDI/l3zqmKjKrxJ6MWJJhDnPQmyk+IgaDmOY/OoowehJVXvOFiTYb0eQ8aIKNiaFo5h7oNdSJoIwJSTNOWiIkvhMpgv4aMuD8CwC4ixUMZEyIrki0Pr1oPXWCx2giSCXcE0DzJNS8Bn7+slW4ywRdOoeh3FbG8tylHU4ihLRSaobjpzhD4w/JHWBzMjwjOmv7jdV6NSQvsQ8a3sogpgqfFrt5584ffAi2KQZvx76wyl6g==
The Requested entry code was: FAAE4612
The Returned  entry code was: FAAE4612
The Entry Codes match.
decoded macKey in base64 :JKG+pFJEbWwWNeZtGfae/Q==
Sample for Register Encryption 2.0:

SCI_REQUEST

<TRANSACTION>
<FUNCTION_TYPE>SECURITY</FUNCTION_TYPE>
<COMMAND>REGISTER_ENCRYPTION</COMMAND>
<REG_VER>2</REG_VER>
<KEY>MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoZ8CoiZl/QBTq71BrW3q5Ay14OQyL5r6/zxz67WsFhIi3uzQma3iHdyJQG9Nxjh5q52IZrA7Ss2JgKK2oaMyqTrZFXuU+dg9tHYf6xb55RyYF98J8fwAG+4eoOH/T61ztgn0FX6Ab/duraDdv521rMz2zPHCISpPS/kpkS+3MNEmDsZca7M/EAFjlok3xl2K5np6M7lgoFKTp2ktgzMKtD+Ej4RLc8Nfu5puaSpTInpYKlKFglMuknH7yeXsnAEbGBpQXZ2rwGoECXgxY1mYxqL7d7YwmSK+pPhEIjcu18/a6I96htrMMcL+OJIvZDC/foqgbkC1tmVuHgwk3wuAQIDAQAB</KEY>
</TRANSACTION>

SCI_RESPONSE

<RESPONSE>
<RESPONSE_TEXT>Registered P_VS2NXH</RESPONSE_TEXT>
<RESULT>OK</RESULT>
<RESULT_CODE>-1</RESULT_CODE>
<TERMINATION_STATUS>SUCCESS</TERMINATION_STATUS>
<MAC_LABEL>P_VS2NXH</MAC_LABEL>
<ENTRY_CODE>isIfyQwgacj5lAA7ixeRS1Nw1W2leWMvSF4lz7j+Ryu9VAtuglZrnlcuBtUbJx16Lj+TW0A/ju5rxL/CRSlzEr9S268hoxhZaHUK09PSR5ExSwcZYF1qOurGer7dicXjNE+5KcfWaej3ifmzHA/tv+hTD6pgmOiWHaLZ/pFdEwGhynX+7MAJE+NOPeO367hPHFOfRyTge9Ras1jj9rWIPxzsMCZHnQaOhIQNe1vW5BJrmQQOISwYV8jGeKNW7m3zYY3inhliW76xZSFGMYNuXJ5MQziUwz+EpWqX6Z2ffTL/9eebHoArnFq3MEequOsRrieXCzKMH4djA2WL6t+IlA==</ENTRY_CODE>      <TERMINAL_KEY>BVchapq1WiAnWmD31uPlBrmxNdRlCLiAD+4QM40ALl16KKNyHi/V/EXaZfjXbZ17ysCizrbaPrKwR/0E2wjSA/07a+oPPagqPpcHfBZXVQNFUK6gJ3p5f+/pEfR4HRlc91BwqpnaUbywud1h5wrTR7tQeyEyOksc1PBwrx4n1Oegn0WwJv1qmL59sHjpVNZZgAcjOL3ra1LoUaRk9jsdConvbkqkAqYTGpigD+oDh0sV1OPRdA4WDJN4cLQv3+cf20A71B26AeW0qmHzvdIuNC7gRkne7iOPOnj7tBG6aIjgtl4Nx3vTQyLDpxeVTgVhE1xY9/f62ndAfL6cgAXkRQ==</TERMINAL_KEY>
</RESPONSE>

Need help?

Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

Not yet a Verifone customer?

We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

Verifone logo