Filter and Sort

Select endpoints allow sorting results by field. Use "order": "ASC" to sort results in ascending order, and "order": "DESC" to sort in descending order.

For example, to sort plans by created date in descending order:

Copy
"sort": { "fieldName": "createdDate", "order": "DESC" }

Refer to the following tables to check which fields support sorting.

Query Public Plans

FieldDescriptionQuery Filter OperatorsSorting
idPlan ID$eq, $ne, $hasSome
primaryWhether the plan is marked as primary, and highlighted in the site with a custom ribbon$eq, $neAllowed
slugURL-friendly version of the plan name. Unique across all plans in the same site$eq, $ne, $startsWith, $endsWith, $containsAllowed
createdDateDate plan was created$eq, $ne, $gt, $ge, $lt, $le, $betweenAllowed
updatedDateDate plan was updated$eq, $ne, $gt, $ge, $lt, $le, $betweenAllowed
Did this help?

About the Plans API

Using the Plans API, you can create and manage pricing plans.

This includes building a customized membership plan experience, including implementing a customizable pricing page where customers can view the plans, including their perks, prices, and other features including free trials, purchase limitations, and more.

With the Plans API, you can:

  • Create and update plans. This includes:

    • Setting up pricing models for plans, such as free, one-time payment, and recurring payments (subscriptions).

    • Determining if pricing plans should have a duration or be valid until canceled by a customer.

    • Limiting plans so they can be purchased only 1 time by a single customer. By default, customers can make unlimited purchases of the same plan.

    Note that updating the properties of an existing pricing plan doesn't affect any current orders or purchases of the plan. Existing orders retain their existing terms and pricing.

  • Get, list, and query plans.

  • Change the visibility, availability, and accessibility of a plan.

  • Get statistics about plans.

  • Archive plans.

  • Set or clear the primary plan. This determines if a plan is highlighted with a custom ribbon when viewing the plans on a site.

More about plans

It's important to explore the types of plans available and other specifications, such as payment options and purchasing constraints.

Pricing plan types

Pricing plans can be:

  • Free plans. There is no charge to the site visitor or member.

  • One-time payment plans. The site visitor or member is charged once. These plans can be set to expire or continue indefinitely until they cancel.

  • Recurring plans. The site visitor or member is charged at predefined intervals (such as weekly, monthly, yearly). These plans can be set to expire or continue indefinitely until they cancel the subscription. Recurring plans can have free trial days.

Free trial plans

Recurring plans can be set to have free trial days using the plan's freeTrialDays property.

During free trial days, site visitor and members can cancel the plan and they won’t be charged.

Free trial days are applied only once per site visitor or member for a plan. This means that if a plan with a free trial was purchased once, the second time they purchase it, the free trial days aren't applied. In this case, the site visitor or member is charged for the plan right away.

Purchase limitations

Some plans can be purchased only a limited number of times by a single site visitor or member based on the value of the plan's purchaseLimitations property.

If the plan is updated, the limit is checked by the current plan details. For example, let's assume a plan's purchase limit was initially set to 1 and a site visitor or member purchased the plan. If later the limit is updated to 2, they can still purchase the same plan a second time.

Plan expiration

A plan can be active for specified periods of time from the date of purchase. The active period is established in the same intervals as the payment periods (weeks, months, years). Plans can also be defined so they never expire (meaning, the plan continues indefinitely until the member cancels). This is true for both one-time and recurring plans.

The slug property

Slugs are used to support dynamic pages.

A slug is generated on a plan's creation and is updated when a plan's name is updated. For example, if the plan's name is "Test Plan," the generated slug is "test-plan." If a plan already exists with a slug "test-plan" for the site, a number is appended to it. The slug becomes "test-plan-1".

Before you begin

It's important to note the following point before starting to code:

Terminology

  • Plan: A membership plan or package, offering bundles of features or “perks.”

    • A free plan can be purchased free of charge.
    • A one-time plan can be purchased with a single payment.
    • A recurring plan charges the customer on a weekly, monthly, or yearly basis for a selected duration of time.
  • Primary plans: Plans that are labeled with a ribbon that is customizable on a site.

  • Archived plans: Plans that can no longer be purchased or edited, but existing plan holders can still enjoy purchased membership and continue to be charged until canceled or expired.

  • Hidden plans: Plans that are not currently visible to customers. Hidden plans may still be sold manually to customers.

  • Free trial: A feature allowing for the trying out of the perks of the plan for a selected amount of days before the first charge. Relevant for recurring plans.

  • Plan Policy: The definition of terms and conditions for the customer. A plan's policy can be displayed on a site's checkout page.

