---
title: Skipping a Cycle
description: This API will be used by merchant to skip only next recurring subscription.
---

# SUBSCRIPTION - Skipping a Cycle

This API will be used by merchant to skip only next recurring subscription. We must pass merchant id, subscription id and action: “S” for skipping next recurring in request. If the request has valid details, we will get a success response as "Subscription updated successfully”.

## POST

```
https://kraken.airpay.co.in/airpay/api/updatesubscription.php
```

## Header

| Field | Type | Description |
| --- | --- | --- |
| Content-Type | String | For JSON: application/json<br>For XML: application/xml |

## Parameter

| Field | Type | Description |
| --- | --- | --- |
| merchant_id | Number | Merchant Identification Number (required) |
| subscription_id | Number | Airpay Subscription Id (required) |
| action | String | Request Type (required)<br>"S"- Skipping next recurring |
| checksum | Alphanumeric | Checksum (length 10-200) (required)<br>privatekey = hash('sha256', secret.'@'.username.':|:'.password)<br>Hash generated by: hash_hmac('sha256', subscription_id+private_key+merchant_id+action, <secret_key>)<br>Note: Use the same secret key, username and password provided on payment kit to generate private key |
## Request-Example:

```
{
    "merchant_id": "11111",
    "subscription_id": "1000001",
    "action": "S",
    "sb_date": "12-12-2023",
    "checksum": "49485184de39db56dad9b9e0aa6e6a29"
}
```
## Request-Example: XML
```
  <?xml version="1.0" encoding="utf-8"?>
  <REQUEST>
        <SUBSCRIPTION>
                   <MERCHANT_ID><![CDATA[11111]]></MERCHANT_ID>
                   <SUBSCRIPTION_ID><![CDATA[1000001]]></SUBSCRIPTION_ID>
                   <ACTION><![CDATA[S]]></ACTION>
                   <SB_DATE><![CDATA[12-12-2020]]></SB_DATE>
                   <CHECKSUM><![CDATA[92c617a556982a8d124ff2b7ce9eae3e]]></CHECKSUM>
        </SUBSCRIPTION>
</REQUEST>
```

## Success 200

| Field | Type | Description |
| --- | --- | --- |
| status | Number | Status value will pass as per the condition |
| message | String | Status message value will pass as per the condition |

## Success-Response:

```
    HTTP/1.1 200 OK
     {
	        "status" : "200",
	        "message" : "Subscription updated successfully.",
     }
```
## Failed-Response:
```
    HTTP/1.1 200 OK
     {
	        "status" : "400",
	        "message" : "Charge not possible on this Date.",
     }
```
## Success-Response: XML
```
HTTP/1.1 200 OK
      <?xml version="1.0" encoding="utf-8"?>
      <RESPONSE>
       <SUBSCRIPTION>
         <STATUS>200</STATUS>
         <MESSAGE>Subscription updated successfully.</MESSAGE>
       </SUBSCRIPTION>
      </RESPONSE>
```
## Failed-Response: XML
```
HTTP/1.1 200 OK
      <?xml version="1.0" encoding="utf-8"?>
      <RESPONSE>
       <SUBSCRIPTION>
         <STATUS>400</STATUS>
         <MESSAGE>Charge not possible on this Date. </MESSAGE>
       </SUBSCRIPTION>
      </RESPONSE>
```
## Status List:
```
200 - Subscription updated successfully
533 - Error in unsubscription
603 - Subscription is in Unsubscribed state
604 - Amount should not be greater than <Your request amount>
605 - Amount should be greater than or equal to 1
619 - Subscription id is invalid
620 - Subscription request was not accepted
621 - Subscription action is invalid
622 - Subscription is already set one skip recurring
623 - Error in update amount subscription
624 - Subscription is already in Subscribed state
625 - Subscription is already in Paused state
626 - No future recurring subscription
627 - Error in pausing subscription
628 - Error in resuming subscription
```