## Create Zone Subscription `client.Zones.Subscriptions.New(ctx, params) (*SubscriptionNewResponse, error)` **post** `/zones/{zone_id}/subscription` Create a zone subscription, either plan or add-ons. ### Parameters - `params SubscriptionNewParams` - `ZoneID param.Field[string]` Path param: Identifier - `Subscription param.Field[Subscription]` Body param ### Returns - `type SubscriptionNewResponse struct{…}` - `ID string` Subscription identifier tag. - `Currency string` The monetary unit in which pricing information is displayed. - `CurrentPeriodEnd Time` The end of the current period and also when the next billing is due. - `CurrentPeriodStart Time` When the current billing period started. May match initial_period_start if this is the first period. - `Frequency SubscriptionNewResponseFrequency` How often the subscription is renewed automatically. - `const SubscriptionNewResponseFrequencyWeekly SubscriptionNewResponseFrequency = "weekly"` - `const SubscriptionNewResponseFrequencyMonthly SubscriptionNewResponseFrequency = "monthly"` - `const SubscriptionNewResponseFrequencyQuarterly SubscriptionNewResponseFrequency = "quarterly"` - `const SubscriptionNewResponseFrequencyYearly SubscriptionNewResponseFrequency = "yearly"` - `const SubscriptionNewResponseFrequencyNotApplicable SubscriptionNewResponseFrequency = "not-applicable"` - `Price float64` The price of the subscription that will be billed, in US dollars. - `RatePlan RatePlan` The rate plan applied to the subscription. - `ID RatePlanID` The ID of the rate plan. - `const RatePlanIDFree RatePlanID = "free"` - `const RatePlanIDLite RatePlanID = "lite"` - `const RatePlanIDPro RatePlanID = "pro"` - `const RatePlanIDProPlus RatePlanID = "pro_plus"` - `const RatePlanIDBusiness RatePlanID = "business"` - `const RatePlanIDEnterprise RatePlanID = "enterprise"` - `const RatePlanIDPartnersFree RatePlanID = "partners_free"` - `const RatePlanIDPartnersPro RatePlanID = "partners_pro"` - `const RatePlanIDPartnersBusiness RatePlanID = "partners_business"` - `const RatePlanIDPartnersEnterprise RatePlanID = "partners_enterprise"` - `Currency string` The currency applied to the rate plan subscription. - `ExternallyManaged bool` Whether this rate plan is managed externally from Cloudflare. - `IsContract bool` Whether a rate plan is enterprise-based (or newly adopted term contract). - `PublicName string` The full name of the rate plan. - `Scope string` The scope that this rate plan applies to. - `Sets []string` The list of sets this rate plan applies to. Returns array of strings. - `State SubscriptionNewResponseState` The state that the subscription is in. - `const SubscriptionNewResponseStateTrial SubscriptionNewResponseState = "Trial"` - `const SubscriptionNewResponseStateProvisioned SubscriptionNewResponseState = "Provisioned"` - `const SubscriptionNewResponseStatePaid SubscriptionNewResponseState = "Paid"` - `const SubscriptionNewResponseStateAwaitingPayment SubscriptionNewResponseState = "AwaitingPayment"` - `const SubscriptionNewResponseStateCancelled SubscriptionNewResponseState = "Cancelled"` - `const SubscriptionNewResponseStateFailed SubscriptionNewResponseState = "Failed"` - `const SubscriptionNewResponseStateExpired SubscriptionNewResponseState = "Expired"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/shared" "github.com/cloudflare/cloudflare-go/zones" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) subscription, err := client.Zones.Subscriptions.New(context.TODO(), zones.SubscriptionNewParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Subscription: shared.SubscriptionParam{ }, }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", subscription.ID) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": { "id": "506e3185e9c882d175a2d0cb0093d9f2", "currency": "USD", "current_period_end": "2014-03-31T12:20:00Z", "current_period_start": "2014-05-11T12:20:00Z", "frequency": "monthly", "price": 20, "rate_plan": { "id": "free", "currency": "USD", "externally_managed": false, "is_contract": false, "public_name": "Business Plan", "scope": "zone", "sets": [ "string" ] }, "state": "Paid" }, "success": true } ```