Did this help?

Plans: Sample Use Case & Flow

This article shares a possible use case you could support, as well as a sample flow that could support the use case. This can be a helpful jumping off point as you plan your implementation.

Sync available pricing plans to an external system

Wix users can keep their external platform up to date with the pricing plans they offer. For example, when a site owner adds a new pricing plan to a Wix site, the external platform will have the new plan available for purchase.

Use this flow to implement a sync from a Wix site to an external system:

  1. Create a mapping from pricing plans to the plans stored on an external app using a common field, like name. Store this mapping on your app's server.
  2. Listen for any changes to which pricing plans are available with the Plan Created event and the Plan Archived event.
  3. When one of the events is triggered you receive the details of the pricing plan in createdEvent.entity if a plan was created or actionEvent.body.plan if a plan was archived.
  4. Use these pricing plan details to add the new plan to, or remove the archived plan from, your external app.
Did this help?

Plan Object


Information about the pricing plan.

Properties
idstringRead-onlyformat GUID

Plan ID.


namestringminLength 1maxLength 50

Plan name.


descriptionstringmaxLength 450

Plan description.


perksPerks

List of text strings that promote what is included with this plan. For example, "Plenty of parking" or "Free gift on your birthday."


pricingPricing

Plan price, payment schedule, and expiration.


publicboolean

Whether the plan is public (visible to site visitors and members).


archivedbooleanRead-only

Whether the plan is archived. Archived plans are not visible and can't be purchased anymore, but existing purchases remain in effect.


primarybooleanRead-only

Whether the plan is marked as primary.


hasOrdersbooleanRead-only

Whether the plan has any orders (including pending and unpaid orders).


createdDatestringRead-onlyformat date-time

Date plan was created.


updatedDatestringRead-onlyformat date-time

Date plan was last updated.


slugstringRead-onlyminLength 1format URL_SLUG

URL-friendly version of plan name. Unique across all plans in the same site.


maxPurchasesPerBuyerintegerminimum 0maximum 1format int32

Number of times the same buyer can purchase the plan. Currently limited to support:

  • Empty value or a value of 0, meaning no limitation.
  • Value of 1, meaning limited to 1 purchase per buyer.

allowFutureStartDateboolean

Whether the buyer can start the plan at a later date. Defaults to false.


buyerCanCancelboolean

Whether the buyer is allowed to cancel their plan. Defaults to false. If false, calling Request Cancellation returns an error.


termsAndConditionsstringmaxLength 3000

Any terms and conditions that apply to the plan. This information is displayed during checkout.


formIdstringformat GUID

ID of the form associated with the plan at checkout.

Learn more about forms.

Did this help?

GET

List Public Plans


Retrieves a list of up to 100 public pricing plans. Public plans are visible plans that are available to site visitors and can be purchased.

Permissions
Manage Bookings Services and Settings
Manage Orders
Read Orders
Read Pricing Plans
Manage Pricing Plans
Manage Portfolio
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/pricing-plans/v2/plans/public

Query Params
limitinteger

Number of items to list. Defaults to 75. See limits (SDK | REST).


offsetinteger

Number of items to skip. Defaults to 0. See paging (SDK |REST).


planIdsArray <string>

IDs of plans to list. Non-existent IDs are ignored and don't cause errors. You can specify a maximum of 100 IDs.

Response Object
plansArray <PublicPlan>

List of public pricing plans.


pagingMetadataPagingMetadata

Object containing paging-related data (such as the number of plans returned, the offset, and so on).

