Timecards
Create, update, delete, and query the available timecards in Square. This table uses the new /v2/labor/timecards endpoint; the legacy Shifts table remains available. Note: Square replaces the entire timecard on an update, so every UPDATE must set StartAt, TeamMemberId, WageTitle, WageHourlyRateAmount, and WageHourlyRateCurrency. LocationId is also required; if it is not set, it is read from the timecard being updated.
Table Specific Information
Select
The connector uses the Square API to filter the results by the following columns and operators while the rest of the filter is executed client-side within the connector.
- Id supports the following operator: =.
- EndAt supports the following operators: =, >=, <=, >, <.
- LocationId supports the following operator: =.
- StartAt supports the following operators: =, >=, <=, >, <.
- Status supports the following operator: =.
- TeamMemberId supports the following operators: =, IN.
Retrieve all timecards:
SELECT * FROM Timecards
Retrieve only one timecard:
SELECT * FROM Timecards WHERE Id = 'T35HMQSN89SV4'
Retrieve timecards for a specific team member:
SELECT * FROM Timecards WHERE TeamMemberId = 'TMpveKF7plf5H7eZ'
The StartAt column supports the =, >, >=, <, <= operators.
SELECT Id, StartAt FROM Timecards WHERE StartAt = '2025-07-03 05:26:00.0'
SELECT Id, StartAt FROM Timecards WHERE StartAt > '2025-07-03 05:26:00.0'
SELECT Id, StartAt FROM Timecards WHERE StartAt >= '2025-07-03 05:26:00.0'
SELECT Id, StartAt FROM Timecards WHERE StartAt < '2025-07-03 05:26:00.0'
SELECT Id, StartAt FROM Timecards WHERE StartAt <= '2025-07-03 05:26:00.0'
SELECT Id, StartAt FROM Timecards WHERE StartAt >= '2025-03-21 01:38:00.0' AND StartAt < '2025-07-03 05:26:00.0'
The EndAt column supports the =, >, >=, <, <= operators.
SELECT Id, EndAt FROM Timecards WHERE EndAt = '2025-07-03 05:26:00.0'
SELECT Id, EndAt FROM Timecards WHERE EndAt > '2025-07-03 05:26:00.0'
SELECT Id, EndAt FROM Timecards WHERE EndAt >= '2025-07-03 05:26:00.0'
SELECT Id, EndAt FROM Timecards WHERE EndAt < '2025-07-03 05:26:00.0'
SELECT Id, EndAt FROM Timecards WHERE EndAt <= '2025-07-03 05:26:00.0'
SELECT Id, EndAt FROM Timecards WHERE EndAt > '2025-07-04T02:22:00-07:00' AND EndAt <= '2025-07-04T03:42:00-07:00'
The result set can be filtered using both StartAt and EndAt together.
SELECT Id, StartAt, EndAt FROM Timecards WHERE StartAt >= '2025-03-21 01:38:00.0' AND EndAt < '2025-07-04 06:42:00.0';
Insert
To create a timecard, you must specify the TeamMemberId, LocationId, and StartAt columns.
INSERT INTO Timecards(TeamMemberId, LocationId, StartAt, WageTitle, WageHourlyRateAmount, WageHourlyRateCurrency, WageTipEligible, DeclaredCashTipMoneyAmount, DeclaredCashTipMoneyCurrency, Breaks) VALUES ('TMpveKF7plf5H7eZ', '92BYHNBR6W77E', '2025-07-03T07:20:14.382-04:00', 'Cashier', 1500, 'USD', true, 500, 'USD', '[{"start_at": "2025-07-03T07:20:00-04:00", "end_at": "2025-07-03T07:21:00-04:00", "break_type_id": "REGS1EQR1TPZ5", "name": "Tea Break", "expected_duration": "PT5M", "is_paid": true}]')
Update
Modify the details of an existing timecard by providing the Id of the timecard. Square replaces the entire timecard on an update, so every UPDATE must set the StartAt, TeamMemberId, WageTitle, WageHourlyRateAmount, and WageHourlyRateCurrency columns. The connector reports any that are missing before it sends the request.
UPDATE Timecards SET Version = 1, LocationId = '92BYHNBR6W77E', StartAt = '2025-07-03T07:50:40.017-04:00', TeamMemberId = 'TMpveKF7plf5H7eZ', WageTitle = 'Senior Cashier', WageHourlyRateAmount = 2043, WageHourlyRateCurrency = 'USD' WHERE Id = 'RX3KS4G3VH00N'
LocationId is also required, but it does not have to be set: if the query omits it, the connector reads it from the timecard being updated. Filter on it in the WHERE clause to restrict the update to a timecard at that location.
UPDATE Timecards SET StartAt = '2025-07-03T07:50:40.017-04:00', TeamMemberId = 'TMpveKF7plf5H7eZ', WageTitle = 'Senior Cashier', WageHourlyRateAmount = 2043, WageHourlyRateCurrency = 'USD' WHERE LocationId = '92BYHNBR6W77E' AND Id = 'RX3KS4G3VH00N'
No rows are updated if the timecard belongs to a different location than the one in the WHERE clause.
Delete
Delete a timecard by providing the Id of the timecard:
DELETE FROM Timecards WHERE Id = 'T35HMQSN89SV4'
Columns
| Name | Type | ReadOnly | Description |
| Id [KEY] | String | True |
The UUID for this object. |
| Breaks | String | False |
A list of all the paid or unpaid breaks that were taken during this timecard. |
| CreatedAt | Datetime | True |
A read-only timestamp in RFC 3339 format; presented in UTC. |
| DeclaredCashTipMoneyAmount | Integer | False |
The amount of money, in the smallest denomination of the currency indicated by currency. |
| DeclaredCashTipMoneyCurrency | String | False |
The type of currency, in ISO 4217 format. The allowed values are UNKNOWN_CURRENCY, AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYR, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SLE, SOS, SRD, SSP, STD, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, USS, UYI, UYU, UZS, VEF, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XTS, XXX, YER, ZAR, ZMK, ZMW, BTC, XUS. |
| EndAt | Datetime | False |
RFC 3339; shifted to the timezone + offset. Precision up to the minute is respected; seconds are truncated. |
| LocationId | String | False |
The ID of the location this timecard occurred at. |
| StartAt | Datetime | False |
RFC 3339; shifted to the location timezone + offset. Precision up to the minute is respected; seconds are truncated. |
| Status | String | True |
Describes the working state of the current timecard. The allowed values are OPEN, CLOSED. |
| TeamMemberId | String | False |
The ID of the team member this timecard belongs to. |
| TimeZone | String | True |
The read-only convenience value that is calculated from the location based on the location_id. Format: the IANA timezone database identifier for the location timezone. |
| UpdatedAt | Datetime | True |
A read-only timestamp in RFC 3339 format; presented in UTC. |
| Version | Integer | False |
Used for resolving concurrency issues. The request fails if the version provided does not match the server version at the time of the request. If not provided, Square executes a blind write; potentially overwriting data from another write. |
| WageTitle | String | False |
The name of the job performed during this timecard. |
| WageHourlyRateAmount | Integer | False |
The amount of money, in the smallest denomination of the currency indicated by currency. |
| WageHourlyRateCurrency | String | False |
The type of currency, in ISO 4217 format. For example, the currency code for US dollars is USD. The allowed values are UNKNOWN_CURRENCY, AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYR, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SLE, SOS, SRD, SSP, STD, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, USS, UYI, UYU, UZS, VEF, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XTS, XXX, YER, ZAR, ZMK, ZMW, BTC, XUS. |
| WageJobId | String | True |
The ID of the job performed during this timecard. Square labor-reporting UIs might group timecards together by ID. This cannot be used to retrieve the job. |
| WageTipEligible | Boolean | False |
Whether team members are eligible for tips when working this job. |
Pseudocolumns
Pseudo column fields are used in the WHERE clause of SELECT statements (unless stated otherwise) and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| IdempotencyKey | String |
A unique string that identifies the request. Supported only for INSERT operations. Maximum length is 128 characters. |