Edit account

Overview

Update an existing account company row plus its owner user/person and account company_options. override_locations accepts plan_id to cascade that field onto child stores. However, the current implementation only mirrors plan_id and does not cascade who_will_pay. stores_updated counts the child stores affected by the cascade.

Prerequisites

  • A bearer token. Callable with Partner tokens.
  • The brandId of the record you are targeting.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

POST /api/v1/partner/account/{brandId}/update

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.
  • Who can call it: Partner tokens.
  • Authentication is under partner/account.
  • Target resolved by path id.
  • Controller 404s if the row is missing or not bundle_id=3. It then walks getParentCompany(brand,'partner') and calls canManageBrand (super-admin, or the caller's partner == the account's partner) else 403.
  • owner_email uniqueness ignores the account's current owner user.

Rate limit

  • No rate limit.

Path parameters

ParameterTypeRequiredDescription
brandIdintegerRequiredDigits only.

Request body

  • Body (JSON):
FieldTypeRequiredDescription
namestring (max 100)yesNo angle brackets.
websitestring (url)no
billing_idstring (max 100)noNo angle brackets.
client_account_idstring (max 100)noNo angle brackets.
phonestring (9–15)no
addressstring (max 255)yesNo angle brackets.
city_idintegeryesMust be an existing city.
companyindustry_idintegeryesMust be an existing (active) industry. Required. The submitted value wins; a partner-level industry, when set, cascades and overrides this on save.
postal_codestring (3–12)yesNo angle brackets.
first_namestring (max 100)yesOwner first name.
last_namestring (max 100)noOwner last name.
owner_emailemail (rfc,dns)yesUnique, ignoring this account's current owner.
owner_phonestring (9–15)no
override_locationsarraynoCascade field list.
override_locations.*string in:plan_idnoOnly plan_id is an accepted value.
{
  "name": "Acme Brand",
  "website": "https://acmebrand.com",
  "billing_id": "BILL-001",
  "client_account_id": "ACC-001",
  "phone": "1234567890",
  "address": "123 Brand Street",
  "city_id": 1,
  "companyindustry_id": 123,
  "postal_code": "10001",
  "first_name": "John",
  "last_name": "Doe",
  "owner_email": "[email protected]",
  "owner_phone": "9876543210",
  "override_locations": [
    "plan_id"
  ]
}

Response

  • data.status (string) — success.
  • data.message (string) — Account has been updated successfully!.
  • accountId.label (string) — account name.
  • accountId.value (integer) — account company id.
  • data.stores_updated (integer) — count of child stores touched by the cascade.
  • data.overrides_applied (string[]) — the override field names received.

200 Success · 200

{
  "data": {
    "status": "success",
    "message": "Account has been updated successfully!",
    "accountId": { "label": "Acme Brand", "value": 42 },
    "stores_updated": 0,
    "overrides_applied": []
  }
}

403 Out of partner tree · 403

{
  "message": "Forbidden",
  "status": "error",
  "errors": "You do not have access to this account."
}

404 Account not found · 404

{
  "message": "Not Found",
  "status": "error",
  "errors": "Account not found."
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
403Out of partner tree
404Account not found
422The request failed validation — the response names the fields
500Unexpected server error

Example request

curl --request POST \
  --url "https://production-api.shoutaboutus.com/api/v1/partner/account/123/update" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"name": "Acme Brand", "website": "https://acmebrand.com", "billing_id": "BILL-001", "client_account_id": "ACC-001", "phone": "1234567890", "address": "123 Brand Street", "city_id": 1, "companyindustry_id": 123, "postal_code": "10001", "first_name": "John", "last_name": "Doe", "owner_email": "[email protected]", "owner_phone": "9876543210", "override_locations": ["plan_id"]}'

Did this page help you?