Card Token Maintenance
2C2P's Store Card Maintenance API allows merchants to manage tokenized card data. Using the API, merchants can add, check, update, or delete card token data.
HTTPS POST / Server-to-Server
Payment requests and responses are encrypted using JWE
- JWE algorithm = RSA-OAEP + A256GCM
- The signature uses JWS PS256
Merchants must know how to prepare requests and process responses using JWE + JWS with exchange key.
https://demo2.2c2p.com/2C2PFrontend/PaymentAction/2.0/action
https://t.2c2p.com/PaymentAction/2.0/action
Add Card Token Request
To prepare an add card token request, refer to the guidelines below.
Provided Sample Code
The following sample code demonstrates how to prepare request data, generate the JWT token with key, and send the API request.
For the JWT token, you may also refer to the sample code here.
- To prepare the data payload for the add card token request, refer to the sample structure shown below. You may also check the API specifications here: Add Card Token Request Parameters
2.To generate encrypted request data, refer to this guide: Generate JWT Request with Keys
<MaintenanceRequest>
<version>2.3</version>
<timeStamp>050321102154</timeStamp>
<merchantID>JT01</merchantID>
<storeCardUniqueID></storeCardUniqueID>
<pan>4111111111111111</pan>
<panCurrency>702</panCurrency>
<panBank>OCBC</panBank>
<panCountry>SG</panCountry>
<cardholderName>Terrance</cardholderName>
<cardholderEmail>[email protected]</cardholderEmail>
<panExpiry>1230</panExpiry>
<action>A</action>
</MaintenanceRequest>
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5yUWVlVGNOdUp3dmVNd0duS1VHVDZoRTNtV2RCWFFUMndacC0wSE8zZVU5UDBNWS16UlljX0YtU3VrakNmV25YUTQ2bS05cnh0M1ZmNDFpdkRuX0FQVFAtcW0yS2FJTFhnR19Kb1FzenBpTGlQTGItYjVQTWVmWXNjaHMwSndmOVVLWVN5SUNsTHAzcjNyMHBtQTk2VFlZS3VnMU1PaUh3VjhyQnhhdzNZQU5nU2tNZ2o2S09KSFZSSlRwSTdJbVlkNXhVU2lNXzNnTjVXUG5ka0N5WEh1Q29peXcySDJvQUd6Q2c4aGhXYU9HeTV2MVlOc1BYLWhCTG9qcDVmY05nSzBnLXl2Vmt5aWVqYUprNUtPQ0JFNDZPVWRUaVlpcVVOSEYxY24wd3RMZ0RMaUNqc2JLWHk3SDEwbzlaaEh2RF9RdHBUemUydldKOEoxYnozYWJtNUEuTW8tWmQ5dUk2ZTg2eFNzRy5ISjhucUstZzFHZGoyYWNrelVVMTJFalZaTFVhMkJFQk1Eb1ExbXU0aUZFSzFJWFhUZ1haZWZVOEwxOTltN1pWN09jTUtnYlhmc2tFcVBYUkVqcUI0d0o2X1RzT3FlcUJ0MUI0ZE1DUkRDRXhFQkNKRmc0X1N3TXcySzVqM2xhRHA1cHFoa090cmFUSEY5cWlvTDE0eUF2dzdTMmNqUHN3NkdVd3JWVXBpTEtBRFdxYy1hT3hVY19aTUthSnFfOExCNWhaV3JWdDBDN3JuLUZsWUNRc19HV3hpNlQtVWNCT2VCb09sUnNhMGpCTE12RjYtWUhVYjcxZU05MjNrejJNaTFJZEpSUG5TSWgxUXZRUzE3VTRmd2tYRDNWS3RpSV9YS1B1VWZzLVBJY200YWlFWFlOb1R2Y0tHTDZ1SFVLcXdCOUJpUlowbEFmeFNaVGhXeHRza2hkd1kxQ0E5THVDNHJsemxaV0t2clZRM0l6S21VLWw4eWFEYjIyS0tfdkFUcTZGanE2bC00ZFM0YjdpREI0WF9ySzdncEQxc1BSN2hnTE13Z3hTQVk0MkJRbGd1eVN6R0U0cEJ3RGZQczlqc21DUENBU3V2Zk9IS1lBR1dyVlhUUU5QVkljdUU3dTRMUERwZUJHVXJWcnIyVVZJWjNJOEhLX01QRF9sYkVuZDRFMU9qTEdxOVU2MlExMGxQUzYtRzhBMjBaMkt3Y3JMaWxBVEQzVXh4WDU4Mk4zSHhvY1RTQXBTeVRFYUpocHJqSUtvbnRjQ0E2YkZibGZ0djM1ZV9aYldWeDJSMk5GdTltczExTmIwWWtTQUhEMmdlbXNsQlNhTC5POERTSmVEdnlqVjhmTjFzUWVrZUtR.bl7baXcvzXTziJ7AXHd6xQeYRESjj_ExG3M7iW81BoW6kBmOyTo1RWBTJmz_aC2i3fa4Gq0msQeOpcEPmBAYXp7Czl0DXDsdtSphlx2Swr0dD1lQx1YJqzOySN2lTHmZLIa5YcT4umi0Ipo-z03GE_2gFZoAma3Bla84NvBRxD-5vc-OUZgUUjvhgqIB7h1kD6X6xTCJRFHFLKd5TRHVntdCyrblLsVCsLkO3vlkN987cMMMF3Cl_cHqC4rS7R__ytdeLtt4H4pVJTk6V5K_fUl3QTVKjG-UXwvyZMwS8paSqNEBdStwUO1MD2g4AhXO2SHIqeyWN0amUu1R8wtNeQ
- To send the encrypted request via API, refer to the sample request below.
curl --location --request POST 'https://demo2.2c2p.com/2C2PFrontend/PaymentAction/2.0/action' \
--header 'Content-Type: text/plain' \
--data-raw 'eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5yUWVlVGNOdUp3dmVNd0duS1VHVDZoRTNtV2RCWFFUMndacC0wSE8zZVU5UDBNWS16UlljX0YtU3VrakNmV25YUTQ2bS05cnh0M1ZmNDFpdkRuX0FQVFAtcW0yS2FJTFhnR19Kb1FzenBpTGlQTGItYjVQTWVmWXNjaHMwSndmOVVLWVN5SUNsTHAzcjNyMHBtQTk2VFlZS3VnMU1PaUh3VjhyQnhhdzNZQU5nU2tNZ2o2S09KSFZSSlRwSTdJbVlkNXhVU2lNXzNnTjVXUG5ka0N5WEh1Q29peXcySDJvQUd6Q2c4aGhXYU9HeTV2MVlOc1BYLWhCTG9qcDVmY05nSzBnLXl2Vmt5aWVqYUprNUtPQ0JFNDZPVWRUaVlpcVVOSEYxY24wd3RMZ0RMaUNqc2JLWHk3SDEwbzlaaEh2RF9RdHBUemUydldKOEoxYnozYWJtNUEuTW8tWmQ5dUk2ZTg2eFNzRy5ISjhucUstZzFHZGoyYWNrelVVMTJFalZaTFVhMkJFQk1Eb1ExbXU0aUZFSzFJWFhUZ1haZWZVOEwxOTltN1pWN09jTUtnYlhmc2tFcVBYUkVqcUI0d0o2X1RzT3FlcUJ0MUI0ZE1DUkRDRXhFQkNKRmc0X1N3TXcySzVqM2xhRHA1cHFoa090cmFUSEY5cWlvTDE0eUF2dzdTMmNqUHN3NkdVd3JWVXBpTEtBRFdxYy1hT3hVY19aTUthSnFfOExCNWhaV3JWdDBDN3JuLUZsWUNRc19HV3hpNlQtVWNCT2VCb09sUnNhMGpCTE12RjYtWUhVYjcxZU05MjNrejJNaTFJZEpSUG5TSWgxUXZRUzE3VTRmd2tYRDNWS3RpSV9YS1B1VWZzLVBJY200YWlFWFlOb1R2Y0tHTDZ1SFVLcXdCOUJpUlowbEFmeFNaVGhXeHRza2hkd1kxQ0E5THVDNHJsemxaV0t2clZRM0l6S21VLWw4eWFEYjIyS0tfdkFUcTZGanE2bC00ZFM0YjdpREI0WF9ySzdncEQxc1BSN2hnTE13Z3hTQVk0MkJRbGd1eVN6R0U0cEJ3RGZQczlqc21DUENBU3V2Zk9IS1lBR1dyVlhUUU5QVkljdUU3dTRMUERwZUJHVXJWcnIyVVZJWjNJOEhLX01QRF9sYkVuZDRFMU9qTEdxOVU2MlExMGxQUzYtRzhBMjBaMkt3Y3JMaWxBVEQzVXh4WDU4Mk4zSHhvY1RTQXBTeVRFYUpocHJqSUtvbnRjQ0E2YkZibGZ0djM1ZV9aYldWeDJSMk5GdTltczExTmIwWWtTQUhEMmdlbXNsQlNhTC5POERTSmVEdnlqVjhmTjFzUWVrZUtR.bl7baXcvzXTziJ7AXHd6xQeYRESjj_ExG3M7iW81BoW6kBmOyTo1RWBTJmz_aC2i3fa4Gq0msQeOpcEPmBAYXp7Czl0DXDsdtSphlx2Swr0dD1lQx1YJqzOySN2lTHmZLIa5YcT4umi0Ipo-z03GE_2gFZoAma3Bla84NvBRxD-5vc-OUZgUUjvhgqIB7h1kD6X6xTCJRFHFLKd5TRHVntdCyrblLsVCsLkO3vlkN987cMMMF3Cl_cHqC4rS7R__ytdeLtt4H4pVJTk6V5K_fUl3QTVKjG-UXwvyZMwS8paSqNEBdStwUO1MD2g4AhXO2SHIqeyWN0amUu1R8wtNeQ'
Add Card Token Response
To receive and process add card token request responses, refer to the sample code below.
Provided Sample Code
The following sample code demonstrates how to receive response data and decrypt the JWT token with key.
For decrypting the JWT token, you may also refer to the sample code here.
-
Following an add card token request, the API will return encrypted response data. Refer to the sample encrypted response below.
-
To decrypt the response, refer to: Process JWT Request with Keys
-
Refer to the sample response structure below. You may also check the API specifications here: Add Card Response Parameters
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS51ekctcm41NUFrM1VPZzZtdFhnenZ5RmE3Y2NzVGlUMG5Gb2lYN1VlODEtdHVnZFczUldEX2FHRFNLSWppd1o0VzVEd2w1azJ3VjRDdWtkRmh2a2pfU0l2bHllQk9OOU1TdjcwVEtCUnE2UFZ5TmlUUm1GeFY5WHFwWGV4SThpSTVmN0VKd2RONnRzeUNEMjI5ekpDWE1kVDJXbXlCRUJ0VnZYeVVJV0twX2RxUGtlQTVxdFdNV3RFbmJpZkNtbENfY1EtOEJEZk5UUnY2SDRJMnltQmd5TmJaSFVjZzdXMTBHOVI2VnNSMjk4NXFhQk9TOTh2bWxKOE5ybVQ0dGVtSlJxeEw4S3lnMnhvQjFvWXA1UXhKajE1NkdPTzNFYjl0U1E4ZjBmNDNtTUJYY3JMVWxKMFVOVXFBQ3NnWXM2d3lKUWZscUlOc081WG9hVEhLcG1TV3cuT3djLThyQm1lbnhMbjFscy5zNXpEQTV0ODJoQkZpVVBMU2NvNVZpenRwRDZPV0xab2xIY2xsZFVXS1cteUE2dF9mTXdJS2Y1NXpqMTBvOXNxaTdTRU4yZ3BNbkh1Qk1LMjZlOGVnZV9vd2lUZTdvdGNlY2M3eUFNSzNZc09hVEJZbmlSQl9TUDd2aVBxR3Q1UWV6TllXVTl4ZW9PUUVDaVBNOWJ1RDdqQkVfd1J4el9pa3hkRmZqbDlkUVJfUTJBT1p6MVRCdGZPMHNDU0Q5blhEMW9XZklBVC1nNHBBVko1VlhST2ptYmtZX0YtX1JDRXluMDI1RFdRRTlnYzBBT3F1QmhYVmU0OUQ3RkRqd3JYOU83Slp0cmR0d19FbDFEWVo2RjFRUHc4MVhxa3k1OTJydjFJTER6V1pkalVwcm1vZmJybW5xT0FhVkNJdlAwWEN3UmRFUG9zZzZMeHNSd19NMXRHRU5QZUR1cjdkQTJDbEJIeHF3Uy1LS3V3MFl6eXhDWkx4X2ZZWGNPOFJMbXl0UnNOcU9WT2NueEdXNmpZNFE0RVpPeExQd0NtS19WN1hFbXg0ZHVlZjJPeWd5MkRJUlJ6S01GemhfRzlPZmJ2bmV6RUVNc2ZEY0ljY0JJaDBMaGJwQXlRY2hfX3dSUWw3NXBUbE9BRmJ3d1BPYlhUZUJYLWpHZEY5TV9NZE90MHZxQmlOU2dfSXVQU1BvNWphMTRlcDNoeEtfSHRyQXJxOXNDQ2F2czhDMENycGpQLXktbjN2Q2hQZnZpanpQYXppa3VwUkNyWldua1YzaDl4bXk3SFF0dDVzMVNDSDRRUjc4eEh0TFJGTUhXQ2VpZTlZTUgyLVpzQ0Z3c1dsLWxLeEEuMEpIeENQa2k1RzZwR094Z1lyajk2UQ.K2vY3kKr1ugIzFnHS9UHUI7nur_G54N2Us3c-z82T0IY80Tw_PDhM5ybry4_w-y0dUwHYUDl5eNay2o5XfJjI6oa3gDNc43QAkTG3t86h4vPdnU7mbI3gKgV4QheR6OWhfMij5I36qS7nRtI0CD8lpQCTAaQLlpzKLGJCQrJBWd1NZrmAsEp8IbQ8wiBk6dOdGiRlbpBMJzc11mW1awEMJlv_JAhIOS5xXu1694b1PwfFjSaU5Eunu9DBSVMnGbdYwaqUPop2A7HWbSJwkOTv63sywaHU3QoyFX4IGpf1yPNKhQirW2TpvwleInlRO5qmcVJ13mRtibNsxk0NkqOqw
<MaintenanceResponse>
<version>2.3</version>
<timeStamp>050321102154</timeStamp>
<merchantID>JT01</merchantID>
<respCode>00</respCode>
<respReason></respReason>
<storeCardUniqueID>05032110215528444994</storeCardUniqueID>
<panBank>OCBC</panBank>
<panCountry>SG</panCountry>
<cardholderName>Terrance</cardholderName>
<cardholderEmail>[email protected]</cardholderEmail>
<panMasked>XXXXXXXXXXXX1111</panMasked>
</MaintenanceResponse>
curl --location --request POST 'https://demo2.2c2p.com/2C2PFrontend/PaymentAction/2.0/action' \
--header 'Content-Type: text/plain' \
--data-raw 'eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS51ekctcm41NUFrM1VPZzZtdFhnenZ5RmE3Y2NzVGlUMG5Gb2lYN1VlODEtdHVnZFczUldEX2FHRFNLSWppd1o0VzVEd2w1azJ3VjRDdWtkRmh2a2pfU0l2bHllQk9OOU1TdjcwVEtCUnE2UFZ5TmlUUm1GeFY5WHFwWGV4SThpSTVmN0VKd2RONnRzeUNEMjI5ekpDWE1kVDJXbXlCRUJ0VnZYeVVJV0twX2RxUGtlQTVxdFdNV3RFbmJpZkNtbENfY1EtOEJEZk5UUnY2SDRJMnltQmd5TmJaSFVjZzdXMTBHOVI2VnNSMjk4NXFhQk9TOTh2bWxKOE5ybVQ0dGVtSlJxeEw4S3lnMnhvQjFvWXA1UXhKajE1NkdPTzNFYjl0U1E4ZjBmNDNtTUJYY3JMVWxKMFVOVXFBQ3NnWXM2d3lKUWZscUlOc081WG9hVEhLcG1TV3cuT3djLThyQm1lbnhMbjFscy5zNXpEQTV0ODJoQkZpVVBMU2NvNVZpenRwRDZPV0xab2xIY2xsZFVXS1cteUE2dF9mTXdJS2Y1NXpqMTBvOXNxaTdTRU4yZ3BNbkh1Qk1LMjZlOGVnZV9vd2lUZTdvdGNlY2M3eUFNSzNZc09hVEJZbmlSQl9TUDd2aVBxR3Q1UWV6TllXVTl4ZW9PUUVDaVBNOWJ1RDdqQkVfd1J4el9pa3hkRmZqbDlkUVJfUTJBT1p6MVRCdGZPMHNDU0Q5blhEMW9XZklBVC1nNHBBVko1VlhST2ptYmtZX0YtX1JDRXluMDI1RFdRRTlnYzBBT3F1QmhYVmU0OUQ3RkRqd3JYOU83Slp0cmR0d19FbDFEWVo2RjFRUHc4MVhxa3k1OTJydjFJTER6V1pkalVwcm1vZmJybW5xT0FhVkNJdlAwWEN3UmRFUG9zZzZMeHNSd19NMXRHRU5QZUR1cjdkQTJDbEJIeHF3Uy1LS3V3MFl6eXhDWkx4X2ZZWGNPOFJMbXl0UnNOcU9WT2NueEdXNmpZNFE0RVpPeExQd0NtS19WN1hFbXg0ZHVlZjJPeWd5MkRJUlJ6S01GemhfRzlPZmJ2bmV6RUVNc2ZEY0ljY0JJaDBMaGJwQXlRY2hfX3dSUWw3NXBUbE9BRmJ3d1BPYlhUZUJYLWpHZEY5TV9NZE90MHZxQmlOU2dfSXVQU1BvNWphMTRlcDNoeEtfSHRyQXJxOXNDQ2F2czhDMENycGpQLXktbjN2Q2hQZnZpanpQYXppa3VwUkNyWldua1YzaDl4bXk3SFF0dDVzMVNDSDRRUjc4eEh0TFJGTUhXQ2VpZTlZTUgyLVpzQ0Z3c1dsLWxLeEEuMEpIeENQa2k1RzZwR094Z1lyajk2UQ.K2vY3kKr1ugIzFnHS9UHUI7nur_G54N2Us3c-z82T0IY80Tw_PDhM5ybry4_w-y0dUwHYUDl5eNay2o5XfJjI6oa3gDNc43QAkTG3t86h4vPdnU7mbI3gKgV4QheR6OWhfMij5I36qS7nRtI0CD8lpQCTAaQLlpzKLGJCQrJBWd1NZrmAsEp8IbQ8wiBk6dOdGiRlbpBMJzc11mW1awEMJlv_JAhIOS5xXu1694b1PwfFjSaU5Eunu9DBSVMnGbdYwaqUPop2A7HWbSJwkOTv63sywaHU3QoyFX4IGpf1yPNKhQirW2TpvwleInlRO5qmcVJ13mRtibNsxk0NkqOqw'
Update Card Token Request
To prepare an update card token request, refer to the guidelines below.
Provided Sample Code
The following sample code demonstrates how to prepare request data, generate the JWT token with key, and send the API request.
For the JWT token, you may also refer to the sample code here.
- To prepare the data payload for the update card token request, refer to the sample structure shown below. You may also check the API specifications here: Update Card Token Request Parameters
2.To generate encrypted request data, refer to this guide: Generate JWT Request with Keys
<MaintenanceRequest>
<version>2.3</version>
<timeStamp>050321132928</timeStamp>
<merchantID>JT01</merchantID>
<storeCardUniqueID>05032110215528444994</storeCardUniqueID>
<pan>4111111111111111</pan>
<panCurrency>702</panCurrency>
<panBank>OCBC Bank</panBank>
<panCountry>SG</panCountry>
<cardholderName>Terrance</cardholderName>
<cardholderEmail>[email protected]</cardholderEmail>
<panExpiry>0532</panExpiry>
<action>U</action>
</MaintenanceRequest>
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5uYU14QTJEY25HSUNVSVdLMHlaRVgtdGdwZlRkSGJsRWs5ZklCYWdOUkNaZzZLckh2M2tCMndBcXdnNWtjdDVUZnMwdnVhTkRpNWM3ajZ0MHJVTXBwb1k5aWZ4Wk5WWTloMkZYZjRNaENCeldOZHBZLXFpblBXMVJXV05rY2g1cjE5WV9uQjhiWFlhREF4SGRiY3UtZmJaZWZXOGZDT1BlNFNZS04tT2E2ZE5nTzJ2VVlCRGQ2VURLRG4yZHQ5TWNqejAzNGtjV0k1d0hfSmlJUUVvbkFCdWM5V0ZwQlBnYm9iU0U2VEg0VTZ0NHFOTmUyUmpDZjV2aHJZUnJoOEpmdWI0X1FuYXZlcDNmSm94NTBEeHhJUVVTWThxNGVyRWdfeWNzM1lEMjd2T29IY2gxamZJTFZVRFItZFE2ZmJlVWNTYU9kaWNMRzdCUnRobTF1blZQU3cuNlFXYVJXMTZ3bEhSckw1RS4weFV3V3Rrb0RteEFLU2Y1RVlEU2Vqamc4NHlmNDdfWHdmczA0RDFqRHNZcWc5bWU2X1FHczRhMzJGbFJ4cFIwT1piZVlCRUxYLVpUS3hBbjJlZTB1N01hUWY3dGFGSEtjM0c3cENKY25KR1dTUG56VGozRWs5WXBlQXh1UW9DanJxQmZPaHVMQTZwTHR1ZXlNX1dWVktFQ2h5dk9sMW9jYWdFcVYxdloyWVZGQ3dQWm5Ba0hLQXNTeUUxSlZTUHRmQ05uUXh0UWk4bW5lZUplRk9pcjlyd0ZRVHpLMURQVUlIVzZsQS1tenViZ0F5Y3NNendqQl84YTB5Z1ktOW9QSVFabUFER0p5NlZIYWdGdnB6dW5BVkhoc3pPYVBrdUkydENpVDNiT3l0MjQ1OENRQUxwM2hHMTNCVzhWblFLcGw3ZE9xUDEzTEZUWV9tLVJoOWNqNlA2dlo5cEVTZ2xOSlIwWlVzWHNUck83WXNSeTFLSFViVklHaExoWUhWSFYxTG1DbUlrQk84cWR2RVdYLVpqNXBPTVZOYXlHUjY3VEYtV1A2VXpfbGNvTWVKNjdjUjBPTUNRRVNQbHJjUmptODdnc1ZyLUVwNnlXUmQ4NVdwZlQ3cTZvV2hlbUxRNVZXMzBiSnFfZ01rZ1o0aF83bldjZWh1YUVzOXc0TGVUODlneHo0ZlVEWDJfOW05LThYUGJLSVJ5WnYtWXQzQkFTME9VYy1oWHRDTUowR081T19ROWJqNUluZlJCenh6ZzFkQUZvNk8yLTl0UjAyVnpvTlE5YzRBYXVxdW0tMlBHeHJrZmJlSmR3YWlVeDFkTVJWZ1dZSl9meHhVM1hmNE5nMFdGXzlPb25YY3hyNlhZT2dnTmtPMTcyS2cuTVN4SG8zRVpKNVpwSzVPaWVPUHl0Zw.HQSnwOduMZ12O1M3XaV2Z1BSIw6FZ1u2qHajHjiJWjMfIPlKocZDZgiXfKm-GID6iIsUXQ3Ccpg-ElZXDR_v4ABjRVHwV-5ot1UtXlyFTP3InTlMW_S0g7aEyeMXJJy0CsRXwADXdJoGaz2PykWRYnYUYxPIy4DTNi1Q2o6JRwrcbCL9EXbGqcUG1GlW288jsg6rvZFlQQYT_tz2wzLPhPPxvySWPrH-WUpootX_LCYl0A3lSr4iEkXb6FeuS2Ac6BSBBJDdn5d4TEERgX9XmiTpUJXb7H4Xe2LknvqRClHrAj6DH175TzoZu98kWhN0LWrPHoBu0YQTc_7sSx4vFw
- To send the encrypted request via API, refer to the sample request below.
curl --location --request POST 'https://demo2.2c2p.com/2C2PFrontend/PaymentAction/2.0/action' \
--header 'Content-Type: text/plain' \
--data-raw 'eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5uYU14QTJEY25HSUNVSVdLMHlaRVgtdGdwZlRkSGJsRWs5ZklCYWdOUkNaZzZLckh2M2tCMndBcXdnNWtjdDVUZnMwdnVhTkRpNWM3ajZ0MHJVTXBwb1k5aWZ4Wk5WWTloMkZYZjRNaENCeldOZHBZLXFpblBXMVJXV05rY2g1cjE5WV9uQjhiWFlhREF4SGRiY3UtZmJaZWZXOGZDT1BlNFNZS04tT2E2ZE5nTzJ2VVlCRGQ2VURLRG4yZHQ5TWNqejAzNGtjV0k1d0hfSmlJUUVvbkFCdWM5V0ZwQlBnYm9iU0U2VEg0VTZ0NHFOTmUyUmpDZjV2aHJZUnJoOEpmdWI0X1FuYXZlcDNmSm94NTBEeHhJUVVTWThxNGVyRWdfeWNzM1lEMjd2T29IY2gxamZJTFZVRFItZFE2ZmJlVWNTYU9kaWNMRzdCUnRobTF1blZQU3cuNlFXYVJXMTZ3bEhSckw1RS4weFV3V3Rrb0RteEFLU2Y1RVlEU2Vqamc4NHlmNDdfWHdmczA0RDFqRHNZcWc5bWU2X1FHczRhMzJGbFJ4cFIwT1piZVlCRUxYLVpUS3hBbjJlZTB1N01hUWY3dGFGSEtjM0c3cENKY25KR1dTUG56VGozRWs5WXBlQXh1UW9DanJxQmZPaHVMQTZwTHR1ZXlNX1dWVktFQ2h5dk9sMW9jYWdFcVYxdloyWVZGQ3dQWm5Ba0hLQXNTeUUxSlZTUHRmQ05uUXh0UWk4bW5lZUplRk9pcjlyd0ZRVHpLMURQVUlIVzZsQS1tenViZ0F5Y3NNendqQl84YTB5Z1ktOW9QSVFabUFER0p5NlZIYWdGdnB6dW5BVkhoc3pPYVBrdUkydENpVDNiT3l0MjQ1OENRQUxwM2hHMTNCVzhWblFLcGw3ZE9xUDEzTEZUWV9tLVJoOWNqNlA2dlo5cEVTZ2xOSlIwWlVzWHNUck83WXNSeTFLSFViVklHaExoWUhWSFYxTG1DbUlrQk84cWR2RVdYLVpqNXBPTVZOYXlHUjY3VEYtV1A2VXpfbGNvTWVKNjdjUjBPTUNRRVNQbHJjUmptODdnc1ZyLUVwNnlXUmQ4NVdwZlQ3cTZvV2hlbUxRNVZXMzBiSnFfZ01rZ1o0aF83bldjZWh1YUVzOXc0TGVUODlneHo0ZlVEWDJfOW05LThYUGJLSVJ5WnYtWXQzQkFTME9VYy1oWHRDTUowR081T19ROWJqNUluZlJCenh6ZzFkQUZvNk8yLTl0UjAyVnpvTlE5YzRBYXVxdW0tMlBHeHJrZmJlSmR3YWlVeDFkTVJWZ1dZSl9meHhVM1hmNE5nMFdGXzlPb25YY3hyNlhZT2dnTmtPMTcyS2cuTVN4SG8zRVpKNVpwSzVPaWVPUHl0Zw.HQSnwOduMZ12O1M3XaV2Z1BSIw6FZ1u2qHajHjiJWjMfIPlKocZDZgiXfKm-GID6iIsUXQ3Ccpg-ElZXDR_v4ABjRVHwV-5ot1UtXlyFTP3InTlMW_S0g7aEyeMXJJy0CsRXwADXdJoGaz2PykWRYnYUYxPIy4DTNi1Q2o6JRwrcbCL9EXbGqcUG1GlW288jsg6rvZFlQQYT_tz2wzLPhPPxvySWPrH-WUpootX_LCYl0A3lSr4iEkXb6FeuS2Ac6BSBBJDdn5d4TEERgX9XmiTpUJXb7H4Xe2LknvqRClHrAj6DH175TzoZu98kWhN0LWrPHoBu0YQTc_7sSx4vFw'
Update Card Token Response
To receive and process update card token request responses, refer to the sample code below.
Provided Sample Code
The following sample code demonstrates how to receive response data and decrypt the JWT token with key.
For decrypting the JWT token, you may also refer to the sample code here.
-
Following an update card token request, the API will return encrypted response data. Refer to the sample encrypted response below.
-
To decrypt the response, refer to: Process JWT Request with Keys
-
Refer to the sample response structure below. You may also check the API specifications here: Update Card Token Response Parameters
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5uYU14QTJEY25HSUNVSVdLMHlaRVgtdGdwZlRkSGJsRWs5ZklCYWdOUkNaZzZLckh2M2tCMndBcXdnNWtjdDVUZnMwdnVhTkRpNWM3ajZ0MHJVTXBwb1k5aWZ4Wk5WWTloMkZYZjRNaENCeldOZHBZLXFpblBXMVJXV05rY2g1cjE5WV9uQjhiWFlhREF4SGRiY3UtZmJaZWZXOGZDT1BlNFNZS04tT2E2ZE5nTzJ2VVlCRGQ2VURLRG4yZHQ5TWNqejAzNGtjV0k1d0hfSmlJUUVvbkFCdWM5V0ZwQlBnYm9iU0U2VEg0VTZ0NHFOTmUyUmpDZjV2aHJZUnJoOEpmdWI0X1FuYXZlcDNmSm94NTBEeHhJUVVTWThxNGVyRWdfeWNzM1lEMjd2T29IY2gxamZJTFZVRFItZFE2ZmJlVWNTYU9kaWNMRzdCUnRobTF1blZQU3cuNlFXYVJXMTZ3bEhSckw1RS4weFV3V3Rrb0RteEFLU2Y1RVlEU2Vqamc4NHlmNDdfWHdmczA0RDFqRHNZcWc5bWU2X1FHczRhMzJGbFJ4cFIwT1piZVlCRUxYLVpUS3hBbjJlZTB1N01hUWY3dGFGSEtjM0c3cENKY25KR1dTUG56VGozRWs5WXBlQXh1UW9DanJxQmZPaHVMQTZwTHR1ZXlNX1dWVktFQ2h5dk9sMW9jYWdFcVYxdloyWVZGQ3dQWm5Ba0hLQXNTeUUxSlZTUHRmQ05uUXh0UWk4bW5lZUplRk9pcjlyd0ZRVHpLMURQVUlIVzZsQS1tenViZ0F5Y3NNendqQl84YTB5Z1ktOW9QSVFabUFER0p5NlZIYWdGdnB6dW5BVkhoc3pPYVBrdUkydENpVDNiT3l0MjQ1OENRQUxwM2hHMTNCVzhWblFLcGw3ZE9xUDEzTEZUWV9tLVJoOWNqNlA2dlo5cEVTZ2xOSlIwWlVzWHNUck83WXNSeTFLSFViVklHaExoWUhWSFYxTG1DbUlrQk84cWR2RVdYLVpqNXBPTVZOYXlHUjY3VEYtV1A2VXpfbGNvTWVKNjdjUjBPTUNRRVNQbHJjUmptODdnc1ZyLUVwNnlXUmQ4NVdwZlQ3cTZvV2hlbUxRNVZXMzBiSnFfZ01rZ1o0aF83bldjZWh1YUVzOXc0TGVUODlneHo0ZlVEWDJfOW05LThYUGJLSVJ5WnYtWXQzQkFTME9VYy1oWHRDTUowR081T19ROWJqNUluZlJCenh6ZzFkQUZvNk8yLTl0UjAyVnpvTlE5YzRBYXVxdW0tMlBHeHJrZmJlSmR3YWlVeDFkTVJWZ1dZSl9meHhVM1hmNE5nMFdGXzlPb25YY3hyNlhZT2dnTmtPMTcyS2cuTVN4SG8zRVpKNVpwSzVPaWVPUHl0Zw.HQSnwOduMZ12O1M3XaV2Z1BSIw6FZ1u2qHajHjiJWjMfIPlKocZDZgiXfKm-GID6iIsUXQ3Ccpg-ElZXDR_v4ABjRVHwV-5ot1UtXlyFTP3InTlMW_S0g7aEyeMXJJy0CsRXwADXdJoGaz2PykWRYnYUYxPIy4DTNi1Q2o6JRwrcbCL9EXbGqcUG1GlW288jsg6rvZFlQQYT_tz2wzLPhPPxvySWPrH-WUpootX_LCYl0A3lSr4iEkXb6FeuS2Ac6BSBBJDdn5d4TEERgX9XmiTpUJXb7H4Xe2LknvqRClHrAj6DH175TzoZu98kWhN0LWrPHoBu0YQTc_7sSx4vFw
<MaintenanceResponse>
<version>2.3</version>
<timeStamp>050321155316</timeStamp>
<merchantID>JT01</merchantID>
<respCode>00</respCode>
<respReason></respReason>
<storeCardUniqueID>05032110215528444994</storeCardUniqueID>
<panBank></panBank>
<panCountry></panCountry>
<cardholderName></cardholderName>
<cardholderEmail></cardholderEmail>
<panMasked></panMasked>
</MaintenanceResponse>
curl --location --request POST 'https://demo2.2c2p.com/2C2PFrontend/PaymentAction/2.0/action' \
--header 'Content-Type: text/plain' \
--data-raw 'eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5uYU14QTJEY25HSUNVSVdLMHlaRVgtdGdwZlRkSGJsRWs5ZklCYWdOUkNaZzZLckh2M2tCMndBcXdnNWtjdDVUZnMwdnVhTkRpNWM3ajZ0MHJVTXBwb1k5aWZ4Wk5WWTloMkZYZjRNaENCeldOZHBZLXFpblBXMVJXV05rY2g1cjE5WV9uQjhiWFlhREF4SGRiY3UtZmJaZWZXOGZDT1BlNFNZS04tT2E2ZE5nTzJ2VVlCRGQ2VURLRG4yZHQ5TWNqejAzNGtjV0k1d0hfSmlJUUVvbkFCdWM5V0ZwQlBnYm9iU0U2VEg0VTZ0NHFOTmUyUmpDZjV2aHJZUnJoOEpmdWI0X1FuYXZlcDNmSm94NTBEeHhJUVVTWThxNGVyRWdfeWNzM1lEMjd2T29IY2gxamZJTFZVRFItZFE2ZmJlVWNTYU9kaWNMRzdCUnRobTF1blZQU3cuNlFXYVJXMTZ3bEhSckw1RS4weFV3V3Rrb0RteEFLU2Y1RVlEU2Vqamc4NHlmNDdfWHdmczA0RDFqRHNZcWc5bWU2X1FHczRhMzJGbFJ4cFIwT1piZVlCRUxYLVpUS3hBbjJlZTB1N01hUWY3dGFGSEtjM0c3cENKY25KR1dTUG56VGozRWs5WXBlQXh1UW9DanJxQmZPaHVMQTZwTHR1ZXlNX1dWVktFQ2h5dk9sMW9jYWdFcVYxdloyWVZGQ3dQWm5Ba0hLQXNTeUUxSlZTUHRmQ05uUXh0UWk4bW5lZUplRk9pcjlyd0ZRVHpLMURQVUlIVzZsQS1tenViZ0F5Y3NNendqQl84YTB5Z1ktOW9QSVFabUFER0p5NlZIYWdGdnB6dW5BVkhoc3pPYVBrdUkydENpVDNiT3l0MjQ1OENRQUxwM2hHMTNCVzhWblFLcGw3ZE9xUDEzTEZUWV9tLVJoOWNqNlA2dlo5cEVTZ2xOSlIwWlVzWHNUck83WXNSeTFLSFViVklHaExoWUhWSFYxTG1DbUlrQk84cWR2RVdYLVpqNXBPTVZOYXlHUjY3VEYtV1A2VXpfbGNvTWVKNjdjUjBPTUNRRVNQbHJjUmptODdnc1ZyLUVwNnlXUmQ4NVdwZlQ3cTZvV2hlbUxRNVZXMzBiSnFfZ01rZ1o0aF83bldjZWh1YUVzOXc0TGVUODlneHo0ZlVEWDJfOW05LThYUGJLSVJ5WnYtWXQzQkFTME9VYy1oWHRDTUowR081T19ROWJqNUluZlJCenh6ZzFkQUZvNk8yLTl0UjAyVnpvTlE5YzRBYXVxdW0tMlBHeHJrZmJlSmR3YWlVeDFkTVJWZ1dZSl9meHhVM1hmNE5nMFdGXzlPb25YY3hyNlhZT2dnTmtPMTcyS2cuTVN4SG8zRVpKNVpwSzVPaWVPUHl0Zw.HQSnwOduMZ12O1M3XaV2Z1BSIw6FZ1u2qHajHjiJWjMfIPlKocZDZgiXfKm-GID6iIsUXQ3Ccpg-ElZXDR_v4ABjRVHwV-5ot1UtXlyFTP3InTlMW_S0g7aEyeMXJJy0CsRXwADXdJoGaz2PykWRYnYUYxPIy4DTNi1Q2o6JRwrcbCL9EXbGqcUG1GlW288jsg6rvZFlQQYT_tz2wzLPhPPxvySWPrH-WUpootX_LCYl0A3lSr4iEkXb6FeuS2Ac6BSBBJDdn5d4TEERgX9XmiTpUJXb7H4Xe2LknvqRClHrAj6DH175TzoZu98kWhN0LWrPHoBu0YQTc_7sSx4vFw'
Delete Card Token Request
To prepare a delete card token request, refer to the guidelines below.
Provided Sample Code
The following sample code demonstrates how to prepare request data, generate the JWT token with key, and send the API request.
For the JWT token, you may also refer to the sample code here.
- To prepare the data payload for the delete card token request, refer to the sample structure shown below. You may also check the API specifications here: Delete Card Token Request Parameters
2.To generate encrypted request data, refer to this guide: Generate JWT Request with Keys
<MaintenanceRequest>
<version>2.3</version>
<timeStamp>050321155316</timeStamp>
<merchantID>JT01</merchantID>
<storeCardUniqueID>05032110215528444994</storeCardUniqueID>
<action>D</action>
</MaintenanceRequest>
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5lOTFaSUVpM0xfZkE2dGtaRDNxYURQcE5MRHBwNHpCQTlCQ3o3eXhueGY2MVVlaXlVa3djNHVvQ20xMHpBODNSenMwQjV3NEVzMVQ5R05hLXlrYTJWdWVhV21zQm5HbGxxUVQtRnFxMlR3cWFvU1JVUm1ocm82WWV2MVo0NGpsVzNwajZZTDRiZkQ0dlNjOVV6UEc3aWNUMzBpdzlxcjZfdy1YVXBfMFkxNEpzSHNKTzlGM1E1NXROY3lPeGV4d1Q3WXYxemxBNjFJUXN3SGJTVWdRM0ZTR18tZVU4QUMzRkFzSDE2OUM2bThPNWJvb2czWkdheFhhMktMS3pQUzlmRGdGbFFQaUJaM1lmdVF1bTl2Q1JLcGVla1FDamxNLXNGdUxNYW1LSUNOZGp0NFg1M21kenp0Q25kNEFZZ3AwcVZ3ZTR5dlR3TGUzVDF2WjFHQWU0d1EuMTJ2aHVBdFdxNjFYUUVYay4zTWhrOXNiZFBaNjFFalRIRU5LQkRBQUJfRjdDdENfTHhHVXlhMm00ZnZEQ1FuMzdZanZIbVN4YmpBcmRZUWxIcFFfSERKcGhZVmtyVTlrWlJ0bHVpeFVpU2EwZm83R1dxaTVzZkM5ZWRSSkxtRVFiVWszMjFjQV9EREFuRWQ1YWpla3BWZ2lsZXVSaC1IS1hPNEdVSkRzWWt6MlY3Ui1GNkV0ZWtkZWhId1kxOUdqdXh6Ti1GakkwbUFOT0hYWkVwRmdkYTNvamRNVEh1amJqTE9fT1V5MmN4UE42NFhZYjhRaUtuODJ4WlNlTnJOMXM4UjYtTkZuTVNmWjFHMWRqMzlEa2tKN3hfZ2pGT3lyb1lRTkZyQ2p6eHNWcWxDLTRqVEFqbXJKSngwc3o1UlgyWGVTazdiSlJsZ29mRU9lck1IZ2pSWEEtYV9MVGRxakRYbnk2Yk1mc1RuVEZoaEkzR0M2ZlRISXp1UzAtM0Z6Y1FvTXhaVldfRjdWYXlkSWF4V29LanFkaGxXcmxrcjlzbG1wbmpvU3FRZDBtN09WRUprUmF0V1NpYmt2LWRFLXMta2MtaWhzUjNQNXB5R1VDVF93cmF3M2hUSmxWMFEtUzlYSlhMQjY0R1VLYjhEM09McWJrZzMzbUtBWmx3VDlHWm9WdTZaUnNGbGktMW1WSmpSUXVWNzFLVEc5eTVkR2o3bFNUZzBmLW41ZlEwWFF1UXVDSEVFQ0lvLUhVcXhHamozRmlnQVctMWlzbVhtU1lzRlBMUGotVmh6eVI2WlBTc2ViWTRneWxlZkV5MkRDUi5RQXdVYzNoMnBLRzlUR2R4NHRBUzN3.p38_26eHzamMPiwdD_LBeLhldHis8u9XsjvuHs9ukGeQBrWsHVn3ze4DnQZYS-X-84sHZPvVqJgtMUUiQDjROkDbKtwmpAWHlD4Fw47q0q0CyZWqpzziin6QXoNqhDap0J1SyhBwBP_ZZ_UH8E1cVF0z1clhK8qURA3GkalY-qiHdGXrfoqQfAdX5N4znusVGOeyDn0aq6c9Efdm4r0ISxmWu6xwoAwUYDL_MUtdcUnGG86F4QnK_BitvUrPEUi8DCfJfH3how8LwIybOmx8GhOxWEMMRAQLbS0y0SXu4i6zxdM7DqxcwicbGnSUDBx51l65gYXdsV2-swGM0rN6Ug
- To send the encrypted request via API, refer to the sample request below.
curl --location --request POST 'https://demo2.2c2p.com/2C2PFrontend/PaymentAction/2.0/action' \
--header 'Content-Type: text/plain' \
--data-raw 'eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5lOTFaSUVpM0xfZkE2dGtaRDNxYURQcE5MRHBwNHpCQTlCQ3o3eXhueGY2MVVlaXlVa3djNHVvQ20xMHpBODNSenMwQjV3NEVzMVQ5R05hLXlrYTJWdWVhV21zQm5HbGxxUVQtRnFxMlR3cWFvU1JVUm1ocm82WWV2MVo0NGpsVzNwajZZTDRiZkQ0dlNjOVV6UEc3aWNUMzBpdzlxcjZfdy1YVXBfMFkxNEpzSHNKTzlGM1E1NXROY3lPeGV4d1Q3WXYxemxBNjFJUXN3SGJTVWdRM0ZTR18tZVU4QUMzRkFzSDE2OUM2bThPNWJvb2czWkdheFhhMktMS3pQUzlmRGdGbFFQaUJaM1lmdVF1bTl2Q1JLcGVla1FDamxNLXNGdUxNYW1LSUNOZGp0NFg1M21kenp0Q25kNEFZZ3AwcVZ3ZTR5dlR3TGUzVDF2WjFHQWU0d1EuMTJ2aHVBdFdxNjFYUUVYay4zTWhrOXNiZFBaNjFFalRIRU5LQkRBQUJfRjdDdENfTHhHVXlhMm00ZnZEQ1FuMzdZanZIbVN4YmpBcmRZUWxIcFFfSERKcGhZVmtyVTlrWlJ0bHVpeFVpU2EwZm83R1dxaTVzZkM5ZWRSSkxtRVFiVWszMjFjQV9EREFuRWQ1YWpla3BWZ2lsZXVSaC1IS1hPNEdVSkRzWWt6MlY3Ui1GNkV0ZWtkZWhId1kxOUdqdXh6Ti1GakkwbUFOT0hYWkVwRmdkYTNvamRNVEh1amJqTE9fT1V5MmN4UE42NFhZYjhRaUtuODJ4WlNlTnJOMXM4UjYtTkZuTVNmWjFHMWRqMzlEa2tKN3hfZ2pGT3lyb1lRTkZyQ2p6eHNWcWxDLTRqVEFqbXJKSngwc3o1UlgyWGVTazdiSlJsZ29mRU9lck1IZ2pSWEEtYV9MVGRxakRYbnk2Yk1mc1RuVEZoaEkzR0M2ZlRISXp1UzAtM0Z6Y1FvTXhaVldfRjdWYXlkSWF4V29LanFkaGxXcmxrcjlzbG1wbmpvU3FRZDBtN09WRUprUmF0V1NpYmt2LWRFLXMta2MtaWhzUjNQNXB5R1VDVF93cmF3M2hUSmxWMFEtUzlYSlhMQjY0R1VLYjhEM09McWJrZzMzbUtBWmx3VDlHWm9WdTZaUnNGbGktMW1WSmpSUXVWNzFLVEc5eTVkR2o3bFNUZzBmLW41ZlEwWFF1UXVDSEVFQ0lvLUhVcXhHamozRmlnQVctMWlzbVhtU1lzRlBMUGotVmh6eVI2WlBTc2ViWTRneWxlZkV5MkRDUi5RQXdVYzNoMnBLRzlUR2R4NHRBUzN3.p38_26eHzamMPiwdD_LBeLhldHis8u9XsjvuHs9ukGeQBrWsHVn3ze4DnQZYS-X-84sHZPvVqJgtMUUiQDjROkDbKtwmpAWHlD4Fw47q0q0CyZWqpzziin6QXoNqhDap0J1SyhBwBP_ZZ_UH8E1cVF0z1clhK8qURA3GkalY-qiHdGXrfoqQfAdX5N4znusVGOeyDn0aq6c9Efdm4r0ISxmWu6xwoAwUYDL_MUtdcUnGG86F4QnK_BitvUrPEUi8DCfJfH3how8LwIybOmx8GhOxWEMMRAQLbS0y0SXu4i6zxdM7DqxcwicbGnSUDBx51l65gYXdsV2-swGM0rN6Ug'
Delete Card Token Response
To receive and process delete card token request responses, refer to the sample code below.
Provided Sample Code
The following sample code demonstrates how to receive response data and decrypt the JWT token with key.
For decrypting the JWT token, you may also refer to the sample code here.
-
Following a delete card token request, the API will return encrypted response data. Refer to the sample encrypted response below.
-
To decrypt the response, refer to: Process JWT Request with Keys
-
Refer to the sample response structure below. You may also check the API specifications here: Delete Card Token Response Parameters
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS56cjRnaVVNUEZGbmJwYl90RklqX1BGbjBoRGhvOWY5N2ZqYXFkbTZmMGMwRk5xd2k1QXdMX1ZMVDl6U0hiQmpySkF3ZmtodGI2WE5wRkliaTdneE9SbWI4cmdRRElhNlNYd2hEWXhra05lSFRVNXZ5YUJ2Y0VhNkFobTNBN1V3RU4wT1hqUmhVUjAyQV9TS09hTVhERHNVelJrQkt2c2VseUZ4dmI2OU92NzVkSVVITlVENHhlQjlsZnowTVRLcGFyd2V3VElLcFVwTnBiRHZ0ZU1HdmVRYzZGQWxqYmJNTlUtNnA5QjU5WmVVSndVM3FHSUFaYnRNX08zRlhCWkF2b0lRVmUwR3VKeU5CbmVMRnIxelVhZTVPdmoyMVZmSWNqZWo1VUc4cVZHTm9YWFdnZGtFNUlqdHVqNUFCc09OTlNYQ3l0cHIwV19QU3JFU0otSU9paVEueHN6a09rTkhQMEJHa0V2Zi5YYUlyZHVjV2FrYVAtN29FeXBMWTBxaHpaVjU5LW1YNWhHc2lRUHFiZDVNUXBRT1RBNU9XX25yTFJISWlkZWRoM1ByWkhqbXpqWnM4aFdkeFVRYy1Ta1Q2aW5QRDVoSkRKYWgtTnFrWTNaWXF1VGtVYmk3emJ3YWxRMWtrSUNrc3haOUJINGRhZDlvZi14bmlnX0UweXd1VlRiT05rN213OFA3QkRRWVA4WmN4OTNFaEhTdGo2dXk3M0hBLXIyZ1E3Z3FCZExPZDNRMm1vVERkTU8yOEZyVVd2WlJvdXZRS0VHSmlJT0ZuaUVMT0R5TTNhdWtFcWJVbVhyS2VsRWNDcmVTWko2azhWSW5zbndKTF9jbmxUMmFmWWd6cERKUTVqcklhNjd2UFdKRFZIY3lqTFhnMTNSeFlRMF9wcjVIVGRFeVJGc0NjM1dveDFlSFJ1S19fazBQYTR3M3ZheUZkbWw3cDNKUzNYanYxaU8tRG1LYndKb0NOYk41NXBtLUJ1eEZybnBzVzVaR0FrSWx3VzBERS1Qc1V0M0t0cWhqSHAyZ3lqbTBKRjk5Yk8yNmh3V19Kbk84RkNKMS1OZ1F4SzVjRW5vOHFhNzdnU05tX0NZODhKUW5HNU9PRmZ0d0ZoVzhVWVo2LVlvc3RkWkxwdkcwM1V5TW10Nm8tOVZVYmFIcHRYNm50U19CYVZsNTFuTTFZaDdDTHlTc2RvVUdPNmN1bGxsYUhCUGhneUprbV9DVU5ZX1p0SGNDS094RlhIYUUuMUE5c2RRSnNHZ0NtY1JyYnptdUsxUQ.AegSdhjlDo-isVBpuf3y_STRo4y2x8icEwU899nRlm3n4nCZKQEmU88QaejRcbMqF2hg9D8hBv_OVzXm1hpf6KKW9pIq_LdPmpxx7v183qocTdx6gKkG2byCf_GSG-RtwPmoZ2cYbpURQ1ki4ZDaqVsMPhJ45UQdhfCq3UHTEbWU3lRzBf8RvJlcGZTzmXqCMTmTVi2u4bkBoHAT7N-tT9E5sSajtT_0aVdhFlEyyl-ycin6Ir424AK0EQGmJwrhicC23UrFEMqRp0Y9em4kleazt_fn-gngBWDjCOVoEqn6ks6ahAVi86mNQf2wrjabosXoCOAdiG67-kVrNCYq9A
<MaintenanceResponse>
<version>2.3</version>
<timeStamp>050321155316</timeStamp>
<merchantID>JT01</merchantID>
<respCode>00</respCode>
<respReason></respReason>
<storeCardUniqueID>05032110215528444994</storeCardUniqueID>
<panBank></panBank>
<panCountry></panCountry>
<cardholderName></cardholderName>
<cardholderEmail></cardholderEmail>
<panMasked></panMasked>
</MaintenanceResponse>
curl --location --request POST 'https://demo2.2c2p.com/2C2PFrontend/PaymentAction/2.0/action' \
--header 'Content-Type: text/plain' \
--data-raw 'eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS56cjRnaVVNUEZGbmJwYl90RklqX1BGbjBoRGhvOWY5N2ZqYXFkbTZmMGMwRk5xd2k1QXdMX1ZMVDl6U0hiQmpySkF3ZmtodGI2WE5wRkliaTdneE9SbWI4cmdRRElhNlNYd2hEWXhra05lSFRVNXZ5YUJ2Y0VhNkFobTNBN1V3RU4wT1hqUmhVUjAyQV9TS09hTVhERHNVelJrQkt2c2VseUZ4dmI2OU92NzVkSVVITlVENHhlQjlsZnowTVRLcGFyd2V3VElLcFVwTnBiRHZ0ZU1HdmVRYzZGQWxqYmJNTlUtNnA5QjU5WmVVSndVM3FHSUFaYnRNX08zRlhCWkF2b0lRVmUwR3VKeU5CbmVMRnIxelVhZTVPdmoyMVZmSWNqZWo1VUc4cVZHTm9YWFdnZGtFNUlqdHVqNUFCc09OTlNYQ3l0cHIwV19QU3JFU0otSU9paVEueHN6a09rTkhQMEJHa0V2Zi5YYUlyZHVjV2FrYVAtN29FeXBMWTBxaHpaVjU5LW1YNWhHc2lRUHFiZDVNUXBRT1RBNU9XX25yTFJISWlkZWRoM1ByWkhqbXpqWnM4aFdkeFVRYy1Ta1Q2aW5QRDVoSkRKYWgtTnFrWTNaWXF1VGtVYmk3emJ3YWxRMWtrSUNrc3haOUJINGRhZDlvZi14bmlnX0UweXd1VlRiT05rN213OFA3QkRRWVA4WmN4OTNFaEhTdGo2dXk3M0hBLXIyZ1E3Z3FCZExPZDNRMm1vVERkTU8yOEZyVVd2WlJvdXZRS0VHSmlJT0ZuaUVMT0R5TTNhdWtFcWJVbVhyS2VsRWNDcmVTWko2azhWSW5zbndKTF9jbmxUMmFmWWd6cERKUTVqcklhNjd2UFdKRFZIY3lqTFhnMTNSeFlRMF9wcjVIVGRFeVJGc0NjM1dveDFlSFJ1S19fazBQYTR3M3ZheUZkbWw3cDNKUzNYanYxaU8tRG1LYndKb0NOYk41NXBtLUJ1eEZybnBzVzVaR0FrSWx3VzBERS1Qc1V0M0t0cWhqSHAyZ3lqbTBKRjk5Yk8yNmh3V19Kbk84RkNKMS1OZ1F4SzVjRW5vOHFhNzdnU05tX0NZODhKUW5HNU9PRmZ0d0ZoVzhVWVo2LVlvc3RkWkxwdkcwM1V5TW10Nm8tOVZVYmFIcHRYNm50U19CYVZsNTFuTTFZaDdDTHlTc2RvVUdPNmN1bGxsYUhCUGhneUprbV9DVU5ZX1p0SGNDS094RlhIYUUuMUE5c2RRSnNHZ0NtY1JyYnptdUsxUQ.AegSdhjlDo-isVBpuf3y_STRo4y2x8icEwU899nRlm3n4nCZKQEmU88QaejRcbMqF2hg9D8hBv_OVzXm1hpf6KKW9pIq_LdPmpxx7v183qocTdx6gKkG2byCf_GSG-RtwPmoZ2cYbpURQ1ki4ZDaqVsMPhJ45UQdhfCq3UHTEbWU3lRzBf8RvJlcGZTzmXqCMTmTVi2u4bkBoHAT7N-tT9E5sSajtT_0aVdhFlEyyl-ycin6Ir424AK0EQGmJwrhicC23UrFEMqRp0Y9em4kleazt_fn-gngBWDjCOVoEqn6ks6ahAVi86mNQf2wrjabosXoCOAdiG67-kVrNCYq9A'
Card Token Inquiry Request
To prepare a card token inquiry request, refer to the guidelines below.
Provided Sample Code
The following sample code demonstrates how to prepare request data, generate the JWT token with key, and send the API request.
For the JWT token, you may also refer to the sample code here.
-
To prepare the data payload for the card token inquiry request, refer to the sample structure shown below. You may also check the API specifications here: Card Token Inquiry Request Parameters
-
To generate encrypted request data, refer to this guide: Generate JWT Request with Keys
<MaintenanceRequest>
<version>2.3</version>
<timeStamp>050321135505</timeStamp>
<merchantID>JT01</merchantID>
<storeCardUniqueID>05032110215528444994</storeCardUniqueID>
<action>I</action>
</MaintenanceRequest>
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5zT3VITzhRMGV0YmRFZ3JWYUNiWEZOU3Z2TlJEUHpDS2dReWhxY3paYzlRNEdtZkxuTmFpeE1uUmEzdGFkN2NGdFBaeUtpVHVFN3RIZTdOWUtKYlV6Y0h3blJDTW1QaWVFN05DbFRCZ2U4N21JNWdSM25NWDFsV3E5U0JHUG9WWDhkMjlubW1wVmRWcW8xYXJwTE9yUktZc29kV09HOGx3eU8xbzllTlhqUDBOOVlWWWxZcWI1ejJMa0hQTVhTeGlOUjJFNDk1a2Jhb3ZhZ0daN0JwM0gtNjAzUzB3aVRGa1kzdXRWQWlCRnF3X3RmNmlBa1l0MFZlcVBYdmRzMzBtMEEzQ3BHXzN0cVFzREVzY2daZWZIQ3VVUlpsbC13YVhEYjBERmwzMWdaWVh0QTd5Ul9YdFJUVExEcE51ekQ1MVVxVnRiV2I0dzJUamlJUEJBWDVtd1EuZzZlQlNtX1lGNjg5M1loOS5IZXBtUEl3X3hWRzBLeXpSV0daUDZNcnRVODViXy1lV21RaThfZmZ3TEhac0V0V1o0RFIyVFRCYXdocGJUbEVRNk9OYjdjcUFPcDVEbVNHeEpKSVVFR05xeFR1Yk9PQi1LQ1RLWm82cHJiMmNyaHJRSkdyQ1RzNFRNWVRyTVZDU0thNE85NlNyVUcwQWRiVjBpSVlPS1RnTE9tOWlQcWFYTE16T2h6ODlVeTY4SXlnai1nZ1VGTjVVX0dZZ0FlMGJ5emVsYmo2ZUp1UVVLd0dycXRBcDV5U2VsZDRpZkJlcjZHLXU0Y2RfYnhhRDlWZ29CN3NtSTh4akxOdFJhYzVKTnJUY2d0a3ZSMUlZUXZ3d1RCZmgwTmg5eGtQb3N0X3ZDMmhsdHFLd2hnZjBjVnpYbm9HODIzQlo2ZEhuY2N1V21tWEstZHlCMmRDM0o4TjRRbVJ1TG53VXpHNnV6MWc3SjExa1lmVTZhckhzemc3YjlXalQzSUMtcDJKbTJ6SU5uTHF4WkJxcUtHd193QVF1LVBQNEk4VnRoN3NiVmFuVFpJalBRRHdxV214NHNsUzZVRHgwSlZzT2RoR2Y0STBKSlRuYVRmNmVRa0pKYmVweUtkUW43aFF2YVhzVlJhVHhUdnZHcWo4NWEzaEw0M3BITVVRUDdOUmxETU5HczJRdFNwWlNxdUhTTVdfWTlsaHhZLVFXQkRBLVF1SFN1dzdHM0tkRG9qR1B5WmpxVnVlaFA5Qy1QZndOYnBYVE5aSWFsTlo2Wjl0UFhWMC5ZUnlPM1IzaXJ4V0xac2Zya2kzNjJ3.mWVBMeSrDmKhvqpdriOhnPP_rDesMzLYvVQNO4ILQxbz3S10oAqnP5HPGXS1BNvE2jGfpt_mjTaaDEsPv04jAp89BxFFKuVyyrBnisx44Mkihr2H0fnwQq6urrDrkLI9C8i1bpTbDrMkx1_EmVyWWawvOBOzkwvEN0lef3f91-MYaybTTYkIk5fyyb4jvhxwCbdjG1WmWHmkNmw-ZW4UUS6jKMmj1m5OYUpQP9MQi6gMOyeEbbRKcsBiVzgyfDGMzhNIC1CPDPInT6leX2ARP9dIU1HCY1rORjwL_lz6ZjHW3i4oAoV8TMr_LFJhzDy5Cz3u60LPIESQSweY8DggrQ
- To send the encrypted request via API, refer to the sample request below.
curl --location --request POST 'https://demo2.2c2p.com/2C2PFrontend/PaymentAction/2.0/action' \
--header 'Content-Type: text/plain' \
--data-raw 'eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5zT3VITzhRMGV0YmRFZ3JWYUNiWEZOU3Z2TlJEUHpDS2dReWhxY3paYzlRNEdtZkxuTmFpeE1uUmEzdGFkN2NGdFBaeUtpVHVFN3RIZTdOWUtKYlV6Y0h3blJDTW1QaWVFN05DbFRCZ2U4N21JNWdSM25NWDFsV3E5U0JHUG9WWDhkMjlubW1wVmRWcW8xYXJwTE9yUktZc29kV09HOGx3eU8xbzllTlhqUDBOOVlWWWxZcWI1ejJMa0hQTVhTeGlOUjJFNDk1a2Jhb3ZhZ0daN0JwM0gtNjAzUzB3aVRGa1kzdXRWQWlCRnF3X3RmNmlBa1l0MFZlcVBYdmRzMzBtMEEzQ3BHXzN0cVFzREVzY2daZWZIQ3VVUlpsbC13YVhEYjBERmwzMWdaWVh0QTd5Ul9YdFJUVExEcE51ekQ1MVVxVnRiV2I0dzJUamlJUEJBWDVtd1EuZzZlQlNtX1lGNjg5M1loOS5IZXBtUEl3X3hWRzBLeXpSV0daUDZNcnRVODViXy1lV21RaThfZmZ3TEhac0V0V1o0RFIyVFRCYXdocGJUbEVRNk9OYjdjcUFPcDVEbVNHeEpKSVVFR05xeFR1Yk9PQi1LQ1RLWm82cHJiMmNyaHJRSkdyQ1RzNFRNWVRyTVZDU0thNE85NlNyVUcwQWRiVjBpSVlPS1RnTE9tOWlQcWFYTE16T2h6ODlVeTY4SXlnai1nZ1VGTjVVX0dZZ0FlMGJ5emVsYmo2ZUp1UVVLd0dycXRBcDV5U2VsZDRpZkJlcjZHLXU0Y2RfYnhhRDlWZ29CN3NtSTh4akxOdFJhYzVKTnJUY2d0a3ZSMUlZUXZ3d1RCZmgwTmg5eGtQb3N0X3ZDMmhsdHFLd2hnZjBjVnpYbm9HODIzQlo2ZEhuY2N1V21tWEstZHlCMmRDM0o4TjRRbVJ1TG53VXpHNnV6MWc3SjExa1lmVTZhckhzemc3YjlXalQzSUMtcDJKbTJ6SU5uTHF4WkJxcUtHd193QVF1LVBQNEk4VnRoN3NiVmFuVFpJalBRRHdxV214NHNsUzZVRHgwSlZzT2RoR2Y0STBKSlRuYVRmNmVRa0pKYmVweUtkUW43aFF2YVhzVlJhVHhUdnZHcWo4NWEzaEw0M3BITVVRUDdOUmxETU5HczJRdFNwWlNxdUhTTVdfWTlsaHhZLVFXQkRBLVF1SFN1dzdHM0tkRG9qR1B5WmpxVnVlaFA5Qy1QZndOYnBYVE5aSWFsTlo2Wjl0UFhWMC5ZUnlPM1IzaXJ4V0xac2Zya2kzNjJ3.mWVBMeSrDmKhvqpdriOhnPP_rDesMzLYvVQNO4ILQxbz3S10oAqnP5HPGXS1BNvE2jGfpt_mjTaaDEsPv04jAp89BxFFKuVyyrBnisx44Mkihr2H0fnwQq6urrDrkLI9C8i1bpTbDrMkx1_EmVyWWawvOBOzkwvEN0lef3f91-MYaybTTYkIk5fyyb4jvhxwCbdjG1WmWHmkNmw-ZW4UUS6jKMmj1m5OYUpQP9MQi6gMOyeEbbRKcsBiVzgyfDGMzhNIC1CPDPInT6leX2ARP9dIU1HCY1rORjwL_lz6ZjHW3i4oAoV8TMr_LFJhzDy5Cz3u60LPIESQSweY8DggrQ'
Card Token Inquiry Response
To receive and process card token inquiry responses, refer to the sample code below.
Provided Sample Code
Receive Response Data & Decrypt JWT Token with Key
Refer sample code here.
-
Following a card token inquiry request, the API will return encrypted response data. Refer to the sample encrypted response below.
-
To decrypt the response, refer to: Process JWT Request with Keys
-
Refer to the sample response structure below. You may also check the API specifications here: Inquiry Card Response Parameter
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5vSU1Md0pmYkwzd0RWZnZ0S09rVWlxZmk5bExZaVd5RWFqbXF0Y3FzV0ZRcUVoTmxXMlhiblljdWVZMGRYYzBVZnNfaTdheTZybzlLaXkxR054LUNYeU5Nb2FQQlQ4bFk1S0ZIaFlvQlVqTlN2RDAwdWlGd1BvSGVlVXF6WlVaUmJvdEpqTHMwa1cyRlpoUVdSWno2WGdKbWZza041NWliTWhwaWRNRHJMU2RsdUFqMVVKc0ZmWTZ4WUZBX3Q2UVFWRmphSGFfM0owYzlCdTc0RDJ3T2VxakFSUjdRcURQWG4yZFVueld5R3lGZUkydEFTWnhKMmpVSlBaZ2E4RGhZYzdvemFfekZXTXN1TEdIUWtXTk5wZlRmRXBNYXZEWGtpVUVPaG5zWTc3TFUwQTNwR3Bnb1l6aWc2eHlDZEQ2WlZfOF9WN013U1Z6eWpWQUJzZjBMT2cuUS1oRDhxdTJoNGJDXzNwbi5jbHl4OXFxNFRnMmVZaTRVWDg5UHFuOXNERHJQZ1dXSHVtLTd5dEd2NjZwVEZaUWt2M1R3d3BXOW5DSFFSVHVWV0VlRVZjbV9sQUVxbFZKeE05SzVYaFdIQmxPZ0dzQ041cXpxLUlBejhsZ1BxUmRCTWRWOTlFNk1CMFp1R1pDcHdMRFZUdEJhcjlhWEV4M1pOc1BuVTl4UE5WWFRzLXJvQVFyaS0tTzZSM096Y2lRN3FYSWFRWGFVaUlYYWJsYnVabU5oNzhTSkotZ2lPQUtsN0tPLVlQNlQ5ZkZyVl9PNllUalp4OUhLRHNfcnZjWExKdkNhemtNNk9DVjBoR0pqcm04QjZhS1FoaTBzWWZDOFVlZEJRelpFay1vU2ZGaEkyeGhWN3NCczVlNG9JcTZKNTJFa2lKcGt6R3VlcUdXT3dtMmNZWWFKeVBPa1NhWlZjUHlNQ3VadzFEOWtYYUNKemdMQXNXZkRwcm9qTXYtazAtemt6eWVKUEd4OExMbEg2cGd5QThVSG0taElqREZOZ2NHZkFqdkNYeW9kY2FQOGF6N0U5V0pjSEFWTEVEQWtSMGZnMDA0UlpuRkRtblpqeklWYzU2Mld2WWIwTktOVUF6Z3pLRVA0U1luYlptUVBIQTREb0RtMHNaUzc0Rm5RelFta1Y0b045THJaUkpSR0RYc3A3S2NRS3VGNENqNW1VOUZpR3VWa0laUS1CUlZvYTRKeHh2UF9ra1FrNzhES2kzTWhKVmVEUVhJTkRtcy1tYkRYYTBocVZZUHg5YWJNSVFTWU54TnlvVmR2WjZORzQ2eGpVX2hMNEczcWIzVFJnRzFmd1RVa0NsUzltZGYwdkxNTTFHNXouV0ExT1VPSERhajluLWw0ejhSbE91Zw.vdsB3DJAPcvadQIWApM6-TnQtCXAjWLGTZoc1bdvqZPfKLccJsw8VmT-e0CHzU9zIGO_bKiHRBsVEa3bxRuAfmfMVjm2RCpwjNH1nO2s2idjk7Iep7ck2sFDWwuqxnv_XTkZ0XGjNqsxCm9of45Rw--tOGCCSE2OMgNMgfPPHckPmgypVZSvKKm0xGxLUEIflmcXKLwQi0DdZQLGtFAINnle4wm5Mwuzh6w5TEj0-76Tavp7Xackg2RwehAxlzP_4bt2XTE1YbLMPxollT3I3IWjxwAL8qyArlmcdDC7SPN5a5k7AlQhrgiduQMf-P7ajCqQo1jZUZiSRdgZVokMYg
<MaintenanceResponse>
<version>2.3</version>
<timeStamp>050321135505</timeStamp>
<merchantID>JT01</merchantID>
<respCode>00</respCode>
<respReason></respReason>
<storeCardUniqueID>05032110215528444994</storeCardUniqueID>
<panBank>OCBC Bank</panBank>
<panCountry>SG</panCountry>
<cardholderName>Terrance</cardholderName>
<cardholderEmail>[email protected]</cardholderEmail>
<panMasked>XXXXXXXXXXXX1111</panMasked>
</MaintenanceResponse>
curl --location --request POST 'https://demo2.2c2p.com/2C2PFrontend/PaymentAction/2.0/action' \
--header 'Content-Type: text/plain' \
--data-raw 'eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5vSU1Md0pmYkwzd0RWZnZ0S09rVWlxZmk5bExZaVd5RWFqbXF0Y3FzV0ZRcUVoTmxXMlhiblljdWVZMGRYYzBVZnNfaTdheTZybzlLaXkxR054LUNYeU5Nb2FQQlQ4bFk1S0ZIaFlvQlVqTlN2RDAwdWlGd1BvSGVlVXF6WlVaUmJvdEpqTHMwa1cyRlpoUVdSWno2WGdKbWZza041NWliTWhwaWRNRHJMU2RsdUFqMVVKc0ZmWTZ4WUZBX3Q2UVFWRmphSGFfM0owYzlCdTc0RDJ3T2VxakFSUjdRcURQWG4yZFVueld5R3lGZUkydEFTWnhKMmpVSlBaZ2E4RGhZYzdvemFfekZXTXN1TEdIUWtXTk5wZlRmRXBNYXZEWGtpVUVPaG5zWTc3TFUwQTNwR3Bnb1l6aWc2eHlDZEQ2WlZfOF9WN013U1Z6eWpWQUJzZjBMT2cuUS1oRDhxdTJoNGJDXzNwbi5jbHl4OXFxNFRnMmVZaTRVWDg5UHFuOXNERHJQZ1dXSHVtLTd5dEd2NjZwVEZaUWt2M1R3d3BXOW5DSFFSVHVWV0VlRVZjbV9sQUVxbFZKeE05SzVYaFdIQmxPZ0dzQ041cXpxLUlBejhsZ1BxUmRCTWRWOTlFNk1CMFp1R1pDcHdMRFZUdEJhcjlhWEV4M1pOc1BuVTl4UE5WWFRzLXJvQVFyaS0tTzZSM096Y2lRN3FYSWFRWGFVaUlYYWJsYnVabU5oNzhTSkotZ2lPQUtsN0tPLVlQNlQ5ZkZyVl9PNllUalp4OUhLRHNfcnZjWExKdkNhemtNNk9DVjBoR0pqcm04QjZhS1FoaTBzWWZDOFVlZEJRelpFay1vU2ZGaEkyeGhWN3NCczVlNG9JcTZKNTJFa2lKcGt6R3VlcUdXT3dtMmNZWWFKeVBPa1NhWlZjUHlNQ3VadzFEOWtYYUNKemdMQXNXZkRwcm9qTXYtazAtemt6eWVKUEd4OExMbEg2cGd5QThVSG0taElqREZOZ2NHZkFqdkNYeW9kY2FQOGF6N0U5V0pjSEFWTEVEQWtSMGZnMDA0UlpuRkRtblpqeklWYzU2Mld2WWIwTktOVUF6Z3pLRVA0U1luYlptUVBIQTREb0RtMHNaUzc0Rm5RelFta1Y0b045THJaUkpSR0RYc3A3S2NRS3VGNENqNW1VOUZpR3VWa0laUS1CUlZvYTRKeHh2UF9ra1FrNzhES2kzTWhKVmVEUVhJTkRtcy1tYkRYYTBocVZZUHg5YWJNSVFTWU54TnlvVmR2WjZORzQ2eGpVX2hMNEczcWIzVFJnRzFmd1RVa0NsUzltZGYwdkxNTTFHNXouV0ExT1VPSERhajluLWw0ejhSbE91Zw.vdsB3DJAPcvadQIWApM6-TnQtCXAjWLGTZoc1bdvqZPfKLccJsw8VmT-e0CHzU9zIGO_bKiHRBsVEa3bxRuAfmfMVjm2RCpwjNH1nO2s2idjk7Iep7ck2sFDWwuqxnv_XTkZ0XGjNqsxCm9of45Rw--tOGCCSE2OMgNMgfPPHckPmgypVZSvKKm0xGxLUEIflmcXKLwQi0DdZQLGtFAINnle4wm5Mwuzh6w5TEj0-76Tavp7Xackg2RwehAxlzP_4bt2XTE1YbLMPxollT3I3IWjxwAL8qyArlmcdDC7SPN5a5k7AlQhrgiduQMf-P7ajCqQo1jZUZiSRdgZVokMYg'
Updated over 2 years ago