List Public Plans Example 1
Request
cURL
curl -X GET \ https://www.wixapis.com/pricing-plans/v2/plans/public?offset=15&limit=2 -H 'Authorization: <AUTH>'
Response
JSON
{ "plans": [ { "id": "31e40c78-...-980f-0bf8436307fb", "name": "VIP Monthly", "description": "", "perks": { "values": ["Free consulting", "Multi-user"] }, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "MONTH" }, "cycleCount": 3 }, "price": { "value": "23", "currency": "USD" } }, "primary": false, "createdDate": "2020-06-18T09:05:20.063Z", "updatedDate": "2021-02-09T09:21:47.649Z", "slug": "vip-monthly", "maxPurchasesPerBuyer": 1, "allowFutureStartDate": true, "buyerCanCancel": true, "termsAndConditions": "No sharing please." }, { "id": "31e40c78-...-980f-0bf8436307fb", "name": "Silver membership", "description": "", "perks": { "values": ["Free consulting", "Multi-user"] }, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "WEEK" }, "cycleCount": 12 }, "price": { "value": "10", "currency": "USD" } }, "primary": false, "createdDate": "2020-06-18T09:05:20.063Z", "updatedDate": "2021-02-09T09:21:47.649Z", "slug": "silver-membership", "maxPurchasesPerBuyer": 1, "allowFutureStartDate": true, "buyerCanCancel": true, "termsAndConditions": "No sharing please." } ] }
Did this help?

POST

Query Public Plans


Retrieves a list of up to 1,000 public pricing plans, given the provided pagination, sorting, and filtering (SDK | REST).

Permissions
Manage Bookings Services and Settings
Manage Orders
Read Orders
Read Pricing Plans
Manage Pricing Plans
Manage Portfolio
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/pricing-plans/v2/plans/public/query

Body Params
queryQuery

Query options.

Response Object
plansArray <PublicPlan>

List of public pricing plans that match the specified query.


pagingMetadataPagingMetadata

Object containing paging-related data (such as the number of plans returned, the offset, and so on).

Query Public Plans Example 1
Request
cURL
curl -X POST \ https://www.wixapis.com/pricing-plans/v2/plans/public/query --data-binary '{ "query": { "paging" : { "offset": 0, "limit": 1 }, "sort": [ { "fieldName": "createdDate", "order": "DESC" } ], "filter": { "id": { "$ne": "ee187a1b-...-9f7a-936f2cd9d100" } } } }' -H 'Authorization: <AUTH>'
Response
JSON
{ "plans": [ { "id": "31e40c78-3ac0-443d-980f-0bf8436307fb", "name": "VIP Monthly", "description": "", "perks": { "values": ["Free consulting", "Multi-user"] }, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "MONTH" }, "cycleCount": 3 }, "price": { "value": "23", "currency": "USD" } }, "primary": false, "createdDate": "2020-06-18T09:05:20.063Z", "updatedDate": "2021-02-09T09:21:47.649Z", "slug": "vip-monthly", "maxPurchasesPerBuyer": 1, "allowFutureStartDate": true, "buyerCanCancel": true, "termsAndConditions": "No sharing please." } ] }
Did this help?

GET

Get Plan


Retrieves a pricing plan by ID.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Pricing Plans
Read Pricing Plans
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/pricing-plans/v2/plans/{id}

Path Params
idstringRequired

Plan ID.

Response Object
planPlan

Pricing plan.

Get Plan Example 1
Request
cURL
curl -X GET \ https://www.wixapis.com/pricing-plans/v2/plans/ee187a1b-...-9f7a-936f2cd9d100 -H 'Authorization: <AUTH>'
Response
JSON
{ "plan": { "id": "ee187a1b-...-9f7a-936f2cd9d100", "name": "VIP monthly", "description": "", "perks": { "values": ["Free consulting", "Multi-user"] }, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "MONTH" }, "cycleCount": 3 }, "price": { "value": "23", "currency": "USD" } }, "public": true, "archived": false, "primary": false, "hasOrders": true, "createdDate": "2021-01-10T09:05:20.063Z", "updatedDate": "2021-02-09T09:21:47.649Z", "slug": "vip-monthly", "maxPurchasesPerBuyer": 1, "allowFutureStartDate": true, "buyerCanCancel": true, "termsAndConditions": "No sharing please." } }
Did this help?

GET

List Plans


Retrieves a list of up to 100 pricing plans (including public, hidden, and archived plans).

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Pricing Plans
Read Pricing Plans
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/pricing-plans/v2/plans

Query Params
archivedstring

Archived filter. Defaults to ACTIVE (not archived) only.


publicstring

Visibility filter. Defaults to PUBLIC_AND_HIDDEN (meaning, both are listed).


