Duplicate a QR design

Overview

Copy a design.

Use this to make a variant.

You'll need the template id (id in List QR designs).

The copy is named Copy of <name> (with (1), (2) and so on added when that name is already used at the location) and counts towards the location's plan allowance for QR codes, like a new design: 402 when the plan doesn't include QR codes or the allowance is used up.

Returns the new design.

Prerequisites

Base URL

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

Endpoint

POST /api/v1/qr-codes/template/{templateId}/duplicate

Authentication

Account token

  • The design must have been created under your token's account; otherwise 404.
🚧

QR codes belong to the account that created them, and every QR endpoint matches on that account exactly; it doesn't walk the partner tree. A Partner token sees nothing, even for a location inside the partner's own tree: list endpoints return an empty result, and single-record endpoints return 404 QR code not found. The 404 means "not visible to this token", not "this QR code doesn't exist". Use an Account token for every endpoint in this section.

Rate limit

This endpoint has no rate limit.

Request parameters

ParameterInTypeRequiredDescription
templateIdpathintegerYesThe id of the design to copy (id in List QR designs). Digits only.

Request body

None.

Request payload

None.

Response body

The payload is inside data.

FieldTypeDescription
statusstringsuccess.
dataobjectThe new design.
data.namestringThe design's name.
data.store_idintegerThe location the design is for.
data.company_idintegerThe account that owns the design.
data.template_typestringstandard, hangtag or custom.
data.design_htmlstring or nullMarkup for the front of the design.
data.design_settingsobject or nullSettings for the front of the design.
data.design_html_backstring or nullMarkup for the back of the design.
data.design_settings_backobject or nullSettings for the back of the design.
data.qr_code_idinteger or nullThe QR code the design is for, or null.
data.updated_atstringWhen the design was last changed (ISO 8601).
data.created_atstringWhen the design was created (ISO 8601).
data.idintegerThe design's id. Use it as templateId.
data.unique_codestringThe design's encoded id.
messagestringQR code template duplicated successfully

Response payload

{
  "data": {
    "status": "success",
    "data": {
      "name": "Copy of Default QR Code Template",
      "store_id": 3008,
      "company_id": 5994,
      "template_type": "standard",
      "design_html": null,
      "design_settings": {
        "logo": null,
        "title": "QR Code",
        "caption": "Scan the QR code to leave us a quick review.",
        "hideLogo": false,
        "subtitle": "Scan the QR code to learn more",
        "logoWidth": 150,
        "textColor": "#000000",
        "hideQrText": false,
        "titleColor": "#438bc7",
        "borderColor": "#ffffff",
        "logoBgColor": "#FFFFFF",
        "subtitleColor": "#000000",
        "backSameAsFront": true,
        "backgroundColor": "#e1ecf5",
        "dashedBorderColor": "#ffffff",
        "contentBackgroundColor": "#f6fafd",
        "hangTagBackgroundColor": "#336997"
      },
      "design_html_back": null,
      "design_settings_back": null,
      "qr_code_id": 2964,
      "updated_at": "2026-10-01T10:20:00.000000Z",
      "created_at": "2026-10-01T10:20:00.000000Z",
      "id": 3120,
      "unique_code": "w5jtbe"
    },
    "message": "QR code template duplicated successfully"
  }
}

Examples

Success payload

See Response payload.

Error payload

402 QR code allowance used up

{
  "status": "error",
  "message": "Limit reached for 'QR Codes': 5 of 5 units consumed this period.",
  "feature": "review_qr_code",
  "remaining": 0,
  "hard_stop": true
}

404 Not found

{
  "message": "QR code template not found",
  "status": "error",
  "errors": []
}

422 Design doesn't exist

{
  "message": "The selected id is invalid.",
  "errors": {
    "id": [
      "The selected id is invalid."
    ]
  }
}
StatusMeaning
201The copy was created.
401The token is missing, expired or invalid.
402The location's plan doesn't include QR codes, or the allowance for this period is used up. The X-Feature, X-Feature-Remaining and X-Feature-Hard-Stop headers give the details.
404QR code template not found: the design wasn't created under your token's account, or has been deleted.
422No design has this id.
500Unexpected server error.

Example request

curl --request POST \
  --url "https://production-api.shoutaboutus.com/api/v1/qr-codes/template/2964/duplicate" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?