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

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://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_ids must be an existing location inside your own account tree; otherwise 422.

Rate limit

This endpoint has no rate limit.

Request parameters

None.

Request body

FieldTypeRequiredDescription
store_idsarray of integersYesThe locations whose plans to cancel.
cancelling_reasonstringYesOne 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_otherstringNoMore 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.

FieldTypeDescription
statusstringsuccess.
responsestringSubscription 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!"
  }
}
StatusMeaning
200The plans are cancelled for those locations.
401The token is missing, expired or invalid.
403You aren't the one who pays for these locations (Permission denied).
422The request failed validation: store_ids missing or outside your tree, or an invalid reason.
500None 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}'

Did this page help you?