Plan
Plan: Create
- C#
var request = new PlanRequest {
Name = "the_name",
BillingFrequency = "the_billing_frequency",
CurrencyIsoCode = "the_currency_iso_code",
Price = "the_price"
};
Result<plan> result = gateway.Plan.Create(request);
Parameters
The collection of add-ons associated with a plan. Add-on details can only be managed within the Control Panel.
Add
arrayArray of add-ons to add to the plan.
Amount
DecimalPrice of the add-on. This will override the inherited add-on amount.
Description
stringA description of the add-on.
InheritedFromId
stringSpecify an add-on ID to apply to the pan. You can't duplicate an add-on for a plan, but you can update the quantity.
Name
stringThe name of the add-on.
NumberOfBillingCycles
stringNumber of billing cycles to apply the add-on. It must be greater than 0.
Remove
arrayArray of add-on IDs that are associated with the subscription. IDs specified will be removed from the plan.
Update
arrayArray of add-ons that are associated with the plan.
Amount
DecimalPrice of the add-on. This will override the inherited add-on amount.
Description
stringA description of the add-on.
ExistingId
stringUpdate a particular add-on by specifying the add-on ID.
Name
stringThe name of the add-on.
NumberOfBillingCycles
stringNumber of billing cycles to apply the add-on. It must be greater than 0.
BillingDayOfMonth
integer or stringThe value that specifies the day of the month that the gateway will charge the subscription on every billing cycle.
BillingFrequency
integer or stringSpecifies the billing interval of the plan.
CurrencyIsoCode
stringThe currency for the transaction. The three-letter alphabetic codes for the transaction's currency (e.g. "USD" for US dollars).
Description
stringA description of the plan.
A collection of discounts associated with this plan. Discount details can only be managed within the Control Panel.
Add
arrayArray of discounts to add to the plan.
Amount
DecimalPrice of the discount. This will override the inherited discount amount.
Description
stringA description of the discount.
InheritedFromId
stringSpecify a discount ID to apply to the plan. You can't duplicate an discount for a plan, but you can update the quantity.
Name
stringThe name of the discount.
NumberOfBillingCycles
stringNumber of billing cycles to apply the discount. It must be greater than 0.
Remove
arrayArray of discount IDs that are associated with the subscription. IDs specified will be removed from the plan.
Update
arrayArray of discounts that are associated with the plan.
Amount
DecimalPrice of the discount. This will override the inherited discount amount.
Description
stringA description of the discount.
ExistingId
stringUpdate a particular discount by specifying the discount ID.
Name
stringThe name of the discount.
NumberOfBillingCycles
stringNumber of billing cycles to apply the discount. It must be greater than 0.
Id
stringA string value representing a specific plan. Max 36 characters; must be unique within a merchant's Vault; valid characters are letters, numbers, - and _. If not specified on creation, the gateway will generate an alphanumeric ID that can be accessed on the result. The generated IDs will never start with a leading 0 and are case-insensitive.
ModificationTokens
stringThe collection of Modification Tokens associated with a plan. A modification is an add_on or a discont. So modification tokens can be passed to assiciate with a plan when creating the plan.
Name
stringThe name of the plan.
NeverExpires
boolean or stringWhether a subscription's billing cycle is set to never expire, or to run for a specific number of billing cycles.
NumberOfBillingCycles
integer or stringSpecifies the number of billing cycles of the plan.
Price
decimal or stringThe base price specified for a plan, formatted like "10" or "10.00".
The 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
stringThe trial unit specified in a plan. Specify
day
or month
.TrialPeriod
boolA 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 add_ons/discounts when creating a plan
There are two ways to add add_ons/discounts when creating a plan. First, modification tokens can be
passed along when creating a plan. A modification is either an add_on or a discount.
- C#
String[] modification_tokens = {"modification1_token", "modification2_token"};
var request = new PlanRequest {
name = "the_name",
billingFrequency = "the_billing_frequency",
currencyIsoCode = "the_currency_iso_code",
price = "the_price",
modification_tokens = modification_tokens
};
Result<plan> result = gateway.plan.Create(request);
- Add-ons/discounts that would be inherited from the plan can be updated on the plan.
- Add-ons/discounts that would be inherited from the plan can be removed from the plan.
- C#
var request = new PlanRequest {
Name = "theName",
BillingFrequency = "theBillingFrequency",
CurrencyIsoCode = "theCurrencyIsoCode",
Price = "the_price",
AddOns = new AddOnsRequest {
Add = new AddAddOnRequest[] {
new AddAddOnRequest {
InheritedFromId = "add_on_id_1",
Amount = 20.00M
},
new AddAddOnRequest {
InheritedFromId = "add_on_id_2",
Amount = 30.00M
}
},
Update = new UpdateAddOnRequest[] {
new UpdateAddOnRequest {
ExistingId = "add_on_id_3",
Description = "Updated description"
},
new UpdateAddOnRequest {
ExistingId = "add_on_id_4",
Description = "Updated description"
}
},
Remove = new String[] {
"add_on_id_5",
"add_on_id_6"
}
},
Discounts = new DiscountsRequest {
Add = new AddDiscountRequest[] {
new AddDiscountRequest {
InheritedFromId = "discount_id_1",
Amount = 7.00M
}
},
Update = new UpdateDiscountRequest[] {
new UpdateDiscountRequest {
ExistingId = "discount_id_2",
Amount = 15.00M
}
},
Remove = new String[] {
"discount_id_3"
}
}
};
Result<plan> result = gateway.Plan.Create(request);
- Amount
- NumberOfBillingCycles
- Name
- Description
- C#
var request = new PlanRequest {
Name = "theName",
BillingFrequency = "theBillingFrequency",
CurrencyIsoCode = "theCurrencyIsoCode",
Price = "the_price",
AddOns = new AddOnsRequest {
Add = new AddAddOnRequest[] {
new AddAddOnRequest {
InheritedFromId = "add_on_id_1",
Amount = 20.00M,
NumberOfBillingCycles = 2,
Name = "NewName",
Description = "NewDescription"
}
},
Update = new UpdateAddOnRequest[] {
new UpdateAddOnRequest {
ExistingId = "add_on_id_2",
Amount = 15.00M,
NumberOfBillingCycles = 2,
Name = "NewName",
Description = "NewDescription"
}
}
},
Discounts = new DisccountsRequest {
Add = new AddDiscountRequest[] {
new AddDiscountRequest {
InheritedFromId = "discount_id_1",
Amount = 20.00M,
NumberOfBillingCycles = 2,
Name = "NewName",
Description = "NewDescription"
}
},
Update = new UpdateDscountRequest[] {
new UpdateDscountRequest {
ExistingId = "discount_id_2",
Amount = 15.00M,
NumberOfBillingCycles = 2,
Name = "NewName",
Description = "NewDescription"
}
}
}
};
Result<plan> result = gateway.Plan.Create(request);