limitinteger

Number of pricing plans to list. Defaults to 75.


offsetinteger

Number of pricing plans to skip. Defaults to 0.


planIdsArray <string>

IDs of plans to list. If non-existent IDs are specified, they are ignored and don't cause errors. If no IDs are specified, all public and hidden plans are listed according to the order displayed in a site's dashboard (which you can set with Arrange Plans). You can specify a maximum of 100 IDs.

Response Object
plansArray <Plan>

List of all public and hidden pricing plans.


pagingMetadataPagingMetadata

Object containing paging-related data (such as the number of plans returned, the offset, and so on).

List Plans Example 1
Request
cURL
curl -X GET \ https://www.wixapis.com/pricing-plans/v2/plans?planIds=e9e1d210-...-b6e8-92e56705b937&planIds=2cb7396c-...-bb2e-cb27ac741d78&offset=1&archived=ACTIVE -H 'Authorization: <AUTH>'
Response
JSON
{ "plans": [ { "id": "e9e1d210-...-b6e8-92e56705b937", "name": "VIP monthly", "description": "", "perks": { "values": ["Free consulting", "Multi-user"] }, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "MONTH" }, "cycleCount": 3 }, "price": { "value": "23", "currency": "USD" } }, "public": true, "archived": false, "primary": false, "hasOrders": true, "createdDate": "2021-01-10T09:05:20.063Z", "updatedDate": "2021-02-09T09:21:47.649Z", "slug": "vip-monthly", "maxPurchasesPerBuyer": 1, "allowFutureStartDate": true, "buyerCanCancel": true, "termsAndConditions": "No sharing please." }, { "id": "2cb7396c-...-bb2e-cb27ac741d78", "name": "Silver membership", "description": "", "perks": { "values": ["Free consulting", "Multi-user"] }, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "WEEK" }, "cycleCount": 12 }, "price": { "value": "10", "currency": "USD" } }, "public": true, "archived": false, "primary": false, "hasOrders": true, "createdDate": "2021-01-10T09:05:20.063Z", "updatedDate": "2021-02-09T09:21:47.649Z", "slug": "silver-membership", "maxPurchasesPerBuyer": 1, "allowFutureStartDate": true, "buyerCanCancel": true, "termsAndConditions": "No sharing please." } ] }
Did this help?

POST

Create Plan


Creates a pricing plan. The specified plan object must contain a pricing model. A pricing model can be 1 of the following:

  • A subscription: A subscription with recurring payments and how often the plan occurs. Subscriptions can have free trial days.
  • A plan that doesn't renew: A single payment for a specific duration that doesn't renew.
  • An unlimited plan: A single payment for an unlimited amount of time (until canceled). Pricing plans are available to the Wix user in the Pricing Plans section in a site's dashboard.
Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Pricing Plans
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/pricing-plans/v2/plans

Body Params
planPlanRequired

Plan details.

Response Object
planPlan

Created plan.

Create Plan Example 1
Request
cURL
curl -X POST \ https://www.wixapis.com/pricing-plans/v2/plans --data-binary '{ "plan": { "name": "VIP monthly", "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "MONTH" } "cycleCount": 3 }, "price": { "value": "23", "currency": "USD" } } } }' -H 'Authorization: <AUTH>'
Response
JSON
{ "plan": { "id": "31e40c78-...-0bf8436307fb", "name": "VIP monthly", "description": "", "perks": { "values": ["Free consulting", "Multi-user"] }, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "MONTH" }, "cycleCount": 3 }, "price": { "value": "23", "currency": "USD" } }, "public": true, "archived": false, "primary": false, "hasOrders": true, "createdDate": "2021-01-10T09:05:20.063Z", "updatedDate": "2021-01-10T09:05:20.063Z", "slug": "vip-monthly", "maxPurchasesPerBuyer": 1, "allowFutureStartDate": true, "buyerCanCancel": true, "termsAndConditions": "No sharing please." } }
Event TriggersThis method triggers the following events:
Did this help?

GET

Get Plan Stats


Gets statistics about the pricing plans. Currently provides only the total number of pricing plans, including archived plans.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Pricing Plans
Read Pricing Plans
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/pricing-plans/v2/plans/stats

Request
This endpoint does not take any parameters.
Response Object
totalPlansinteger

