Cancel a plan (selected locations)
Overview
End the plan for selected locations under an account, leaving the rest running.
Use this when specific locations close but the account continues.
You'll need the store_ids.
The plans close immediately for those locations (plan_end is set to now), and review collection and posting stop for them. Your account team is notified.
Prerequisites
- A Partner or Account token. See Authentication.
- The locations' ids (
store_ids).
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
POST /api/v1/account/cancel-store-subscriptions
Authentication
Partner or Account token
- The caller must be the one who pays: a partner that pays for its locations, or an account that pays for its own. Any other caller gets
403. - Every id in
store_idsmust be an existing location inside your own account tree; otherwise422.
Rate limit
This endpoint has no rate limit.
Request parameters
None.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
store_ids | array of integers | Yes | The locations whose plans to cancel. |
cancelling_reason | string | Yes | 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 | No | More detail, e.g. with Other. Max 255 characters. |
Request payload
{
"store_ids": [3008],
"cancelling_reason": "Price too high",
"cancelling_reason_other": null
}Response body
The payload is inside data.
| Field | Type | Description |
|---|---|---|
status | string | success. |
response | string | Subscription has been cancelled successfully |
Response payload
{
"data": {
"status": "success",
"response": "Subscription has been cancelled successfully"
}
}Examples
Success payload
See Response payload.
Error payload
403 Permission denied
You aren't the one who pays for these locations.
{
"message": "Forbidden",
"status": "error",
"errors": "Permission denied"
}422 Invalid locations or reason
{
"message": "The selected cancelling reason is invalid. (and 1 more error)",
"errors": {
"cancelling_reason": ["The selected cancelling reason is invalid."],
"store_ids.0": ["The selected store_ids.0 does not belong to your company hierarchy."]
}
}500 No matching location
None of the store_ids is an active or pending location in your scope.
{
"message": "Internal Server Error",
"status": "error",
"errors": {
"status": "error",
"response": "Something went wrong!"
}
}| Status | Meaning |
|---|---|
200 | The plans are cancelled for those locations. |
401 | The token is missing, expired or invalid. |
403 | You aren't the one who pays for these locations (Permission denied). |
422 | The request failed validation: store_ids missing or outside your tree, or an invalid reason. |
500 | None of the locations is active or pending in your scope, or an unexpected server error. |
Example request
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/account/cancel-store-subscriptions" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"store_ids": [3008], "cancelling_reason": "Price too high", "cancelling_reason_other": null}'Updated 17 days ago
Did this page help you?
