Update QR code

Overview

Partially updates a QR code belonging to the authenticated account-user. All fields are optional (only sent fields are applied via fill(validated)); when any destination-related field changes the QR image is regenerated. Requires the store's active plan to still have a review-solicitation feature enabled.

Prerequisites

  • A bearer token. Callable with Account tokens.
  • The qrCodeId of the record you are targeting.

Base URL

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

Endpoint

PUT /api/v1/qr-codes/{qrCodeId}

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.

  • Who can call it: Account tokens.

  • Authentication (404 if outside the account company).

  • Also enforces an active StorePlan whose plan has review_solicitation_email or review_solicitation_sms feature enabled = 1, else HTTP 400.

Rate limit

  • No rate limit.

Path parameters

ParameterTypeRequiredDescription
qrCodeIdintegerRequiredDigits only.

Request body

  • Body:
FieldTypeRequiredDescription
namestringsometimesmax 255; unique on the QR code's name ignoring the current id
destination_typestringsometimesone of landing_page, review_site, custom_url
landing_page_idintegerconditionalrequired_if:destination_type,landing_page; must Must be an existing landing-page template; else nullable
review_site_idintegerconditionalrequired_if:destination_type,review_site; must Must be an existing review site; else nullable
destination_urlstringconditionalrequired_if:destination_type,custom_url; else nullable
customizationobjectoptionalNullable JSON object.
{
  "name": "Front desk",
  "destination_type": "custom_url",
  "destination_url": "https://example.com/promo"
}

Response

  • data.status (string) — "success".
  • data.data (object) — updated QrCode with company:id,name, store:id,name, landingPage:id, reviewSite:id loaded and qr_code_image_url appended.
  • data.message (string) — "QR code updated successfully".

200 OK · 200

{
  "data": {
    "status": "success",
    "data": {
      "id": 200,
      "name": "Front desk",
      "destination_type": "custom_url",
      "destination_url": "https://example.com/promo",
      "landing_page_id": null,
      "review_site_id": null,
      "qr_code_image_path": "qr-codes/abc.png",
      "qr_code_image_url": "https://s3.example.com/qr-codes/abc.png"
    },
    "message": "QR code updated successfully"
  }
}

Errors

StatusMeaning
400The store has no plan, or review solicitation is not enabled for it
401The bearer token is missing, expired or invalid
404Returned if outside the account company
422The request failed validation — the response names the fields
500Unexpected server error

Example request

curl --request PUT \
  --url "https://production-api.shoutaboutus.com/api/v1/qr-codes/123" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"name": "Front desk", "destination_type": "custom_url", "destination_url": "https://example.com/promo"}'

Did this page help you?