Total number of plans created, including active plans (both public and hidden) and archived plans.

Get Plan Stats Example 1
Request
cURL
curl -X GET \ https://www.wixapis.com/pricing-plans/v2/plans/stats -H 'Authorization: <AUTH>'
Response
JSON
{ "totalPlans": 80 }
Did this help?

PATCH

Update Plan


Updates a pricing plan. Updating a plan doesn't impact existing orders made for the plan. All orders keep the details of the original plan that was active at the time of purchase.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Pricing Plans
Learn more about app permissions.
Endpoint
PATCH
https://www.wixapis.com/pricing-plans/v2/plans/{plan.id}

Path Params
plan.idstringRequired

Plan ID.

Body Params
planPlanRequired

ID of the plan to update.

Response Object
planPlan

Updated plan.

Update Plan Example 1
Request
cURL
curl -X PATCH \ https://www.wixapis.com/pricing-plans/v2/plans/31e40c78-...-0bf8436307fb --data-binary '{ "plan": { "id": "31e40c78-...-0bf8436307fb", "name": { "value": "VIP Monthly Updated" }, "archived": false, "primary": false } }' -H 'Authorization: <AUTH>'
Response
JSON
{ "plan": { "id": "31e40c78-...-0bf8436307fb", "name": "VIP Monthly Updated", "description": "", "perks": { "values": ["Free consulting", "Multi-user"] }, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "MONTH" }, "cycleCount": 3 }, "price": { "value": "23", "currency": "USD" } }, "public": true, "archived": false, "primary": false, "hasOrders": true, "createdDate": "2021-01-10T09:05:20.063Z", "updatedDate": "2021-02-09T09:21:47.649Z", "slug": "vip-monthly-updated", "maxPurchasesPerBuyer": 1, "allowFutureStartDate": true, "buyerCanCancel": true, "termsAndConditions": "No sharing please." } }
Event TriggersThis method triggers the following events:
Did this help?

PUT

Set Plan Visibility


Sets visibility for pricing plans. Visible plans are considered public plans. By default, pricing plans are public, meaning they are visible. Plans can be hidden so that site members and visitors can't choose them. As opposed to archiving, setting visibility can be reversed. This means that a public plan can be hidden, and a hidden plan can be made public (visible). (An archived plan always remains archived and can't be made active again.) Changing a plan’s visibility doesn't impact existing orders for the plan. All orders for hidden plans are still active and keep their perks.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Pricing Plans
Learn more about app permissions.
Endpoint
PUT
https://www.wixapis.com/pricing-plans/v2/plans/{id}/visibility

Path Params
idstringRequired

The ID of the plan to either display or hide on a site page.

Body Params
visiblebooleanRequired

Whether a plan is visible to members and site visitors. Updates the public field.

Response Object
planPlan

Pricing plan.

Set Plan Visibility Example 1
Request
cURL
curl -X PATCH \ https://www.wixapis.com/pricing-plans/v2/plans/890016b7-...-a545-681e7d28fc00/visibility --data-binary '{"visible": false}' -H 'Authorization: <AUTH>'
Response
JSON
{}
Did this help?

POST

Make Plan Primary


Marks a pricing plan as the primary pricing plan. When viewing pricing plans on a site, the primary plan is highlighted with a customizable ribbon. Only a single plan can be marked as a primary plan at any given time. If there is an existing plan marked as primary, calling Make Plan Primary causes the existing primary plan to lose its primary status.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Pricing Plans
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/pricing-plans/v2/plans/{id}/make-primary

Path Params
idstringRequired

Pricing plan ID.

Response Object
planPlan

Pricing plan.

Make Plan Primary Example 1
Request
cURL
curl -X POST \ https://www.wixapis.com/pricing-plans/v2/plans/e9e1d210-...-b6e8-92e56705b937/make-primary -H 'Authorization: <AUTH>'
Response
JSON
{ "plan": { "id": "e9e1d210-...-b6e8-92e56705b937", "name": "VIP monthly", "description": "", "perks": { "values": ["Free consulting", "Multi-user"] }, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "MONTH" }, "cycleCount": 3 }, "price": { "value": "23", "currency": "USD" } }, "public": true, "archived": false, "primary": true, "hasOrders": true, "createdDate": "2021-01-10T09:05:20.063Z", "updatedDate": "2021-02-09T09:21:47.649Z", "slug": "vip-monthly", "maxPurchasesPerBuyer": 1, "allowFutureStartDate": true, "buyerCanCancel": true, "termsAndConditions": "No sharing please." } }
Did this help?

