Cash Drawer and Payment Session API Enhancements

3/17/2026, 12:01:17 AM

New queries allow fetching individual or lists of cash drawers (cashDrawer, cashDrawers) and cash management summaries per location or shop, with date and currency filtering. Mutations now support creating, updating, and find‑or‑creating cash drawers, assigning a POS device to a drawer, and managing cash management reason codes (create/delete). Point‑of‑sale device payment session operations are expanded with opening, closing, counting, and adjusting sessions, each returning detailed session data and custom user errors. New interfaces and types (CashActivity, CashAdjustmentActivity, CashCountActivity, CashTransactionActivity) expose activity logs, along with sorting keys for cash activity queries. The PointOfSaleDevice type got two new fields: activePaymentSession (current open session) and cashDrawer (assigned drawer), and the ChannelFullSync mutation now returns ChannelFullSyncUserError objects. PaymentsTransactionType enum was extended with four new B2B managed‑markets tax adjustment entries, enabling broader transaction classification.

Query Changes

➕ Added Queries (7)

cashDrawer

Returns a CashDrawer resource by ID.

cashDrawers

A list of cash drawers in the shop.

cashManagementLocationSummary

Summary of cash management data for a location.

cashManagementReasonCodes

Returns the cash management reason codes for the shop.

cashManagementShopSummary

Summary of cash management data across all locations with a POS Pro subscription for a shop, filtered by currency.

pointOfSaleDevicePaymentSession

Lookup a point of sale device payment session by ID.

pointOfSaleDevicePaymentSessions

A list of point of sale device payment sessions in the shop.

Mutation Changes

➕ Added Mutations (10)

cashDrawerCreate

Creates a cash drawer in a provided location.

cashDrawerFindOrCreate

Finds or creates a cash drawer for cash management. Also ensures the provided device is assigned to the drawer.

cashDrawerUpdate

Updates a cash drawer.

cashManagementReasonCodeCreate

Create a cash management reason code.

cashManagementReasonCodeDelete

Deletes a cash management reason code.

pointOfSaleDeviceAssignToCashDrawer

Assigns a point of sale device to a cash drawer, removing any prior assignment.

pointOfSaleDevicePaymentSessionAdjust

Adds an adjustment to a point of sale device payment session.

pointOfSaleDevicePaymentSessionClose

Closes a point of sale device payment session.

pointOfSaleDevicePaymentSessionCount

Records a mid-session cash count for a point of sale device payment session.

pointOfSaleDevicePaymentSessionOpen

Opens a point of sale device payment session.

Type Changes

➕ Added Types (61)

📋CashActivitiesSortKeys➕ AddedENUM

The set of valid sort keys for the CashActivities query.

Values: ID, TIME
🔌CashActivity➕ AddedINTERFACE

An activity on a cash drawer.

Fields: cash, paymentSession, staffMember, time
🏗️CashActivityConnection➕ AddedOBJECT

An auto-generated type for paginating through multiple CashActivities.

Fields: edges, nodes, pageInfo
🏗️CashActivityEdge➕ AddedOBJECT

An auto-generated type which holds one CashActivity and a cursor during pagination.

Fields: cursor, node
🏗️CashAdjustmentActivity➕ AddedOBJECT

A cash adjustment activity.

Fields: cash, giftCard, note, paymentSession, reasonCode ... +3 more
📋CashAdjustmentActivityType➕ AddedENUM

The type of adjustment activity.

Values: ADJUSTMENT, CASH_PAYOUT, CLOSING_ADJUSTMENT
🏗️CashCountActivity➕ AddedOBJECT

A cash count activity.

Fields: cash, cashCounted, cashDiscrepancy, cashExpected, paymentSession ... +3 more
📋CashCountActivityType➕ AddedENUM

The type of count activity.

Values: OPENING, CLOSING, MID_SESSION
🏗️CashDrawer➕ AddedOBJECT

A cash drawer for cash management.

Fields: cashActivities, id, location, name, netSales ... +5 more
🏗️CashDrawerConnection➕ AddedOBJECT

An auto-generated type for paginating through multiple CashDrawers.

