--- title: New retail cash management capabilities - Shopify developer changelog description: >- Shopify’s developer changelog documents all changes to Shopify’s platform. Find the latest news and learn about new platform opportunities. source_url: html: 'https://shopify.dev/changelog/new-retail-cash-management-capabilities' md: 'https://shopify.dev/changelog/new-retail-cash-management-capabilities.md' metadata: effectiveApiVersion: 2026-04 affectedApi: - displayName: Admin GraphQL API handle: admin-graphql - displayName: POS Extensions handle: pos-extensions primaryTag: displayName: API handle: api secondaryTag: displayName: New handle: new indicatesActionRequired: false createdAt: '2026-03-11T10:11:14-04:00' postedAt: '2026-04-02T09:00:00-04:00' updatedAt: '2026-04-01T15:19:01-04:00' effectiveAt: '2026-03-16T12:00:00-04:00' --- April 2, 2026 Tags: * Admin GraphQL API * POS Extensions * 2026-04 # New retail cash management capabilities We've rebuilt cash management on Shopify POS from the ground up. The new Admin GraphQL APIs and POS UI extension targets open up cash management data and controls to app developers, enabling custom cash management workflows that were previously impossible to build on Shopify POS. ## What's new ### Cash Drawers [`CashDrawer`](https://shopify.dev/docs/api/admin-graphql/2026-04/objects/CashDrawer) is a new resource that decouples cash management from individual POS devices. A cash drawer represents a physical cash storage unit at a location. Multiple devices can connect to a single drawer, enabling flexible store setups. | Resource | Description | | - | - | | [`cashDrawers`](https://shopify.dev/docs/api/admin-graphql/2026-04/queries/cashDrawers) | Query all drawers across locations, including balances and activities. Query connected devices via the `pointOfSaleDevices` connection | | [`cashDrawerCreate`](https://shopify.dev/docs/api/admin-graphql/2026-04/mutations/cashDrawerCreate) | Create a new named cash drawer at a location | | [`pointOfSaleDeviceAssignToCashDrawer`](https://shopify.dev/docs/api/admin-graphql/2026-04/mutations/pointOfSaleDeviceAssignToCashDrawer) | Assign a POS device to a cash drawer, establishing the device-to-drawer relationship | ### Payment sessions [`PointOfSaleDevicePaymentSession`](https://shopify.dev/docs/api/admin-graphql/2026-04/objects/PointOfSaleDevicePaymentSession) replaces [`CashTrackingSession`](https://shopify.dev/docs/api/admin-graphql/2026-04/objects/CashTrackingSession) as the primary resource for cash sessions. A payment session represents a period when a cash drawer is actively in use , typically one shift or one business day, and tracks all cash movements from open to close. | Resource | Description | | - | - | | [`pointOfSaleDevicePaymentSessions`](https://shopify.dev/docs/api/admin-graphql/2026-04/queries/pointOfSaleDevicePaymentSessions) | Query sessions, with filters for `status`, `opening_time`, and `closing_time` | | [`pointOfSaleDevicePaymentSessionOpen`](https://shopify.dev/docs/api/admin-graphql/2026-04/mutations/pointOfSaleDevicePaymentSessionOpen) | Open a new payment session | | [`pointOfSaleDevicePaymentSessionClose`](https://shopify.dev/docs/api/admin-graphql/2026-04/mutations/pointOfSaleDevicePaymentSessionClose) | Close sessions. The API will calculate expected balance and discrepancies | | [`pointOfSaleDevicePaymentSessionAdjust`](https://shopify.dev/docs/api/admin-graphql/2026-04/mutations/pointOfSaleDevicePaymentSessionAdjust) | Record a cash adjustment during an active session | Sessions now include financial summary fields for reconciliation: `totalCashSales`, `totalCashRefunds`, `netCashSales`, `totalAdjustments`, `totalDiscrepancy`, `totalSales`, `totalRefunds`, and `netSales`. #### Reason codes [`CashManagementCustomReasonCode`](https://shopify.dev/docs/api/admin-graphql/2026-04/objects/CashManagementCustomReasonCode) is a new resource that lets merchants categorize cash adjustments. Shopify provides a set of default codes, and merchants can create custom codes to match their operations. | Resource | Description | | - | - | | [`cashManagementReasonCodeCreate`](https://shopify.dev/docs/api/admin-graphql/2026-04/mutations/cashManagementReasonCodeCreate) | Create a custom reason code with a human-readable name and machine-readable code | | [`cashManagementReasonCodeDelete`](https://shopify.dev/docs/api/admin-graphql/2026-04/mutations/cashManagementReasonCodeDelete) | Delete a reason code | #### POS UI extensions New extension targets and APIs give developers the ability to build custom experiences directly on POS cash management surfaces: | Resource | Description | | - | - | | Register details block and action targets | Render custom UI on the register screen (available in API version `2026-04`) | | Cash Drawer API | A new platform API accessible from POS UI extensions for interaction with the cash drawer | | `deviceId` on Session API | Extensions can now read the current POS device ID to fetch the corresponding [`PointOfSaleDevice`](https://shopify.dev/docs/api/admin-graphql/2026-04/objects/PointOfSaleDevice) data via the Admin API | ### Learn more * [Cash Drawer API (POS UI extensions)](https://shopify.dev/docs/api/pos-ui-extensions/latest/target-apis/platform-apis/cash-drawer-api) * [POS UI extensions targets](https://shopify.dev/docs/api/pos-ui-extensions/latest/targets)