POST

Clear Primary


Sets all pricing plans as not primary. When viewing pricing plans on a site, no plan is highlighted with a customizable ribbon.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Pricing Plans
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/pricing-plans/v2/plans/clear-primary

Request
This endpoint does not take any parameters.
Response Object
Returns an empty object.
Clear Primary Example 1
Request
cURL
curl -X POST \ https://www.wixapis.com/pricing-plans/v2/plans/clear-primary -H 'Authorization: <AUTH>'
Response
JSON
{}
Did this help?

POST

Archive Plan


Archives a single plan. When a plan is archived, it's no longer visible as a public plan that can be chosen by site members or visitors. This is because the plan's public property is automatically set to false. Archived plans can't be purchased or reactivated. Plan archiving doesn't impact existing orders made for the plan. All orders for the plan are still active and keep their perks, payment options, and terms. Wix users can see archived plans in a site's dashboard under Pricing Plans -> Archived Plans.

Note: An attempt to archive an already-archived plan throws an error.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Pricing Plans
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/pricing-plans/v2/plans/{id}/archive

Path Params
idstringRequired

ID of the active plan to archive.

Response Object
planPlan

Archived plan.

Archive Plan Example 1
Request
cURL
curl -X POST \ https://www.wixapis.com/pricing-plans/v2/plans/31e40c78-...-0bf8436307fb/archive -H 'Authorization: <AUTH>'
Response
JSON
{ "plan": { "id": "31e40c78-...-0bf8436307fb", "name": "VIP monthly", "description": "", "perks": { "values": ["Free consulting", "Multi-user"] }, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "MONTH" }, "cycleCount": 3 }, "price": { "value": "23", "currency": "USD" } }, "public": false, "archived": true, "primary": false, "hasOrders": true, "createdDate": "2021-01-10T09:05:20.063Z", "updatedDate": "2021-02-09T09:21:47.649Z", "slug": "vip-monthly", "maxPurchasesPerBuyer": 1, "allowFutureStartDate": true, "buyerCanCancel": true, "termsAndConditions": "No sharing please." } }
Event TriggersThis method triggers the following events:
Did this help?

Plan Buyer Can Cancel Updated


Triggered when a plan's buyerCanCancel field is updated.

Permissions
Manage Pricing Plans
Read Pricing Plans
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.pricing_plans.plan.


slugstring

Event name. Expected buyer_can_cancel_updated.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.pricing_plans.plan_buyer_can_cancel_updated", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

PlanBuyerCanCancelUpdated
JSON
{ "plan": { "id": "e12bef18-1094-4ad5-b38b-86bfdabab27e", "name": "Forever", "description": "", "perks": { "values": [] }, "pricing": { "singlePaymentUnlimited": true, "price": { "value": "330", "currency": "USD" }, "feeConfigs": [] }, "public": true, "archived": false, "primary": false, "hasOrders": false, "createdDate": "2022-06-02T13:08:40.458Z", "updatedDate": "2024-11-12T10:28:06.689Z", "slug": "forever", "maxPurchasesPerBuyer": 0, "allowFutureStartDate": false, "buyerCanCancel": false, "termsAndConditions": "" } }
Did this help?

Plan Created


Triggered when a pricing plan is created.

Permissions
Manage Pricing Plans
Read Pricing Plans
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.pricing_plans.plan.


slugstring

Event name. Expected created.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


createdEventCreatedEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.pricing_plans.plan_created", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