Fields: edges, nodes, pageInfo
🏗️CashDrawerCreatePayload➕ AddedOBJECT

Return type for cashDrawerCreate mutation.

Fields: cashDrawer, userErrors
🏗️CashDrawerCreateUserError➕ AddedOBJECT

An error that occurs during the execution of CashDrawerCreate.

Fields: code, field, message
📋CashDrawerCreateUserErrorCode➕ AddedENUM

Possible error codes that can be returned by CashDrawerCreateUserError.

Values: INTERNAL_ERROR, NOT_SAVED, CASH_DRAWER_ALREADY_EXISTS, LOCATION_NOT_FOUND, INVALID_NAME
📥CashDrawerDateRangeInput➕ AddedINPUT_OBJECT

The input fields for date and time range filter.

🏗️CashDrawerEdge➕ AddedOBJECT

An auto-generated type which holds one CashDrawer and a cursor during pagination.

Fields: cursor, node
🏗️CashDrawerFindOrCreatePayload➕ AddedOBJECT

Return type for cashDrawerFindOrCreate mutation.

Fields: cashDrawer, userErrors
🏗️CashDrawerFindOrCreateUserError➕ AddedOBJECT

An error that occurs during the execution of CashDrawerFindOrCreate.

Fields: code, field, message
📋CashDrawerFindOrCreateUserErrorCode➕ AddedENUM

Possible error codes that can be returned by CashDrawerFindOrCreateUserError.

Values: INTERNAL_ERROR, NOT_SAVED, CASH_DRAWER_ASSIGNMENT_ALREADY_EXISTS, LOCATION_NOT_FOUND, POINT_OF_SALE_DEVICE_NOT_FOUND
📥CashDrawerUpdateInput➕ AddedINPUT_OBJECT

The input fields for updating a cash drawer.

🏗️CashDrawerUpdatePayload➕ AddedOBJECT

Return type for cashDrawerUpdate mutation.

Fields: cashDrawer, userErrors
🏗️CashDrawerUpdateUserError➕ AddedOBJECT

An error that occurs during the execution of CashDrawerUpdate.

Fields: code, field, message
📋CashDrawerUpdateUserErrorCode➕ AddedENUM

Possible error codes that can be returned by CashDrawerUpdateUserError.

Values: INTERNAL_ERROR, NOT_SAVED, CASH_DRAWER_NOT_FOUND, CASH_DRAWER_ALREADY_EXISTS, INVALID_NAME
🏗️CashManagementCustomReasonCode➕ AddedOBJECT

Custom reason code.

Fields: code, id
🏗️CashManagementDefaultReasonCode➕ AddedOBJECT

Default reason code.

Fields: code, id
📋CashManagementDefaultReasonCodeEnum➕ AddedENUM

Default reason codes for cash management.

Values: CASH_PICKUP, CASH_COUNT, CHANGE_CORRECTION, PETTY_CASH, TIP_PAYOUT, CASH_PAYOUT
🔀CashManagementReasonCode➕ AddedUNION

Reason code for cash management.

🏗️CashManagementReasonCodeConnection➕ AddedOBJECT

An auto-generated type for paginating through multiple CashManagementReasonCodes.

Fields: edges, nodes, pageInfo
🏗️CashManagementReasonCodeCreatePayload➕ AddedOBJECT

Return type for cashManagementReasonCodeCreate mutation.

Fields: reasonCode, userErrors
🏗️CashManagementReasonCodeCreateUserError➕ AddedOBJECT

An error that occurs during the execution of CashManagementReasonCodeCreate.

Fields: code, field, message
📋CashManagementReasonCodeCreateUserErrorCode➕ AddedENUM

Possible error codes that can be returned by CashManagementReasonCodeCreateUserError.

Values: CODE_ALREADY_EXISTS, NOT_SAVED, BLANK
🏗️CashManagementReasonCodeDeletePayload➕ AddedOBJECT

Return type for cashManagementReasonCodeDelete mutation.

Fields: deletedId, userErrors
🏗️CashManagementReasonCodeDeleteUserError➕ AddedOBJECT

