POS Cash Drawer Transactions
Aggregate cash drawer transaction information for cash management, reconciliation, and audit purposes.
Overview
The POS Cash Drawer Transaction API provides access to all cash drawer events including opens, closes, deposits, and payouts. This data is essential for cash management, end-of-day reconciliation, and audit trails.
Cash drawer transactions include:
- Opens - When a drawer is opened (cash sales, manual opens)
- Closes - When a drawer is closed for counting
- Deposits - Cash removed from drawer (bank deposits, drops)
- Payouts - Cash paid out from drawer (expenses, vendor payments)
- No Sales - Drawer opens without a transaction
API Endpoints
Retrieve Cash Drawer Transactions
Returns cash drawer transaction records for a specific location.
Method: GET
Endpoint: /pos/v2/{locationId}/cash-drawer-transactions
Authentication: Bearer token required
Retrieve cash drawer transactions for a location. Use query parameters to filter by date range, employee, or transaction type.
Path Parameters
| Name | Type | Description |
|---|---|---|
locationId * | integer | The unique identifier for the location |
Query Parameters
| Name | Type | Description |
|---|---|---|
page | integer | Page number for pagination (default: 1) |
pageSize | integer | Number of results per page (default: 50, max: 100) |
startDate | datetime | Filter transactions on or after this date |
endDate | datetime | Filter transactions on or before this date |
employeeRef | string | Filter by specific employee |
transactionType | string | Filter by type: OPEN, CLOSE, DEPOSIT, PAYOUT, NO_SALE |
Request
curl -X GET "https://conecto-api.shift4payments.com/pos/v2/12345/cash-drawer-transactions?startDate=2024-01-15T00:00:00Z&endDate=2024-01-15T23:59:59Z" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
{
"results": [
{
"posRef": "CDT-001",
"transactionType": "OPEN",
"amount": 250.00,
"timestamp": "2024-01-15T08:00:00Z",
"employeeRef": "EMP-001",
"employeeName": "Jane Smith",
"drawerRef": "DRAWER-01",
"reason": "Start of shift",
"ticketRef": null,
"locationId": 12345
},
{
"posRef": "CDT-002",
"transactionType": "NO_SALE",
"amount": 0.00,
"timestamp": "2024-01-15T09:15:00Z",
"employeeRef": "EMP-001",
"employeeName": "Jane Smith",
"drawerRef": "DRAWER-01",
"reason": "Get change",
"ticketRef": null,
"locationId": 12345
},
{
"posRef": "CDT-003",
"transactionType": "DEPOSIT",
"amount": -500.00,
"timestamp": "2024-01-15T14:00:00Z",
"employeeRef": "EMP-002",
"employeeName": "John Manager",
"drawerRef": "DRAWER-01",
"reason": "Bank deposit",
"ticketRef": null,
"locationId": 12345
},
{
"posRef": "CDT-004",
"transactionType": "PAYOUT",
"amount": -50.00,
"timestamp": "2024-01-15T15:30:00Z",
"employeeRef": "EMP-002",
"employeeName": "John Manager",
"drawerRef": "DRAWER-01",
"reason": "Petty cash - office supplies",
"ticketRef": null,
"locationId": 12345
},
{
"posRef": "CDT-005",
"transactionType": "CLOSE",
"amount": 1450.00,
"timestamp": "2024-01-15T22:00:00Z",
"employeeRef": "EMP-001",
"employeeName": "Jane Smith",
"drawerRef": "DRAWER-01",
"reason": "End of shift",
"expectedAmount": 1475.00,
"variance": -25.00,
"ticketRef": null,
"locationId": 12345
}
],
"meta": {
"page": 1,
"pageSize": 50,
"totalCount": 45
}
}
Models
CashDrawerTransaction
Represents a cash drawer event or transaction.
- Name
posRef- Type
- string
- Description
Unique POS system reference ID for the transaction
- Name
transactionType- Type
- string
- Description
Type of transaction:
OPEN,CLOSE,DEPOSIT,PAYOUT,NO_SALE
- Name
amount- Type
- number
- Description
Transaction amount. Positive for adds, negative for removes, zero for no-sales
- Name
timestamp- Type
- datetime
- Description
When the transaction occurred
- Name
employeeRef- Type
- string
- Description
Reference to the employee who performed the transaction
- Name
employeeName- Type
- string
- Description
Name of the employee
- Name
drawerRef- Type
- string
- Description
Reference to the physical drawer
- Name
reason- Type
- string
- Description
Reason or description for the transaction
- Name
ticketRef- Type
- string
- Description
Reference to related ticket, if applicable
- Name
expectedAmount- Type
- number
- Description
Expected amount (for CLOSE transactions)
- Name
variance- Type
- number
- Description
Difference between expected and actual (for CLOSE transactions)
- Name
businessDate- Type
- date
- Description
Business day this transaction belongs to
- Name
locationId- Type
- integer
- Description
Location ID where the transaction occurred
- Name
notes- Type
- string
- Description
Additional notes about the transaction
Transaction Types
OPEN
Opening a cash drawer to start a shift or add initial cash.
Characteristics:
- Positive amount (cash added to drawer)
- Typically done at start of business day or shift
- May include starting cash bank
Example:
{
"transactionType": "OPEN",
"amount": 250.00,
"reason": "Start of shift"
}
CLOSE
Closing a drawer for counting and reconciliation.
Characteristics:
- Includes expected vs. actual amounts
- Shows variance (over/short)
- Done at end of shift or business day
Example:
{
"transactionType": "CLOSE",
"amount": 1450.00,
"expectedAmount": 1475.00,
"variance": -25.00,
"reason": "End of shift"
}
DEPOSIT
Removing cash from drawer for bank deposit or safe drop.
Characteristics:
- Negative amount (cash removed)
- Reduces drawer balance
- Important for cash security
Example:
{
"transactionType": "DEPOSIT",
"amount": -500.00,
"reason": "Bank deposit"
}
PAYOUT
Cash paid out from drawer for expenses or other purposes.
Characteristics:
- Negative amount (cash removed)
- Typically requires manager approval
- Should have detailed reason/receipt
Example:
{
"transactionType": "PAYOUT",
"amount": -50.00,
"reason": "Petty cash - office supplies"
}
NO_SALE
Opening drawer without a transaction.
Characteristics:
- Zero amount
- Common for making change
- Creates audit trail of drawer opens
Example:
{
"transactionType": "NO_SALE",
"amount": 0.00,
"reason": "Get change"
}
Use Cases
Cash Reconciliation
Reconcile cash drawers at end of day:
- Starting Balance - From OPEN transactions
- Cash Sales - From ticket payments (not in this endpoint)
- Deposits - Subtract DEPOSIT transactions
- Payouts - Subtract PAYOUT transactions
- Expected Balance - Calculate expected ending balance
- Actual Balance - From CLOSE transaction
- Variance - Difference between expected and actual
Cash Security
Monitor cash handling for security:
- Drawer Opens - Track NO_SALE frequency
- Large Deposits - Monitor deposit patterns
- Variance Tracking - Flag large over/short amounts
- Employee Patterns - Analyze cash handling by employee
Audit Trail
Maintain audit trail for compliance:
- All Transactions - Complete record of drawer activity
- Employee Actions - Who performed each transaction
- Reasons - Documentation for each event
- Timestamps - Exact time of each transaction
Cash Flow Management
Optimize cash handling:
- Deposit Frequency - Analyze when deposits are needed
- Starting Banks - Determine optimal starting cash
- Change Needs - Monitor change requirements
- Labor Efficiency - Time spent on cash handling
Best Practices
- Name
Reconciliation- Description
Reconcile cash drawers daily using OPEN, CLOSE, DEPOSIT, and PAYOUT transactions. Investigate any significant variances.
- Name
Variance Thresholds- Description
Set acceptable variance thresholds. Small variances (under $5) are normal, but larger variances require investigation.
- Name
Security Monitoring- Description
Monitor NO_SALE transactions for potential security issues. Excessive no-sales may indicate cash handling problems.
- Name
Documentation- Description
Ensure all payouts have detailed reasons. This is important for accounting and audit purposes.
- Name
Regular Deposits- Description
Monitor cash levels and ensure regular deposits to minimize cash on hand and reduce theft risk.
- Name
Business Date- Description
Use
businessDatefor reporting rather than transaction timestamp, especially for transactions near midnight.