PlanCreated
JSON
//Subscription (i.e. recurring payment) plan archived: { "id": "68117b5d-ddc7-4b7c-bb8f-ee8ffeb6ae06", "entityFqdn": "wix.pricing_plans.plan", "slug": "created", "entityId": "b5d4d289-394c-464d-8133-41891a413f0f", "createdEvent": { "entityAsJson": { "id": "b5d4d289-394c-464d-8133-41891a413f0f", "name": "Advanced plan", "description": "", "perks": {}, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "MONTH" }, "cycleCount": 3 }, "price": { "value": "45", "currency": "USD" }, "freeTrialDays": 7 }, "public": true, "createdDate": "2021-01-05T15:37:43.437Z", "updatedDate": "2021-01-05T15:37:43.437Z", "slug": "advanced-plan", "allowFutureStartDate": false, "buyerCanCancel": true, "termsAndConditions": "" } }, "eventTime": "2021-01-05T15:37:43.544020Z", "triggeredByAnonymizeRequest": false } //Pricing for single payment plan with duration: { "pricing": { "singlePaymentForDuration": { "count": 3, "unit": "MONTH" }, "price": { "value": "23", "currency": "USD" } } } //Pricing for single payment unlimited duration plan (i.e. valid until canceled): { "pricing": { "singlePaymentUnlimited": true, "price": { "value": "47", "currency": "USD" } } }
Did this help?

Plan Archived


Triggered when a pricing plan is archived.

Permissions
Manage Pricing Plans
Read Pricing Plans
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.pricing_plans.plan.


slugstring

Event name. Expected plan_archived.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.pricing_plans.plan_plan_archived", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

PlanArchived
JSON
//Subscription (i.e. recurring payment) plan archived: { "id": "5748fa2d-5b8f-4f0e-b7c1-8fd0d800cb0b", "entityFqdn": "wix.pricing_plans.plan", "slug": "plan_archived", "entityId": "b5d4d289-394c-464d-8133-41891a413f0f", "actionEvent": { "bodyAsJson": { "plan": { "id": "b5d4d289-394c-464d-8133-41891a413f0f", "name": "Advanced plan", "description": "", "perks": {}, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "WEEK" }, "cycleCount": 2 }, "price": { "value": "45", "currency": "USD" }, "freeTrialDays": 7 }, "public": false, "archived": true, "hasOrders": true, "createdDate": "2020-06-03T11:06:38.950Z", "updatedDate": "2021-01-05T15:36:56.162Z", "slug": "advanced-plan", "allowFutureStartDate": false, "buyerCanCancel": true, "termsAndConditions": "" } } }, "eventTime": "2021-01-05T15:36:56.289502Z", "triggeredByAnonymizeRequest": false } //Pricing for single payment plan with duration { "pricing": { "singlePaymentForDuration": { "count": 3, "unit": "MONTH" }, "price": { "value": "23", "currency": "USD" } } } //Pricing for single payment unlimited duration plan (i.e. valid until canceled): { "pricing": { "singlePaymentUnlimited": true, "price": { "value": "47", "currency": "USD" } } }
Did this help?

Plan Updated


Triggered when a pricing plan is updated.

Permissions
Manage Pricing Plans
Read Pricing Plans
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.pricing_plans.plan.


slugstring

Event name. Expected updated.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


updatedEventUpdatedEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.pricing_plans.plan_updated", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

PlanUpdated
JSON
//Subscription (i.e. recurring payment) plan archived: { "id": "e110a720-2c62-4e40-8b75-269d98b4bdec", "entityFqdn": "wix.pricing_plans.plan", "slug": "updated", "entityId": "b5d4d289-394c-464d-8133-41891a413f0f", "updatedEvent": { "currentEntityAsJson": { "id": "b5d4d289-394c-464d-8133-41891a413f0f", "name": "Advanced plan", "description": "", "perks": {}, "pricing": { "subscription": { "cycleDuration": { "count": 1, "unit": "WEEK" }, "cycleCount": 2 }, "price": { "value": "45", "currency": "USD" }, "freeTrialDays": 7 }, "public": false, "archived": true, "hasOrders": true, "createdDate": "2020-06-03T11:06:38.950Z", "updatedDate": "2021-01-05T15:36:56.162Z", "slug": "advanced-plan", "allowFutureStartDate": false, "buyerCanCancel": true, "termsAndConditions": "" } }, "eventTime": "2021-01-05T15:36:56.209579Z", "triggeredByAnonymizeRequest": false } //Pricing for single payment plan with duration: { "pricing": { "singlePaymentForDuration": { "count": 3, "unit": "MONTH" }, "price": { "value": "23", "currency": "USD" } } } //Pricing for single payment unlimited duration plan (i.e. valid until canceled): { "pricing": { "singlePaymentUnlimited": true, "price": { "value": "47", "currency": "USD" } } }
Did this help?