An error that occurs during the execution of CashManagementReasonCodeDelete.

Fields: code, field, message
📋CashManagementReasonCodeDeleteUserErrorCode➕ AddedENUM

Possible error codes that can be returned by CashManagementReasonCodeDeleteUserError.

Values: NOT_FOUND, DATABASE_ERROR, NOT_DELETABLE
🏗️CashManagementReasonCodeEdge➕ AddedOBJECT

An auto-generated type which holds one CashManagementReasonCode and a cursor during pagination.

Fields: cursor, node
🏗️CashManagementSummary➕ AddedOBJECT

A summary of cash management data.

Fields: cashBalanceAtEnd, cashBalanceAtStart, netCash, sessionsClosed, sessionsOpened ... +1 more
🏗️CashManagementSystemReasonCode➕ AddedOBJECT

System reason code.

Fields: code, id
📋CashManagementSystemReasonCodeEnum➕ AddedENUM

System reason codes for cash management.

Values: FLOAT_SETUP, CASH_PAYOUT, OTHER
🏗️CashTransactionActivity➕ AddedOBJECT

A cash transaction activity.

Fields: cash, orderTransaction, paymentSession, staffMember, time ... +1 more
📋CashTransactionActivityType➕ AddedENUM

The type of transaction activity.

Values: SALE, REFUND, CHANGE
🏗️ChannelFullSyncUserError➕ AddedOBJECT

An error that occurs during the execution of ChannelFullSync.

Fields: code, field, message
📋ChannelFullSyncUserErrorCode➕ AddedENUM

Possible error codes that can be returned by ChannelFullSyncUserError.

Values: INVALID, NOT_FOUND
🏗️PointOfSaleDeviceAssignToCashDrawerPayload➕ AddedOBJECT

Return type for pointOfSaleDeviceAssignToCashDrawer mutation.

Fields: pointOfSaleDevice, userErrors
🏗️PointOfSaleDeviceAssignToCashDrawerUserError➕ AddedOBJECT

An error that occurs during the execution of PointOfSaleDeviceAssignToCashDrawer.

Fields: code, field, message
📋PointOfSaleDeviceAssignToCashDrawerUserErrorCode➕ AddedENUM

Possible error codes that can be returned by PointOfSaleDeviceAssignToCashDrawerUserError.

Values: INTERNAL_ERROR, LOCATION_MISMATCH, CASH_DRAWER_NOT_FOUND, POINT_OF_SALE_DEVICE_NOT_FOUND
🏗️PointOfSaleDeviceConnection➕ AddedOBJECT

An auto-generated type for paginating through multiple PointOfSaleDevices.

Fields: edges, nodes, pageInfo
🏗️PointOfSaleDeviceEdge➕ AddedOBJECT

An auto-generated type which holds one PointOfSaleDevice and a cursor during pagination.

Fields: cursor, node
🏗️PointOfSaleDevicePaymentSession➕ AddedOBJECT

Tracks the payment activity for a point of sale device.

Fields: cashActivities, cashCountedAtClose, cashCountedAtOpen, cashDrawer, closingAdjustment ... +23 more
🏗️PointOfSaleDevicePaymentSessionAdjustPayload➕ AddedOBJECT

Return type for pointOfSaleDevicePaymentSessionAdjust mutation.

Fields: pointOfSaleDevicePaymentSession, userErrors
🏗️PointOfSaleDevicePaymentSessionClosePayload➕ AddedOBJECT

Return type for pointOfSaleDevicePaymentSessionClose mutation.

Fields: pointOfSaleDevicePaymentSession, userErrors
🏗️PointOfSaleDevicePaymentSessionCloseUserError➕ AddedOBJECT

An error that occurs during the execution of PointOfSaleDevicePaymentSessionClose.

Fields: code, field, message
📋PointOfSaleDevicePaymentSessionCloseUserErrorCode➕ AddedENUM

Possible error codes that can be returned by PointOfSaleDevicePaymentSessionCloseUserError.

