Unlocking Fiscal Compliance: New fiscalDeviceIdentifier Field on PointOfSaleDevice

Shopify’s 2026-10 API adds a fiscalDeviceIdentifier to PointOfSaleDevice, giving developers a reliable way to access a device’s tax‑registered identifier for in‑person fiscal workflows. Learn what changed, who it impacts, and how to implement it today.

Unlocking Fiscal Compliance: New fiscalDeviceIdentifier Field on PointOfSaleDevice
6 sections

If you build or maintain apps that interact with Shopify POS, the newest GraphQL Admin API change is a game‑changer. Starting with the 2026-10 version, the PointOfSaleDevice object now exposes a nullable fiscalDeviceIdentifier field. This field holds the Shopify‑assigned fiscal register identifier (the manufacturing number that merchants must register with local tax authorities, starting with Sweden). In this post we’ll break down what the update means, who needs to act, and exactly how to incorporate the new field into your code.

What Changed

The PointOfSaleDevice object—already a cornerstone for POS‑related queries—gains a new, nullable string field called fiscalDeviceIdentifier. When a device is located in a country with mandatory cash‑register registration (Sweden is the first), the API returns the manufacturer’s serial number that the merchant registers with the tax agency (e.g., Sweden’s tillverkningsnummer). For all other locations, the field returns null. The field is stable for the lifetime of the device’s registration, meaning you can safely cache it.

Who Is Affected

The update is relevant only for apps that support in‑person fiscal compliance workflows—think fiscal transaction signing, journal reporting, or any feature that needs to prove a sale was processed on a registered cash register. If your app simply displays POS data, manages inventory, or runs marketing automations, you can ignore the change. Merchants themselves won’t notice anything new in the UI; the impact is purely on the data layer your app consumes.

How to Query the New Field

Using the 2026-10 GraphQL Admin API version, pull the identifier with a straightforward query:

graphql

query {

pointOfSaleDevice(id: "gid://shopify/PointOfSaleDevice/123") {

fiscalDeviceIdentifier

}

}

If the device belongs to a Swedish location (or any future supported country), the response will contain the fiscal identifier; otherwise you’ll receive null. Remember to request the 2026-10 version explicitly or set your app’s API version to the latest to avoid older schemas that lack the field.

Integrating with POS UI Extensions

POS UI Extensions can now discover the device they’re running on via the session object. Starting with the 2026-04 POS UI Extensions API, you have access to session.deviceId. Combine this ID with the GraphQL query above to retrieve the fiscal identifier for the exact terminal the merchant is using.

javascript

// Example in a POS UI Extension

import { useExtensionApi } from '@shopify/pos-ui-extensions';

const {session} = useExtensionApi();

const deviceId = session.deviceId; // e.g. "gid://shopify/PointOfSaleDevice/456"

await fetch('/admin/api/2026-10/graphql.json', {

method: 'POST',

headers: {'Content-Type': 'application/json', 'X-Shopify-Access-Token': token},

body: JSON.stringify({

query: query GetFiscalId($id: ID!) {\n pointOfSaleDevice(id: $id) {\n fiscalDeviceIdentifier\n }\n},

variables: {id: deviceId}

})

});

The returned identifier can then be stored in your extension’s local state or sent to your backend for journal generation, digital signing, or any compliance‑related logic you implement.

Practical Implementation Tips

  • Cache the value per device – Because the identifier is immutable for the device’s registration period, cache it in memory or a short‑term store (Redis, in‑app DB). This reduces API calls and speeds up compliance workflows.
  • Graceful fallback – Always code for a null response. Your app should continue to function for devices in unsupported regions, perhaps showing a message like “Fiscal identifier not required for this location.”
  • Version pinning – If you rely on the field, lock your app to the 2026-10 (or later) API version. Upgrading later versions will retain the field, but older versions will silently omit it.
  • Testing – Use a development store with a Swedish POS location to verify the field returns a non‑null value. Shopify’s GraphQL Explorer is handy for quick checks.
  • Security – Treat the identifier as sensitive as any other fiscal data. Do not expose it in client‑side logs or public URLs.
  • Conclusion & Next Steps

    The new fiscalDeviceIdentifier field equips developers with the exact piece of data needed for modern, tax‑compliant POS solutions. By adding a few lines of GraphQL and leveraging the session.deviceId in POS UI Extensions, you can future‑proof your app for Sweden and any additional countries Shopify adds next.

    Ready to get compliant? Update your app’s API version, add the query, and start caching the identifier today. Need help or have questions? Drop a comment below or reach out to our developer support team—let’s make fiscal compliance seamless for every Shopify merchant.

    Tags
    Sources

    Related Articles

    Orders Webhooks Now Deliver Subscription Selling Plan IDs Directly

    Orders Webhooks Now Deliver Subscription Selling Plan IDs Directly

    Shopify’s latest webhook update adds a selling_plan_id field to order line items, letting developers identify subscription plans without extra API calls. Learn what changed, who it impacts, and how to adapt your apps today.

    October 1, 20263 min
    Why metafieldInteger Is Gone: Migrating to metafieldInt in API 2027‑01

    Why metafieldInteger Is Gone: Migrating to metafieldInt in API 2027‑01

    Shopify’s 2027‑01 API drops the metafieldInteger collection condition in favor of metafieldInt. Learn what changed, who’s affected, and step‑by‑step how to update your queries, mutations, and value types before the upgrade.

    October 1, 20264 min
    Unlocking Rollout Visibility: New Admin GraphQL Queries and Webhooks for Shopify Apps

    Unlocking Rollout Visibility: New Admin GraphQL Queries and Webhooks for Shopify Apps

    Shopify’s latest Developer Changelog introduces Rollout queries and webhooks in the Admin GraphQL API, letting apps discover, monitor, and react to coordinated launches, experiments, and temporary events. Learn what changed, who needs to act, and how to integrate the new capabilities today.

    October 1, 20264 min
    How Discount Rollouts Change Your Shopify Discount Strategy

    How Discount Rollouts Change Your Shopify Discount Strategy

    Shopify’s 2026‑10 API now lets merchants bundle discounts into Rollouts, giving you granular control over launch timing, buyer allocation, and channel availability. Learn what changed, who is affected, and how to update your apps and stores to take full advantage.

    October 1, 20264 min