Plan
Plan: Update
- Java
PlanRequest request = new PlanRequest()
.id("new_id")
.name("Awesome Bar")
.description("Incredibly Mediocre")
.price(new BigDecimal("2.00"));
Result<plan> result = gateway.plan().update("a_plan_id", request);
NotFoundException
.
Arguments
id
required, stringAdditional Parameters
The collection of add-ons associated with a plan. Add-on details can only be managed within the Control Panel.
.add(…)
array.amount(…)
BigDecimal.description(…)
string.inheritedFromId(…)
string.name(…)
string.remove(…)
array.update(…)
array.amount(…)
BigDecimal.description(…)
string.existingId(…)
string.name(…)
string.billingDayOfMonth(…)
integer or string.billingFrequency(…)
integer or string.currencyIsoCode(…)
string.description(…)
stringA collection of discounts associated with this plan. Discount details can only be managed within the Control Panel.
.add(…)
array.amount(…)
BigDecimal.description(…)
string.inheritedFromId(…)
string.name(…)
string.remove(…)
array.update(…)
array.amount(…)
BigDecimal.description(…)
string.existingId(…)
string.name(…)
string.id(…)
string.modificationTokens(…)
string.name(…)
string.neverExpires(…)
boolean or string.numberOfBillingCycles(…)
integer or string.price(…)
decimal or stringThe trial timeframe specified in a plan. It is required if the trial period is set to true and must be 1-3 digits. If you specify a trial duration of 0, the gateway will start the subscription immediately and not consider it to include a trial period.
.trialDurationUnit(…)
stringday
or month
..trialPeriod(…)
booleanA value indicating whether a subscription should begin with a trial period. If not specified on creation, the gateway will generate false by default. It cannot have both a specified billing date and a trial period.
Add-ons and discounts
There are two ways to add add_ons/discounts when updating a plan. First, modification tokens can be
passed along when updating a plan. A modification is either an add_on or a discount.
- Java
string[] modification_tokens = {"modification1_token", "modification2_token"};
PlanRequest request = new PlanRequest()
.id("new_id")
.name("Awesome Bar")
.description("Incredibly Mediocre")
.price(new BigDecimal("2.00"))
.modification_tokens(modification_tokens);
Result<plan> result = gateway.plan().update("a_plan_id", request);
- New add-ons/discounts can be added to the plan
- Existing add-ons/discounts associated with the plan can be updated
- Existing add-ons/discounts associated with the plan can be removed
- Java
PlanRequest request = new PlanRequest()
.addOns()
.add()
.inheritedFromId("add_on_id_1")
.amount(new BigDecimal("25.00"))
.done()
.update("add_on_id_2")
.amount(new BigDecimal("50.00"))
.done()
.remove("add_on_id_3")
.done()
.discounts()
.add()
.inheritedFromId("discount_id_1")
.amount(new BigDecimal("7.00"))
.done()
.update("discount_id_2")
.amount(new BigDecimal("15.00"))
.done()
.remove("discount_id_3")
.done();
Result<Plan> result = gateway.plan().update(
"the_plan_id",
request
);
Multiple updates
You can also add, update and remove multiple add-ons/discounts at the same time.
- Java
PlanRequest request = new PlanRequest()
.addOns()
.add()
.inheritedFromId("add_on_id_1")
.amount(new BigDecimal("20.00"))
.done()
.add()
.inheritedFromId("add_on_id_2")
.amount(new BigDecimal("30.00"))
.done()
.update("add_on_id_3")
.quantity(2)
.done()
.update("add_on_id_4")
.quantity(3)
.done()
.remove("add_on_id_5", "add_on_id_6")
.done();
Result<Plan> result = gateway.plan().update("the_plan_id", request);
Override details
When adding add-ons/discounts, all details will be inherited from the add-on/discount specified by
the inheritedFromId. When updating add-ons/discounts, all details will
be inherited from the add-on/discount specified by the existingId. You
can override any of the following:
- amount
- numberOfBillingCycles
- name
- description
- Java
PlanRequest request = new PlanRequest()
.addOns()
.add()
.inheritedFromId("add_on_id_1")
.amount(new BigDecimal("20.00"))
.numberOfBillingCycles(2)
.name("NewName")
.description("NewDescription")
.done()
.update("add_on_id_2")
.amount(new BigDecimal("15.00"))
.numberOfBillingCycles(2)
.name("NewName")
.description("NewDescription")
.done()
.done()
.discounts()
.add()
.inheritedFromId("discount_id_1")
.amount(new BigDecimal("20.00"))
.numberOfBillingCycles(2)
.name("NewName")
.description("NewDescription")
.done()
.update("discount_id_2")
.amount(new BigDecimal("15.00"))
.numberOfBillingCycles(2)
.name("NewName")
.description("NewDescription")
.done()
.done();
Result<Plan> result = gateway.plan().update(
"the_plan_id",
request
);
Update trail period
Updating a plan removes "billing day of the month" when trialPeriod is
passed. In the example below, the plan will not have its "billing day of the month" after it is
updated.
- Java
PlanRequest request = new PlanRequest()
.description("Incredibly Mediocre")
.trialPeriod("2");
Result<plan> result = gateway.plan().update("a_plan_id", request);