post
https://production-api.shoutaboutus.com/api/v1/account/cancel-store-subscriptions
Cancel the subscription for the specified stores. For each matched store it stamps every non-cancelled store_plans row with cancel_subscription_at + the cancelling reason (closing any non-closed plan and setting plan_end to now), then fires a storePlanCancelled billing webhook. No refund is issued — The endpoint bills the store to the cancellation date.
Auth
- Bearer partner (
bundle_id = 1,who_will_pay = partner) or account (bundle_id = 3,who_will_pay = brand) token; any other caller gets403. Stores are further constrained to the caller's own partner/account sub-tree AND tostore_idsin the caller's hierarchy (an ownership check).
Rate limit
- No rate limit.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
store_ids | integer[] | Required | Non-empty array. |
store_ids.* | integer | Required | Must be an existing location and in caller's hierarchy (an ownership check). |
cancelling_reason | string | Required | One of: Price too high, Response quality not good enough, Another solution in place, Prefer to respond myself, Do not get enough reviews to justify it, Responses are not important to our business, Other. |
cancelling_reason_other | string | Optional | max:255. Free-text detail (typically used with Other). |
Behaviour
200—{ data: { status: 'success', response: 'Subscription has been cancelled successfully' } }.403— caller is not a paying partner/account ('Permission denied').422— validation failure (missing store_ids, bad reason, out-of-scope store).500— no matching active/pending store found for the given ids in the caller's scope.
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
