Recurring Payment Maintenance
2C2P allows merchants to offer recurring payment schedules for their customers. Merchants can then use 2C2P's Recurring Payment Maintenance API to check, update, or cancel recurring payment plans (RPP).
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
Recurring Payment Inquiry Request
To prepare a recurring payment 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 recurring payment inquiry request, refer to the sample structure shown below. You may also check the API specifications here: Recurring Payment Inquiry Request Parameters
2.To generate encrypted request data, refer to this guide: Generate JWT Request with Keys
<RecurringMaintenanceRequest>
<version>2.4</version>
<timeStamp>030321155002</timeStamp>
<merchantID>JT01</merchantID>
<recurringUniqueID>156142</recurringUniqueID>
<processType>I</processType>
<recurringStatus>Y</recurringStatus>
<amount>99.90</amount>
<allowAccumulate></allowAccumulate>
<maxAccumulateAmount></maxAccumulateAmount>
<recurringInterval>30</recurringInterval>
<recurringCount>12</recurringCount>
<chargeNextDate></chargeNextDate>
<chargeOnDate></chargeOnDate>
</RecurringMaintenanceRequest>
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5Ea0FWaHZ1RDkwR3hpYzhlNnpNWThkVnZrY0FjcW9WbDkyNW5INEx5UU5BVXhDQTEzMmtUU0l4NmlkUF9PaUJiNmE1MElBa29ld3VjOXN2TnkzZi1ELU9yUWNlV2pkTkdyTm1UdFpHTnQ2UF84Ukh4SlE4Slp3TW1QbVlYVTNVT1JCdzM1Uk1kQUdJYk9JaFBRc2wtSU03M21fRExkZ1dwNm9xV0MwUlhQSE8zSFI0U19QWkl3QkhqaTFtcFNVdU5oQ0J1X043eW9MR2c0bFpGSFp6Tm1mNEN3cXpRQ19FOV9CdUp2cDlWNFRKR0VyX3JhRE42OURLTjduUTNPb2l5RUdkaGZmMjV4d0VkelFORnpfUFFOWUpSRnR0LVZBWk5tVnhYVW5NQmpTZUhlVkRVS3k3STJGRU12OXluMVdDbnVNb19pUFpsbENObDFUWXNjUUZ3eXcuX1VMc0pJeXZfR25leUJhdS5IdXdFSUM0TTV6LXNCRGhPVDlaZlZaYXpPQU9tdTlZRFl2ZkpyS1lDQVNpbTUxZElGZjViNFhOZ3RIbXRsVTZMSDRub2ZNakNmNkdmWlJiZmVzMkN2WVpyajNCa0dWMDY0dWExRzh3U25kX09Fb3JMZFl6VXZqZ2JWUDVXTmhBaWVrS1F4bHFWT2hERTRiZ3R4VVRvRFd2Rzl6WkhodEJiZ1U4bnFHRTd1OVdiYUJGTHVhY1FXZ1QxWEkzOFZlT1gwcGRPLU5PUjJxbVNfNFRSQ1VzVnVQYm45b0huUkVVQm1ZRnRsbjdWYzYyOVBRSVBQX2YyZnpSdzdrTHJqa2hmcDcyVXlDeWFubDZ6SEJ6MmZXVFFWMTNQRnIwQ2UzWlRZcE1RZ3hpaFZyWkF4YlJRNnNfeld1QnBZc3lYMUZvVHlPY204T0pFVEdHRDYyWU9RekI2VW1IMi1LQW1OQ3dYT1NwN2NpdHllNXltSzRyZUZMRzBpaFc0Sm5yWnNJck9iRi1rcEEtYkI4U3RkaV9WNGZmUXVWRDJ0ak5GQ245SkxaOHJDa1FFT0NQNVJnOUk0UGJPaGNvMUJscXRhWV9PVTBmcXlvZVBuSklDNUo3WDJISWlsWm1fdXdJQ3hqTGw4aVNtRzIxTXNKT2hNQWNGVllyaFBWYUdiNEluSm1MWW5TVW5WTjZ5SUtkZm5KVHdMWFR1NTA5QVFLZzBTb3d3SDNpeTlqM0NmcmdTWjEyNTR6a3hDMzBlbWU2SHF2WWxuOUdTVmEyUUVGUWZVU0pGbUx1dWZXRG9PU1AzU0twODlrS3N0T1hYS29YdVJCTkRvQmxyeERneGhfVmE1VEpwaTlmWExHUjcwNUtZM1pUTHJoc3NDOVlHSGVadDNmd2ZVajZ4Y1NUUUkzalVDaXNDSWpBeE04bnJjZFB3ejBtbGJtRFZCSHc0c3VER3FVYUlCUnZGYVlhQzE4Z2hWa25IdXVQci5raVZ4Tk9NNE1wRkNsdlo0QzR5RWRR.oB1cAKDO6zDOm6YvQHZaO17zbn816KSDTEB4OfYZWwF50qI31_um8ypWRfT53pJ9EHRYfXDXzfp9dPz-0rgo4pBkXCb8uaS_CtRWuopqnx5uVTCEst-FHDlk6gV8CeatAWWbK11FobUHgznbcAVLDcQ4ylEbd8ybw62hlNM-lPnwdOSNcQwBOE5KMts9SiIvverptHIztj4-gPWz8B3H7FX32JgW0TAn9chHWclrUtDoA-7P9X-fLRFuCvRtHUNDz02BNQP1j9Ay2TvT1TrU6PREweVJssWNKJguYLP5ykmCHUQhrc5uZJGM1cV7WQobVYDsRTWLgNDt_NGgG5BQuA
- 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.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5Ea0FWaHZ1RDkwR3hpYzhlNnpNWThkVnZrY0FjcW9WbDkyNW5INEx5UU5BVXhDQTEzMmtUU0l4NmlkUF9PaUJiNmE1MElBa29ld3VjOXN2TnkzZi1ELU9yUWNlV2pkTkdyTm1UdFpHTnQ2UF84Ukh4SlE4Slp3TW1QbVlYVTNVT1JCdzM1Uk1kQUdJYk9JaFBRc2wtSU03M21fRExkZ1dwNm9xV0MwUlhQSE8zSFI0U19QWkl3QkhqaTFtcFNVdU5oQ0J1X043eW9MR2c0bFpGSFp6Tm1mNEN3cXpRQ19FOV9CdUp2cDlWNFRKR0VyX3JhRE42OURLTjduUTNPb2l5RUdkaGZmMjV4d0VkelFORnpfUFFOWUpSRnR0LVZBWk5tVnhYVW5NQmpTZUhlVkRVS3k3STJGRU12OXluMVdDbnVNb19pUFpsbENObDFUWXNjUUZ3eXcuX1VMc0pJeXZfR25leUJhdS5IdXdFSUM0TTV6LXNCRGhPVDlaZlZaYXpPQU9tdTlZRFl2ZkpyS1lDQVNpbTUxZElGZjViNFhOZ3RIbXRsVTZMSDRub2ZNakNmNkdmWlJiZmVzMkN2WVpyajNCa0dWMDY0dWExRzh3U25kX09Fb3JMZFl6VXZqZ2JWUDVXTmhBaWVrS1F4bHFWT2hERTRiZ3R4VVRvRFd2Rzl6WkhodEJiZ1U4bnFHRTd1OVdiYUJGTHVhY1FXZ1QxWEkzOFZlT1gwcGRPLU5PUjJxbVNfNFRSQ1VzVnVQYm45b0huUkVVQm1ZRnRsbjdWYzYyOVBRSVBQX2YyZnpSdzdrTHJqa2hmcDcyVXlDeWFubDZ6SEJ6MmZXVFFWMTNQRnIwQ2UzWlRZcE1RZ3hpaFZyWkF4YlJRNnNfeld1QnBZc3lYMUZvVHlPY204T0pFVEdHRDYyWU9RekI2VW1IMi1LQW1OQ3dYT1NwN2NpdHllNXltSzRyZUZMRzBpaFc0Sm5yWnNJck9iRi1rcEEtYkI4U3RkaV9WNGZmUXVWRDJ0ak5GQ245SkxaOHJDa1FFT0NQNVJnOUk0UGJPaGNvMUJscXRhWV9PVTBmcXlvZVBuSklDNUo3WDJISWlsWm1fdXdJQ3hqTGw4aVNtRzIxTXNKT2hNQWNGVllyaFBWYUdiNEluSm1MWW5TVW5WTjZ5SUtkZm5KVHdMWFR1NTA5QVFLZzBTb3d3SDNpeTlqM0NmcmdTWjEyNTR6a3hDMzBlbWU2SHF2WWxuOUdTVmEyUUVGUWZVU0pGbUx1dWZXRG9PU1AzU0twODlrS3N0T1hYS29YdVJCTkRvQmxyeERneGhfVmE1VEpwaTlmWExHUjcwNUtZM1pUTHJoc3NDOVlHSGVadDNmd2ZVajZ4Y1NUUUkzalVDaXNDSWpBeE04bnJjZFB3ejBtbGJtRFZCSHc0c3VER3FVYUlCUnZGYVlhQzE4Z2hWa25IdXVQci5raVZ4Tk9NNE1wRkNsdlo0QzR5RWRR.oB1cAKDO6zDOm6YvQHZaO17zbn816KSDTEB4OfYZWwF50qI31_um8ypWRfT53pJ9EHRYfXDXzfp9dPz-0rgo4pBkXCb8uaS_CtRWuopqnx5uVTCEst-FHDlk6gV8CeatAWWbK11FobUHgznbcAVLDcQ4ylEbd8ybw62hlNM-lPnwdOSNcQwBOE5KMts9SiIvverptHIztj4-gPWz8B3H7FX32JgW0TAn9chHWclrUtDoA-7P9X-fLRFuCvRtHUNDz02BNQP1j9Ay2TvT1TrU6PREweVJssWNKJguYLP5ykmCHUQhrc5uZJGM1cV7WQobVYDsRTWLgNDt_NGgG5BQuA'
Recurring Payment Inquiry Response
To receive and process recurring payment inquiry 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 recurring payment 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: Recurring Payment Inquiry Response Parameters
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5EaFdJc0VSMWR4UDM5ZFZLQmxPVUVUZld0T0o0UFhxY3psOUp2dTBBbmZYYzI2YlEtNWxYanZ6bUVhZG10aU1CZXZubzJuNmRiMEtQZnNLX1FPaGhwSU9oRE9ZNy1KVHBOT3lnSFBmUXAySVZGMEpxNWxpUUZ6eEdfcFBRNElqc05kZ3ZJTGRtUkcxTVE1NkI1QjhnYTlHRlJ1VVN3NUtmY3NMUmkxYlFYQXhIekFFU29pZUIyY2xnY1JYRnZBWDEtUTlsRUlxNUtUTC1lWFFTMFBTd3RpUE9XMGVqVm1sbW9iSjduX1RwQWNUUF9hajNic2t6OFdwQ20wWDBINGluc0F5aHNYamxhZ18wX0xtRFZHV0lRZkY4RTc0VTNFcWNia2c3ZWE0dHUtSmZYRXRkRzlrYThqc3gwVkozVWxyRGFPM2dNZ1VQdXBwNXg1ckN4Ny1Ib0EuMU14LXFaWVNJVFV0ZnNmWC42a3owcTR0ZVl5NVdVMjFaZklrSTRfTXlzSmptV2Nfd2pIeVRrSXJwenAtLTBUeTktYnhEQnVBWVpxU085a3ZKTWxGZkJ5WDhBbzFXSlBPT09QREt2MHNIX2hnZ0xjOUREck1EUXM0TWMzLUtndjdGVzd3c2N2QUI1SVlLcVZjUm1HZ0hoOXRUbXZ2dTVyRV9yUTNfeEEyR19jeXhkUWlnd2d1TDhJdFVYWEhfR29fWFY0dUZZLXRrNDQyX2RZbXE1RGdYa2RHY2M2alJ6MFpMOG1ZaXBVXzNlc0tOYlV3aVZwbF9RM0tYYnMyS1hUdS1CeEJ0b0RIZkFndDV2VjRtNUhkWUpYcy1nbXFZd2lxOVRyRzEzMFN3U09Hd29fQWFIZG8wVGNhR1hXNW9vZXUyZ1hFRk1SQkpJemtOOTVmS1Zlemt0Y0xpY1c5OHNHTGlIWnZydGY1bEk5UkUwWkRicWZQSVBkQVRVWWVoV0RvN1R0N3BVLW56dTU5ZGZlT2dZWFhudDMyeF9YSm5YTEtCTThzaEUxZUdDcl95dFVNXzFhQ2l0U1FnYzlfUzY2bmdBTWtzaUVKdmFXbFpGZi1VcjhTVWNXM21LX3RCS3dSZGQ0ZlJ3TlNBVmVqVWJid3AzbGdTcDg3UGF2RGxuZDBzbGJGbDNLUGo5ZktESFlWTGVxZmdveHZNSHV3bFZsY1FzVF8tQ1lrUVc3S3NHaC1qcXhsTHJxakxLeGhyZ1p6THhfbkZnaTVaVHVZZ0xsemZoaFRRR0VpNGJMMlpwZ1NPVDdrZnZjd2wzSm5KQXlpX1Bad2lteTJaWE5LdGhMVGlDYkhDV1ViMS1QRjl6S2hPS0dOTWV6M2tja1B4SXJ4bHpYS1NjakdDT2gtcEJlbF9Kb3lJV2oxZDJQYVBfNS0xeFVoVWc3OGk2NHFxV2NhNXhXcnVObGhxYmo4cWQ2dC1CVXB5YXl5ZHQwNVRkRHY3d0lhbFFfczNZYUtDYTI0aV9JQm9ycTdOSXpTay1uOW42VXRka2ZwbnpOYTZxNVo3YXQ2VEFRUXFESmV1NmYtVDhNVW1JYlg2STc1TmYzUi15V3oxSjd3TThoQW5rNmhveEZwS2RRd3ZxZ2w1UmEzZl93XzdxWGQ3dElYUi1rZmQ2NzR5UG5SLTEyMnVSNnhYNlpIa0tkcWluMlNaYk9SYXNkYzBrOGpWa3cxS0FrZ1NlOTJBajhpT0dobGtETmpWSEhDSFR2b3g1bWNsRHBNNVdkNDJCYjJORC1nbG10SlZmMnRYcGM4N3JIVTFNc0tlNW9LUS5XcHdjdXRpTmJDVlhUTEk5LURvZlRB.L_PxFtWJEfb4B8QhEnEuFkO5femjE80DL6zAWIOiRVlBv7v6lejQ1x3JSLNDHI4MkW0QTDDdGVLSPHvsPQEuXIEZK1omXAHEtmcGhnPxSOtAbgvFw38_YPzkEJaWWrINVhH6hXQrdgPq1bzGA2upymCT2VqZg6EI2q7rAIIIAbe6rqi8vDBOTB4BmSW-sOS3vFjmITg9NE2dJ93PsZPl81QctUibj_shW25nEgnsbh9S8qaQdJYf1sLEyfs5OIPPesUUXt32ewilHa4lpYq7ckGmR1nYjX-7jTXf8mOmu3ALH-TlFGtpEnE2TA3Z8IWcD1B5OH0xKIQTQC8H6_S_qg
<RecurringMaintenanceResponse>
<version>2.1</version>
<timeStamp>030321155002</timeStamp>
<merchantID>JT01</merchantID>
<recurringUniqueID>156142</recurringUniqueID>
<respCode>00</respCode>
<respReason>Inquiry Successful</respReason>
<recurringStatus>Y</recurringStatus>
<invoicePrefix>030321135205</invoicePrefix>
<currency>702</currency>
<amount>000000009990</amount>
<maskedCardNo>XXXXXXXXXXXX1111</maskedCardNo>
<allowAccumulate>N</allowAccumulate>
<maxAccumulateAmount>000000001000</maxAccumulateAmount>
<recurringInterval>30</recurringInterval>
<recurringCount>12</recurringCount>
<currentCount></currentCount>
<chargeNextDate>20210307</chargeNextDate>
</RecurringMaintenanceResponse>
Update Recurring Payment Request
To prepare a recurring payment update 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 recurring payment update request, refer to the sample structure shown below. You may also check the API specifications here: Recurring Update Request Parameter
-
To generate encrypted request data, refer to this guide: Generate JWT Request with Keys
<RecurringMaintenanceRequest>
<version>2.4</version>
<timeStamp>050321091314</timeStamp>
<merchantID>JT01</merchantID>
<recurringUniqueID>156142</recurringUniqueID>
<processType>U</processType>
<recurringStatus>Y</recurringStatus>
<amount>000000009990</amount>
<allowAccumulate>N</allowAccumulate>
<maxAccumulateAmount></maxAccumulateAmount>
<recurringInterval>30</recurringInterval>
<recurringCount>24</recurringCount>
</RecurringMaintenanceRequest>
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5tbE1nblRmTkwxU0tQZXZLa01LcHVjVWkyekNaUUZ2SkJ5V1pTSklaZXNfM1JEb0dHQm5RUEg1OUd4czE5TUV5T0twalNldWtXc1lLVEJkdTBDQ0kwRVhiaks1UWkwT0JidWhSTVh4UGlZSjdXOV9XR0xiYlJSbE1jbE5HMXIzRFNaVFdESmxUNlMySHFfWnJYbThieWRTNHh5RFcwZmhTV0xZYXFqS2FiTE1ETnZfRW0waExJSC0zRjhoVzJfQ3hyMlVQdlljZ2dZaTJyVGQ4NnRPWGpsaU15MFRxeVJOMlNoMnpIdG5FdXRjdUxFcklLR2dIZkNNbHhkQldubHlsdzRZMmdrcktOcHRVT3ZYVDBfeEJ2UENSZm9uM3JteFVJYTE4SlFpeHMxT1lUb0NVNWtVRklkUHg1U1FwRktheHNvb0xZLWtmOVBLV2FueFlxaGF2OFEuR0RIdW1NaW9iYkxkb21NMS5IcHZtVi1FZWIxX2YxbFFvWWo1YzMxb1lsUlh4clFfYlJ5VVpfcklMX25yRHBnZk9fdloxV0ltTlYzbGc4QjdBdUdObTg3NFpUcHExQndaQUwweW1WY05wb1BxLVpIXy1qdWhHRnhOSVM2UnhIS2ZobW5LUVh4YVYwYTRnM2NCZmJMVWExY05JcW1DY2NBQUJ6ZmhsMkxVT2ltd2g1MmQ2QWN6VVlGcVk5dV9lRjVDWGJkUzg4VTlhVFNKTmdrZmJOdGpkSEVGVzVnMjZfU1hFbHNwSHgwZTNJaExoeGZiVkxmQ1FNSi1QS3oxWUszVFlPbDlzYzk2ZTlTRUJhRzRpa1B5eGJZSmZEMWZQWmN5S2FYRjk0bEE0b0tIdDBTbmptTVJ2Q1Nzay1yd3ZvT1IxQXE1dkdSVWk5TkZFa2JCTDc0WEVNMDd1djBiQTZocjhvWWlaT0R6dEJLTmRxbnlYUDdtaTBnbzBuaDdmVjMyMElMUjlxLWdwLWNvdVppTVhNeGllbl9VSEhwVEpBV01uRFRYX1k0LUFXSGJVcWVoVllLZzlvZ1I0STNGdlF5TTVHTzVZbzB2WUw1Zm5NZHcyMTQ5WEN3V1diUDYzSDVVdlBINkVzQ2RHYWxTZXdrS3Q1a09JM1lSbVR1V0FRWTdzR3hSZFVLdG5yZ0FiN2s5Mk5yNzNhM0w2akl3bW1qb2ZJdXllQnRrVHg0cmxoZ19lSjR1b1FBclZqOFJwLUpFUV9YMmpMVmVuOUdGckZDaGNFU0xFbld5LW1fd2dzRnVlM1BVZHRBX21Gd0N0YjgzS0VoMHc1SzFmaVNVUW8xSjMxX0o1M1IxT3lXNURhcGlyTlB5RnFDdkFNbWhBSG1kVmd2VHpyQTBQWlA5cmc2TzJVcENham1QblZIYkFDRjFEalZxbklmRHM3eG5FaGtaM1hUWFVYT2FnNGNaQTdwdjN5NUlYSzMwaUlVT3VuVEtvZ0gtYS1NYjRNcm83REk0LnhUTTRsUjh1alAtQVlpQ2V2d3VTRWc.pbDC-ZeMEGb9bHWXaz7vgKhty4CYSRtXsn2cv_2tf-K_s2BDek02VCrCA2mxD6ChQsvMr9dY5MNq1R32lvXFQSbI4Oe718PnzKI_-kizKownFaiMt6hmCSCAgIr65VD7fp9SoHvGGImRyU2EIOZwcwgmADtFYWXHf5NcIk2LXfjE6szHmgY1W1jgs_vJqBmQt9wPSN8Gn6Q8iwhuOACSR13LGQSDjHCZ1zG_MCXwkq4qrg82t5boN-0ymQpshvwWCGDzIFUbF4HJOIOwuHny1M4rC4E5ia5w8eYAf7iMxN7z9pA6KyfNWxnZIJcfvw63eab2T7tsUORIeY9Dsnv39Q
- 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.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5tbE1nblRmTkwxU0tQZXZLa01LcHVjVWkyekNaUUZ2SkJ5V1pTSklaZXNfM1JEb0dHQm5RUEg1OUd4czE5TUV5T0twalNldWtXc1lLVEJkdTBDQ0kwRVhiaks1UWkwT0JidWhSTVh4UGlZSjdXOV9XR0xiYlJSbE1jbE5HMXIzRFNaVFdESmxUNlMySHFfWnJYbThieWRTNHh5RFcwZmhTV0xZYXFqS2FiTE1ETnZfRW0waExJSC0zRjhoVzJfQ3hyMlVQdlljZ2dZaTJyVGQ4NnRPWGpsaU15MFRxeVJOMlNoMnpIdG5FdXRjdUxFcklLR2dIZkNNbHhkQldubHlsdzRZMmdrcktOcHRVT3ZYVDBfeEJ2UENSZm9uM3JteFVJYTE4SlFpeHMxT1lUb0NVNWtVRklkUHg1U1FwRktheHNvb0xZLWtmOVBLV2FueFlxaGF2OFEuR0RIdW1NaW9iYkxkb21NMS5IcHZtVi1FZWIxX2YxbFFvWWo1YzMxb1lsUlh4clFfYlJ5VVpfcklMX25yRHBnZk9fdloxV0ltTlYzbGc4QjdBdUdObTg3NFpUcHExQndaQUwweW1WY05wb1BxLVpIXy1qdWhHRnhOSVM2UnhIS2ZobW5LUVh4YVYwYTRnM2NCZmJMVWExY05JcW1DY2NBQUJ6ZmhsMkxVT2ltd2g1MmQ2QWN6VVlGcVk5dV9lRjVDWGJkUzg4VTlhVFNKTmdrZmJOdGpkSEVGVzVnMjZfU1hFbHNwSHgwZTNJaExoeGZiVkxmQ1FNSi1QS3oxWUszVFlPbDlzYzk2ZTlTRUJhRzRpa1B5eGJZSmZEMWZQWmN5S2FYRjk0bEE0b0tIdDBTbmptTVJ2Q1Nzay1yd3ZvT1IxQXE1dkdSVWk5TkZFa2JCTDc0WEVNMDd1djBiQTZocjhvWWlaT0R6dEJLTmRxbnlYUDdtaTBnbzBuaDdmVjMyMElMUjlxLWdwLWNvdVppTVhNeGllbl9VSEhwVEpBV01uRFRYX1k0LUFXSGJVcWVoVllLZzlvZ1I0STNGdlF5TTVHTzVZbzB2WUw1Zm5NZHcyMTQ5WEN3V1diUDYzSDVVdlBINkVzQ2RHYWxTZXdrS3Q1a09JM1lSbVR1V0FRWTdzR3hSZFVLdG5yZ0FiN2s5Mk5yNzNhM0w2akl3bW1qb2ZJdXllQnRrVHg0cmxoZ19lSjR1b1FBclZqOFJwLUpFUV9YMmpMVmVuOUdGckZDaGNFU0xFbld5LW1fd2dzRnVlM1BVZHRBX21Gd0N0YjgzS0VoMHc1SzFmaVNVUW8xSjMxX0o1M1IxT3lXNURhcGlyTlB5RnFDdkFNbWhBSG1kVmd2VHpyQTBQWlA5cmc2TzJVcENham1QblZIYkFDRjFEalZxbklmRHM3eG5FaGtaM1hUWFVYT2FnNGNaQTdwdjN5NUlYSzMwaUlVT3VuVEtvZ0gtYS1NYjRNcm83REk0LnhUTTRsUjh1alAtQVlpQ2V2d3VTRWc.pbDC-ZeMEGb9bHWXaz7vgKhty4CYSRtXsn2cv_2tf-K_s2BDek02VCrCA2mxD6ChQsvMr9dY5MNq1R32lvXFQSbI4Oe718PnzKI_-kizKownFaiMt6hmCSCAgIr65VD7fp9SoHvGGImRyU2EIOZwcwgmADtFYWXHf5NcIk2LXfjE6szHmgY1W1jgs_vJqBmQt9wPSN8Gn6Q8iwhuOACSR13LGQSDjHCZ1zG_MCXwkq4qrg82t5boN-0ymQpshvwWCGDzIFUbF4HJOIOwuHny1M4rC4E5ia5w8eYAf7iMxN7z9pA6KyfNWxnZIJcfvw63eab2T7tsUORIeY9Dsnv39Q'
Update Recurring Payment Response
To receive and process recurring payment update 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 recurring payment update 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: Recurring Payment Update Response Parameters
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5LVURNR0t0TGI5eUpoX25nek43TWk1U3hJQVpFQTNwY1ZrV0xmWVg2YURxN3RuMGhBdE1JWU11cVVLekl6UVhSU3RfMlJuTGIyQ1dCQ2c4Mmlwc1Q3eFM3b2ZQa2xweE9jXzFnc2Q1c3l0c0RuaDVVcjZ6U21ELUJ4WnA1X2psN1VCcVlJYU9RTW9DcFpLSk1EZjE5UlRSdFBoRnNYMWFtM3pnLUJJcm1HQXo2TWVYQ2dkanhVOFBYeUpOcFd5SE5ub3pZRTlRa3BuSjhKNFAycy1vb0xLU1JrOFY5bEFrci0zX2hJRGdyVUlPdmwyc2Rrb19NNzlUX3NLOE9tWWhjX2pfbDVhWEduWGRvb0xKOWE3VFhObEhweEp2Z3Q3cWpVOTEtYUtZVWh3UU5jVk1hWFg0WUhZQkRBMlpGTG9OS0xEdVRJZ3VKekRGbFZ2NlRpZHBuWXcuNXJ6UDF2a1ZRMl93bW54Sy5GXzB2VFNtamV0QmZVSzE2aUtkd1Bwa3dLRmNlQ3ZhWFhFX3BlUzdZeURKYXdyN2R2bHpqUHBfekQ0SktCTERrcGNQMTd0UUxlRWt6NEVGdU1zLUZlcWhOSUVqbldGTHV6MTd2Si1iZl9sWG82azZJTm1fWW1XUnZVaWpaTnY1SGN6N2VTZGc3NF9rRlVySGNwTFdBRl9GTlZ2UFk1NGZ1M1JQOVU2Q215QTRwcDVQeDJHSkNFLVY1NlRLMUxGT0t5M2JaTXY1c1hfeHFMVkpUQm5oLXZ5RkhBTnFoQjJXWVh0dFVKcWRKdnczWVNsRzhrR1hzMDFxZHdfM2hnSjB1NFZtZWNxMTlJOHFtemd1dm5Rc281Ti1UeXFqeUtWZEVzTExyWWdFcnFjV3QtNXZsN0NWTUJIQU1TOHBkVzItV1RWeGxSazlSZ190bGFrZk5ETU91SVFPNzV4V3dLZEdMa3djc0VESDRYRkdvZkhxdkU4c0ZNRDA5a21nYlFQd1hCaUJqLkhSeWM4WlQ2aVdHcHplS0pBem44d1E.DbmTey2i28_vatLGnM1M384K4d5-j79EPawSvBdXe5A_800U4YffE5ny7gTPPQxJwk_D4Nnq4ibcPJSIsu8b7Mg71MT3oN6MpHbE4h-z9hNffpPFlZJghtuScUtbPCxZhDYi8oOTT9jM865RyyVemfct8ZRDyXJlJynreKuqAhJ5vXgSfTKWwxv4jN-81GTtCdiH8r9ZPFrw_O77KWcf4KzngjVJyMbo6mEZptcD0_r_I1I3n-o55tiYue-PN45N50E57C49QkPNcPRz2tt35hNO3nEXNF-6VzKO5H-tAA2sH3ZLQ7gZoCMLMOcHGnwp2klcmIdQ2hDQZUvrhCtDkw
<RecurringMaintenanceResponse>
<version>2.4</version>
<timeStamp>050321091314</timeStamp>
<respCode>00</respCode>
<respReason>Update Successful</respReason>
<recurringUniqueID>156142</recurringUniqueID>
</RecurringMaintenanceResponse>
Cancel Recurring Payment Request
To prepare a recurring payment cancel 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 recurring payment inquiry request, refer to the sample structure shown below. You may also check the API specifications here: Recurring Payment Cancel Request Parameters
-
To generate encrypted request data, refer to this guide: Generate JWT Request with Keys
<RecurringMaintenanceRequest>
<version>2.4</version>
<timeStamp>050321095210</timeStamp>
<merchantID>JT01</merchantID>
<recurringUniqueID>156142</recurringUniqueID>
<processType>C</processType>
<recurringStatus>Y</recurringStatus>
<amount>000000009990</amount>
<allowAccumulate>N</allowAccumulate>
</RecurringMaintenanceRequest>
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5rT3dzSXRmcWkwQjlHMFF6MFdUQWdXaDZlQ28zbXBvYl9tS1BpbkNZRnQtY1pTakg5YzR2NldoVlZ4TzNMM2dsR0pGWWdaTkFlcndtd1FyMFVvOWlKaHBuSjVjd3I0TmVTajRBN1NCRkMzUTVJQzVWNUU3eWJ2MVVUSjhKQU9mVjdZbWN0d2p6dG5zUk01Q0JESlM1MEo0YmtwaDk2V3VMT3NrSmJlTy01TjI0WHNZSVRRZDNZazE2NXRfaFlRZF9VamNDeWdmNnFCc2k5R25IM3ZSVnM1aXNkTlhqT2JFMUw3RHp6VWxtRHV1UFZlUUNTemoybVZOWTZybUJ2ZHNtU21jV2d5SEU0dVVBbEZlNlhfVFpwUTh0WmxTODZVZWRTaGJSYkdtZS1BdnNQNl9nOGd0VEp4RUlSS1dIS3h0WEpWVUFCU2NjaWwzWENhRVliZUNqWVEualR5RjhSUXY1Z25hN19KWi56S1lxc25aY0pOOFh5VkRGUUVWTmRaWnNDQy1RSlVqZUtRcXhLRWlELS0ta1lYXzNlWnktVThENHlyZ0JIUm1VZG5TVjJtQVpOSWJEOVVsV1h4MG9vbDljcWhjWWNUUmdmUW1PQzBPdkk3aGxyRFUwWGtpcm1CaV9LRUZpaVBwQkFpUUxCZFNxSUtDNGJROVNuRVJ4N0dCZXZCeThJM0VxZ2dPWmNiaEdkZ1JVcXZnWDFRRGl1eklzZUxsaXA3ZERuUkhxWENneE5qNzhEVnk4c0h3U0k3RGYybk5FOFY4bTMxWFRHTWhDTl9EUVB6NVUzTjJMTjZhV0NLQjkzZDRpRlo2dmNWWVVMMnJWNTdfTURoZ25sYmJrbU4yMGZ2WEpqR3lEdlNLWDh1eElDQkNwZVU2bDRoajVzLVk0WXJSWUY4RTNjMWJJRDNUVmlrSWxQZUxVWmhKWmxRZzRVMGx3VXlIRThVMmN2M3NzQlRrclNtckhKZ2xKeHBUUThucjBOZHI2VW5Qb09TYU5jbGpUeEt5QXZmd0lpMWlPaFpDcExkVzgybGd5TVhxclZOZlpxU1ZoYThuMVN2Unp3VFZDYmJLR2IxNTgySnFsSW1IZXpUY0ltazdtZ1BTWFBvUHZPWTNPVmpLSXZrUTVscHZjeEwyUm0tR0dvSWJza29zX0FwbnEwYTFCQ2JxMHlvLWlxNENSQkEtdUF2cHFZcjJJQUplYUI4eTItSjVXOEhsc2dtX2NnUU1wamJEdXJ5YVMxMlV6SG03bnU5ejRUNVRQQlUxTG5SV2FWb19FUkZRdkxmdFR2RENZc3c2NkdGZXF2RV80SlhNMUNxMkc5RFJhQlZWcXQyR3doaHpySDBfZVROaUFGSFI1MVF5S25ibGRzbUduSHBSb3lacWNxaWM3bmJPelNrTlF0N0sxZS1PRUo4U2NabDhTNUR6Mml1cXhRY0ppdzdicjgyMEVQV25pZ01TY3RCZ0dsQS5TX1dMNEhzS1FiY3lTNmE4SmZhaVRR.N9OzsweGqwIngJXv4rBmZXacW2keqQPerALvVGUUVNEsT_oQrVizqYf2kpZ58fOXXaGBMURGv7unsFqv6cBvBSkanqIioSGi3YRPzfoivgAfFjIL-n7-TzVhFlow4OTZbN4GCd5EDi1V2lko5COYiBPDtZb8SDpIA3jNJttbwFP-h97pmdSbTRuW3igKlssHVLRPwSm26IVjKC_8EqsbHR6zyNuonHR6L47u4yklMGSpTbtSbHsEaZG6nZnyoWxbnXqzeiT5vTlwefahKKkIRf2aMk-YFOOAD_dbWun6krsK5EoVJyf0C3CBwWpRz9YSZsBt_wNF0MHUC5T3GEQ1ew
- 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.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5rT3dzSXRmcWkwQjlHMFF6MFdUQWdXaDZlQ28zbXBvYl9tS1BpbkNZRnQtY1pTakg5YzR2NldoVlZ4TzNMM2dsR0pGWWdaTkFlcndtd1FyMFVvOWlKaHBuSjVjd3I0TmVTajRBN1NCRkMzUTVJQzVWNUU3eWJ2MVVUSjhKQU9mVjdZbWN0d2p6dG5zUk01Q0JESlM1MEo0YmtwaDk2V3VMT3NrSmJlTy01TjI0WHNZSVRRZDNZazE2NXRfaFlRZF9VamNDeWdmNnFCc2k5R25IM3ZSVnM1aXNkTlhqT2JFMUw3RHp6VWxtRHV1UFZlUUNTemoybVZOWTZybUJ2ZHNtU21jV2d5SEU0dVVBbEZlNlhfVFpwUTh0WmxTODZVZWRTaGJSYkdtZS1BdnNQNl9nOGd0VEp4RUlSS1dIS3h0WEpWVUFCU2NjaWwzWENhRVliZUNqWVEualR5RjhSUXY1Z25hN19KWi56S1lxc25aY0pOOFh5VkRGUUVWTmRaWnNDQy1RSlVqZUtRcXhLRWlELS0ta1lYXzNlWnktVThENHlyZ0JIUm1VZG5TVjJtQVpOSWJEOVVsV1h4MG9vbDljcWhjWWNUUmdmUW1PQzBPdkk3aGxyRFUwWGtpcm1CaV9LRUZpaVBwQkFpUUxCZFNxSUtDNGJROVNuRVJ4N0dCZXZCeThJM0VxZ2dPWmNiaEdkZ1JVcXZnWDFRRGl1eklzZUxsaXA3ZERuUkhxWENneE5qNzhEVnk4c0h3U0k3RGYybk5FOFY4bTMxWFRHTWhDTl9EUVB6NVUzTjJMTjZhV0NLQjkzZDRpRlo2dmNWWVVMMnJWNTdfTURoZ25sYmJrbU4yMGZ2WEpqR3lEdlNLWDh1eElDQkNwZVU2bDRoajVzLVk0WXJSWUY4RTNjMWJJRDNUVmlrSWxQZUxVWmhKWmxRZzRVMGx3VXlIRThVMmN2M3NzQlRrclNtckhKZ2xKeHBUUThucjBOZHI2VW5Qb09TYU5jbGpUeEt5QXZmd0lpMWlPaFpDcExkVzgybGd5TVhxclZOZlpxU1ZoYThuMVN2Unp3VFZDYmJLR2IxNTgySnFsSW1IZXpUY0ltazdtZ1BTWFBvUHZPWTNPVmpLSXZrUTVscHZjeEwyUm0tR0dvSWJza29zX0FwbnEwYTFCQ2JxMHlvLWlxNENSQkEtdUF2cHFZcjJJQUplYUI4eTItSjVXOEhsc2dtX2NnUU1wamJEdXJ5YVMxMlV6SG03bnU5ejRUNVRQQlUxTG5SV2FWb19FUkZRdkxmdFR2RENZc3c2NkdGZXF2RV80SlhNMUNxMkc5RFJhQlZWcXQyR3doaHpySDBfZVROaUFGSFI1MVF5S25ibGRzbUduSHBSb3lacWNxaWM3bmJPelNrTlF0N0sxZS1PRUo4U2NabDhTNUR6Mml1cXhRY0ppdzdicjgyMEVQV25pZ01TY3RCZ0dsQS5TX1dMNEhzS1FiY3lTNmE4SmZhaVRR.N9OzsweGqwIngJXv4rBmZXacW2keqQPerALvVGUUVNEsT_oQrVizqYf2kpZ58fOXXaGBMURGv7unsFqv6cBvBSkanqIioSGi3YRPzfoivgAfFjIL-n7-TzVhFlow4OTZbN4GCd5EDi1V2lko5COYiBPDtZb8SDpIA3jNJttbwFP-h97pmdSbTRuW3igKlssHVLRPwSm26IVjKC_8EqsbHR6zyNuonHR6L47u4yklMGSpTbtSbHsEaZG6nZnyoWxbnXqzeiT5vTlwefahKKkIRf2aMk-YFOOAD_dbWun6krsK5EoVJyf0C3CBwWpRz9YSZsBt_wNF0MHUC5T3GEQ1ew'
Cancel Recurring Payment Response
To receive and process recurring payment cancel 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 recurring payment 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: Recurring Payment Cancel Response Parameters
eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.ZXlKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V5TlRaSFEwMGlmUS5NdE1obWRpcmxIVVVuNWhNUDdMNWZZM2xrek5oWTItLWJDRk5nd0RSUGpxNE5Ec1MwYV80aVhyeWtwRHF6VDV5bmhXU3M2WjFDTXJJM19DS2ZKb1VGb3U4YlBjTVZGVzNGcGpjVWY0dmR1YU50a0hGSlUzMm43em84U2YyWm9EX0pValFmMG1BbzBKM3VMaGJ5RjhmTTFCcG1IT255WFJCdEE2UjAwcHBvZkc3eFAxRWc0WmR5NXZoNERBTE1wRHdmdmV5MlBrUFBoRHRlTzhHNVpEMThVeERXXzZxVXZpOUFISno4b3kwZ1lIdWlVRzVEUExzWGl0dm9MQzJwcDRiUlp0dXZfcDFmUzg2a3VHQ2VoWEFyakl2M05jQXpfWU41YmNENjRCbTdycm5nQ05vZXc0VjM3Mllua0p2cW00R19mZERjZDVKQ2FWd1hwZWNXWWVDOVEuTmhIX3dybmU3R0dkOTdTWS5haGMzREV2Ymk5a3k0UkZPR1FvZTN5UlhwZEU1cFhmSU1iRmFYZmV0a1FYOU1BVnE5dEI0N1Q4V2VEajVCNWgycklRNDBMMFM3Sl9qbVZNTF9jOFZMQ1BHX2k1c00xRWM5VVFncldFSTVTcG42THBSemlTcm5zNk9uR01NLXBUUmJrU3Z4dEtjb2VEWHdvX1plX2xiVlllSjU0WWV1SE4tbl90MFE0RzY4cGlXT2k2M25QaC0ydkFibExrdzFWZkpVckR1TEZ4d24zVjNTTFFpMEh3WlAxWXN3aTk2MlFpbGpGaVFOWG9MNmxNQVB5a19BTDdDSWhEUUdzZE5HZVNuejZNS3NRNDFKRDFabjNZRTY4U0JVbVhSM1FhQUl6WXZaZWlxYnhqa29XcFhPdVdSWENQQ2RKV3ZFNVNGdUFOdjdVRGpTS2F2RVl5eVRGUm0weFNvalcwOUhpNWN2UTd6V1B5a2EyZVhIeGUyclB5amh0VDZ0cDlZd184cFBFN0NpN0dVLmo5eTJ3VTV5WTludnpXY3FPR1NsWVE.CbQkIKF_b9Rl0f-rpda9BiJU1M3BVwsYzb3NRQedZzfQEVswlr4q7Yev6mmcfnhAhLgTC3mJbo8qGnQ1l3iY2rgGWFL_9mZQPsiJoqAp2W-d6uLS-yd1AWZV8dzA4PIbwallHVayZcQiFyHisVjUPWrY50fqYS-V464Yg_HXcFfitIKvBcy2WS5BpHH89P_NbA9Hhqv_A4LqaZGh3JUxFb9RgnYFsPiOAvFQoaCc0IY4EYVqh8WugsriX7-N4ndh9ue4xZcAUGI4cKcEjiDE6t6-4btrgbyRDunMXVuO5Uuc4O0mb9NaX1vs4ZtXYAuihcbB4YElR1cgU-CiOKXpxQ
<RecurringMaintenanceResponse>
<version>2.4</version>
<timeStamp>050321095210</timeStamp>
<respCode>00</respCode>
<respReason>Cancel Successful</respReason>
<recurringUniqueID>156142</recurringUniqueID>
</RecurringMaintenanceResponse>
Updated 11 months ago