{"_id":"59dfa5848b51880010b74adc","category":{"_id":"59dfa5828b51880010b74abe","version":"59dfa5828b51880010b74ab6","project":"57336fd5a6a9c40e00e13a0b","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-07-27T10:22:06.636Z","from_sync":false,"order":7,"slug":"subscriptions","title":"Subscriptions"},"parentDoc":null,"project":"57336fd5a6a9c40e00e13a0b","user":"560d5913af97231900938124","version":{"_id":"59dfa5828b51880010b74ab6","project":"57336fd5a6a9c40e00e13a0b","__v":1,"createdAt":"2017-10-12T17:25:22.850Z","releaseDate":"2017-10-12T17:25:22.850Z","categories":["59dfa5828b51880010b74ab7","59dfa5828b51880010b74ab8","59dfa5828b51880010b74ab9","59dfa5828b51880010b74aba","59dfa5828b51880010b74abb","59dfa5828b51880010b74abc","59dfa5828b51880010b74abd","59dfa5828b51880010b74abe","59dfa5828b51880010b74abf","59dfa5828b51880010b74ac0","59dfa5828b51880010b74ac1","59dfa5828b51880010b74ac2","59dfa5828b51880010b74ac3","59dfa5828b51880010b74ac4","59dfa5828b51880010b74ac5"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":false,"codename":"3.23 Release","version_clean":"8976.0.0-JSON","version":"8976-JSON"},"__v":0,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-07-27T19:44:29.397Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"examples":{"codes":[]},"method":"put","results":{"codes":[{"code":"","language":"text"}]},"settings":"57ee593a21ceb20e0061959e","auth":"optional","params":[{"_id":"579b519f862755190043381f","ref":"","in":"path","required":true,"desc":"BlueSnap identifier for the plan.","default":"","type":"int","name":"planId"}],"url":"/recurring/plans/:planId"},"isReference":false,"order":1,"body":"The Update Plan request enables you to change any of the following settings for an existing plan:\n  * Plan name\n  * Plan status (ACTIVE/INACTIVE)\n  * Initial charge amount\n  * Number of days in the trial period\n  * Charge on switch setting\n  * Grace period\n  * Maximum number of charges\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"* The recurring charge amount, currency and frequency cannot be modified. However, they must be included in the request and contain the same values as the existing plan. **Therefore you may wish to first retrieve the plan and then modify the retrieved plan values.**\\n* Trials and initial charges cannot be added to existing plans. If a trial or initial charge already exists in the plan, its values can be modified.\",\n  \"title\": \"Important\"\n}\n[/block]\nFor more information about working with subscriptions, see the [Subscriptions tutorial](doc:subscription-management#section-tutorial-subscriptions).\n\n<a class=\"btn btn-success\" href=\"#section-api-explorer\" role=\"button\">Try it in the API Explorer</a>\n\n###Request Content\n\nSend a **[plan](doc:plan)** object, with the following:\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`chargeFrequency` &nbsp;&nbsp;&nbsp; *string* &nbsp;&nbsp;&nbsp;<span style=\"color:#F37500\">**required**</span>\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`gracePeriodDays` &nbsp;&nbsp;&nbsp; *integer* &nbsp;&nbsp;&nbsp;optional\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`trialPeriodDays` &nbsp;&nbsp;&nbsp; *integer* &nbsp;&nbsp;&nbsp;optional\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`initialChargeAmount` &nbsp;&nbsp;&nbsp; *decimal* &nbsp;&nbsp;optional\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`name` &nbsp;&nbsp;&nbsp; *string* &nbsp;&nbsp;&nbsp;<span style=\"color:#F37500\">**required**</span>\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`currency` &nbsp;&nbsp;&nbsp; *string* &nbsp;&nbsp;&nbsp;<span style=\"color:#F37500\">**required**</span>\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`maxNumberOfCharges` &nbsp;&nbsp;&nbsp; *integer* &nbsp;&nbsp;&nbsp;optional\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`recurringChargeAmount` &nbsp;&nbsp;&nbsp; *decimal* &nbsp;&nbsp;&nbsp;<span style=\"color:#F37500\">**required**</span>\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`chargeOnPlanSwitch` &nbsp;&nbsp;&nbsp; *boolean* &nbsp;&nbsp;&nbsp;optional\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`status` &nbsp;&nbsp;&nbsp; *string* &nbsp;&nbsp;&nbsp;optional\n\n###Response Details\nIf successful, the response HTTP status code is 200 OK.\nThe response contains the [plan](doc:plan) object.\n\n<hr>\n\n##Examples\n\n###Request Examples\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"curl -v -X PUT https://sandbox.bluesnap.com/services/2/recurring/plans/2111111 \\\\\\n-H 'Content-Type: application/xml' \\\\\\n-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \\\\\\n-d '\\n{\\n    \\\"chargeFrequency\\\": \\\"MONTHLY\\\",\\n    \\\"trialPeriodDays\\\": 7,\\n    \\\"initialChargeAmount\\\": 30,\\n    \\\"name\\\": \\\"Gold Plan\\\",\\n    \\\"currency\\\": \\\"USD\\\",\\n    \\\"recurringChargeAmount\\\": 19\\n}'\",\n      \"language\": \"curl\",\n      \"name\": \"Update Plan Request\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\n###Response Examples\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n    \\\"chargeFrequency\\\": \\\"MONTHLY\\\",\\n    \\\"gracePeriodDays\\\": 10,\\n    \\\"trialPeriodDays\\\": 7,\\n    \\\"initialChargeAmount\\\": 30,\\n    \\\"name\\\": \\\"Gold Plan\\\",\\n    \\\"planId\\\": 2111111,\\n    \\\"currency\\\": \\\"USD\\\",\\n    \\\"maxNumberOfCharges\\\": 12,\\n    \\\"recurringChargeAmount\\\": 19,\\n    \\\"chargeOnPlanSwitch\\\": true,\\n    \\\"status\\\": \\\"ACTIVE\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Update Plan Response: 200 OK\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\n<a class=\"btn btn-primary\" href=\"#\" role=\"button\">Back to Top</a>\n\n<hr>\n\n##Example Description\n\nThis example shows an Update Plan Request with new values being sent for the `trialPeriodDays` and `initialChargeAmount` fields. Note that the `recurringChargeAmount`, `currency`, and `chargeFrequency` fields must also be sent with the same values as the existing plan.\n\n<br>\n<a class=\"btn btn-primary\" href=\"#\" role=\"button\">Back to Top</a>\n\n<hr>\n\n##API Explorer\nTo test out a call, in the `planId` field, enter the ID of an existing plan. In the Body Content field, paste in the JSON portion of the request and then click **Try it!**\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"* The recurring charge amount, currency and frequency cannot be modified. However, they must be included in the request and contain the same values as the existing plan. **Therefore you may wish to first retrieve the plan and then modify the retrieved plan values.**\\n* Trials and initial charges cannot be added to existing plans. If a trial or initial charge already exists in the plan, its values can be modified.\",\n  \"title\": \"Important\"\n}\n[/block]","excerpt":"","slug":"update-plan","type":"put","title":"Update Plan"}

Definition

{{ api_url }}{{ page_api_url }}

Parameters

Path Params

planId:
required
integer
BlueSnap identifier for the plan.

Documentation

The Update Plan request enables you to change any of the following settings for an existing plan:

  • Plan name
  • Plan status (ACTIVE/INACTIVE)
  • Initial charge amount
  • Number of days in the trial period
  • Charge on switch setting
  • Grace period
  • Maximum number of charges

Important

  • The recurring charge amount, currency and frequency cannot be modified. However, they must be included in the request and contain the same values as the existing plan. Therefore you may wish to first retrieve the plan and then modify the retrieved plan values.
  • Trials and initial charges cannot be added to existing plans. If a trial or initial charge already exists in the plan, its values can be modified.

For more information about working with subscriptions, see the Subscriptions tutorial.

Try it in the API Explorer

Request Content

Send a plan object, with the following:

      chargeFrequency     string    required

      gracePeriodDays     integer    optional

      trialPeriodDays     integer    optional

      initialChargeAmount     decimal   optional

      name     string    required

      currency     string    required

      maxNumberOfCharges     integer    optional

      recurringChargeAmount     decimal    required

      chargeOnPlanSwitch     boolean    optional

      status     string    optional

Response Details

If successful, the response HTTP status code is 200 OK.
The response contains the plan object.


Examples

Request Examples

curl -v -X PUT https://sandbox.bluesnap.com/services/2/recurring/plans/2111111 \
-H 'Content-Type: application/xml' \
-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
-d '
{
    "chargeFrequency": "MONTHLY",
    "trialPeriodDays": 7,
    "initialChargeAmount": 30,
    "name": "Gold Plan",
    "currency": "USD",
    "recurringChargeAmount": 19
}'

Response Examples

{
    "chargeFrequency": "MONTHLY",
    "gracePeriodDays": 10,
    "trialPeriodDays": 7,
    "initialChargeAmount": 30,
    "name": "Gold Plan",
    "planId": 2111111,
    "currency": "USD",
    "maxNumberOfCharges": 12,
    "recurringChargeAmount": 19,
    "chargeOnPlanSwitch": true,
    "status": "ACTIVE"
}

Back to Top


Example Description

This example shows an Update Plan Request with new values being sent for the trialPeriodDays and initialChargeAmount fields. Note that the recurringChargeAmount, currency, and chargeFrequency fields must also be sent with the same values as the existing plan.



Back to Top


API Explorer

To test out a call, in the planId field, enter the ID of an existing plan. In the Body Content field, paste in the JSON portion of the request and then click Try it!

Important

  • The recurring charge amount, currency and frequency cannot be modified. However, they must be included in the request and contain the same values as the existing plan. Therefore you may wish to first retrieve the plan and then modify the retrieved plan values.
  • Trials and initial charges cannot be added to existing plans. If a trial or initial charge already exists in the plan, its values can be modified.

User Information

Try It Out


put
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}