Values: STAFF_MEMBER_NOT_FOUND, PAYMENT_SESSION_NOT_FOUND, SESSION_ALREADY_CLOSED, TIME_BEFORE_SESSION_OPEN, REASON_CODE_NOT_FOUND, CURRENCY_MISMATCH, NO_CASH_DRAWER_ASSOCIATED, FAILED_TO_CLOSE_SESSION
🏗️PointOfSaleDevicePaymentSessionConnection➕ AddedOBJECT

An auto-generated type for paginating through multiple PointOfSaleDevicePaymentSessions.

Fields: edges, nodes, pageInfo
🏗️PointOfSaleDevicePaymentSessionCountPayload➕ AddedOBJECT

Return type for pointOfSaleDevicePaymentSessionCount mutation.

Fields: pointOfSaleDevicePaymentSession, userErrors
🏗️PointOfSaleDevicePaymentSessionCountUserError➕ AddedOBJECT

An error that occurs during the execution of PointOfSaleDevicePaymentSessionCount.

Fields: code, field, message
📋PointOfSaleDevicePaymentSessionCountUserErrorCode➕ AddedENUM

Possible error codes that can be returned by PointOfSaleDevicePaymentSessionCountUserError.

Values: STAFF_MEMBER_NOT_FOUND, PAYMENT_SESSION_NOT_FOUND, SESSION_ALREADY_CLOSED, TIME_BEFORE_SESSION_OPEN, REASON_CODE_NOT_FOUND, CURRENCY_MISMATCH, NO_CASH_DRAWER_ASSOCIATED, FAILED_TO_RECORD_COUNT
🏗️PointOfSaleDevicePaymentSessionEdge➕ AddedOBJECT

An auto-generated type which holds one PointOfSaleDevicePaymentSession and a cursor during pagination.

Fields: cursor, node
🏗️PointOfSaleDevicePaymentSessionOpenPayload➕ AddedOBJECT

Return type for pointOfSaleDevicePaymentSessionOpen mutation.

Fields: pointOfSaleDevicePaymentSession, userErrors
🏗️PointOfSaleDevicePaymentSessionOpenUserError➕ AddedOBJECT

An error that occurs during the execution of PointOfSaleDevicePaymentSessionOpen.

Fields: code, field, message
📋PointOfSaleDevicePaymentSessionOpenUserErrorCode➕ AddedENUM

Possible error codes that can be returned by PointOfSaleDevicePaymentSessionOpenUserError.

Values: POINT_OF_SALE_DEVICE_NOT_FOUND, NO_CASH_DRAWER_ASSOCIATED, NOT_SAVED, ALREADY_OPEN, STAFF_MEMBER_NOT_FOUND, CURRENCY_MISMATCH, REASON_CODE_NOT_FOUND
📋PointOfSaleDevicePaymentSessionSortKeys➕ AddedENUM

The set of valid sort keys for the PointOfSaleDevicePaymentSession query.

Values: CLOSING_TIME, ID, OPENING_TIME
📋PointOfSaleDevicePaymentSessionStatus➕ AddedENUM

The status of the point of sale device payment session. Payments can't be processed or refunded during a closed session, and the cash drawer balance can't be adjusted or corrected.

Values: OPEN, CLOSED

🔄 Modified Types (3)

🏗️ChannelFullSyncPayload🔄 Modified
🔄 Field modified: userErrors
🏗️PointOfSaleDevice🔄 Modified
Field added: activePaymentSession

The currently open payment session for this device.

Field added: cashDrawer

The cash drawer that this device is currently assigned to.

🏗️ShopifyPaymentsTransactionType🔄 Modified
Enum value added: MANAGED_MARKETS_B2B_DOMESTIC_TAXES_ADJUSTMENT_PLATFORM_CREDIT
Enum value added: MANAGED_MARKETS_B2B_DOMESTIC_TAXES_ADJUSTMENT_PLATFORM_CREDIT_REVERSAL
Enum value added: MANAGED_MARKETS_B2B_DOMESTIC_TAXES_ADJUSTMENT_PLATFORM_DEBIT
Enum value added: MANAGED_MARKETS_B2B_DOMESTIC_TAXES_ADJUSTMENT_PLATFORM_DEBIT_REVERSAL