{"title":"Change a setting on one register only","slug":"pos-per-register-settings","url":"https://support.storeconnect.com/articles/pos-per-register-settings","url_markdown":"https://support.storeconnect.com/articles/pos-per-register-settings.md","subtitle":null,"summary":"Give one register a different value for a setting than the rest of the store, using POS buttons that run the settings:update and settings:reset actions. Lists the settings that can differ per register and how the store variable takes priority, with turning cash off on one register as the example.","type":"Help_Documentation","video_url":"","keywords":"per-register settings, register override, settings:update, settings:reset, register-level setting, cash on off, pos.payment_options.cash.enabled, store variable lock, POS action item, service desk","last_modified":"2026-10-30T04:39:41+0000","body_markdown":"Most POS settings apply to every register in the store. A per-register setting lets one register use a different value, such as a service desk that takes card only while the main counter takes cash.\n\nA register gets its own value when an operator taps a button that runs the `settings:update` action. There is no settings screen for this, so a store administrator adds the buttons in Salesforce first.\n\n## Settings you can change per register\n\n| Setting | Store variable key | Values | Default |\n|---|---|---|---|\n| Accept cash at checkout and as a refund destination | `pos.payment_options.cash.enabled` | `true` or `false` | `true` |\n\nEvery other setting applies to the whole store. Each setting is addressed by the store variable key, the same key described in [POS payment methods](pos-payment-methods).\n\n## How the register's value is chosen\n\nThe store variable takes priority. When it is set, every register follows it and ignores any value of its own.\n\n| Store variable | Register's own value | The register uses |\n|---|---|---|\n| Set | Set or not set | The store variable |\n| Not set | Set | The register's own value |\n| Not set | Not set | The setting's default |\n\nThe register keeps its own value on the device until a `settings:reset` button clears it. If the store variable is set later, the store variable takes priority, and the register's own value applies again if the store variable is removed.\n\n## Before you start\n\n- Make sure the store variable for the setting is not set on the store. While it is set, the register refuses `settings:update`. See [store variables](store-variables).\n- Choose the action group where the button should appear. See [POS action groups](pos-action-groups).\n\n## Add a button that changes the setting\n\nThis example adds a button that turns cash off on the register where an operator taps it.\n\n1.  Open the **POS Action Items** list.\n2.  Click **New**.\n3.  Set **Name** to a label the operator understands, such as `Turn off cash on this register`.\n4.  Set **Type** to `action`.\n5.  Set **Action** to `settings:update`.\n6.  Set **Params** to `key=pos.payment_options.cash.enabled;value=false`.\n7.  Set **Parent Action Group** to the group where the button should appear.\n8.  Save the record.\n9.  Sync the register. See [manage POS data sync](manage-pos-data-sync).\n10. On the register, tap the button.\n\nTo turn cash back on, add a second button with **Params** set to `key=pos.payment_options.cash.enabled;value=true`.\n\nStart a sale on that register and go to checkout. **Cash** is not offered as a payment method, and other registers in the outlet still offer it.\n\n## Return a register to the store setting\n\nAdd a button that clears the register's own value, so the register follows the store variable, or the default when no store variable is set.\n\n1.  Open the **POS Action Items** list.\n2.  Click **New**.\n3.  Set **Name** to `Use the store's cash setting`.\n4.  Set **Type** to `action`.\n5.  Set **Action** to `settings:reset`.\n6.  Set **Params** to `key=pos.payment_options.cash.enabled`.\n7.  Set **Parent Action Group** to the group where the button should appear.\n8.  Save the record.\n9.  Sync the register.\n\nOn a register with no value of its own, tapping the button changes nothing. The button never changes the store variable or any other register.\n\n## Errors at the register\n\n| Message | Cause |\n|---|---|\n| Unable to update setting. Unknown setting key \"…\". | The key in **Params** is not in the table of per-register settings, for example because of a typo. `settings:reset` shows the same message, starting \"Unable to reset setting\". |\n| Unable to update setting. Invalid value \"…\" for \"…\". | The value in **Params** is not `true` or `false`. |\n| \"…\" is fixed by a store setting and cannot be changed for this register. | The store variable for the setting is set. Remove it from the store to allow per-register values. |"}