{"info":{"title":"Homebase Public API","description":"Homebase provides a collection of APIs to enable building integrations for a wide range of use cases.\n\n## Request an API Key (read only)\nTo access the API key, you must request one from the\n[API Settings](https://app.joinhomebase.com/settings/api) page. Once our team approves your\nrequest, you'll be able to see it in that same Settings page.\n\nIf you're a Homebase partner and need write permissions, reach out to your Homebase representative.\n\n## Authentication\nAPI requests are authenticated via the `Authorization` header. An example cURL request might look like:\n\n```\ncurl -H 'Authorization: Bearer xxx' -H 'Accept:application/vnd.homebase-v1+json' https://api.joinhomebase.com/locations\n```\n\n## Versioning/Content Type\nVersioning is specified in the `Accept` header. All requests should specify the following header:\n\n```\nAccept: application/vnd.homebase-v1+json\n```\n\nAs of now, the API only supports returning JSON.\n\n## Dates\n\nAll dates returned from the API are in the [ISO 8601](http://www.iso.org/iso/home/standards/iso8601.htm) date format.\n\nFor best results, please use this format when specifying dates in request parameters.\n\n## Pagination\nPagination metadata is included the response header, and uses the [RFC-5988](https://tools.ietf.org/html/rfc5988)\nstandard for Web Linking. The following headers are included:\n\n### Total\nThe total number of resources matching the request parameters\n\n`Total: 2`\n\n### Per-Page\nThe number of resources included in each response\n\n`Per-Page: 100`\n\n### Link\nA list of links which can be parsed to determine the next, previous, or last page of results.\n\n`Link: \u0026lt;https://api.joinhomebase.com/locations/f9e46145-b6b1-4e9e-92a0-320510e2c1f3/employees?page=2\u0026per_page=1\u0026gt;; rel=\"last\", \u0026lt;https://api.joinhomebase.com/locations/f9e46145-b6b1-4e9e-92a0-320510e2c1f3/employees?page=2\u0026per_page=1\u0026gt;; rel=\"next\"`\n\n## Rate Limiting\n\nRequests to the API are rate limited to prevent abuse.  \n\nAll requests that include a UUID in the URL are limited to 60 requests per minute per UUID.  If you exceed this limit, you will receive a `429 Rate limit exceeded` response.\n\n`HTTP Status Code: 429`\n\n`JSON Response: {\"error\": \"Rate limit exceeded\"}`\n\u003cscript\u003e\n   document.title = \"Homebase API Documentation\"\n   document.getElementById('logo').href = '/accounts/sign-in'\n\u003c/script\u003e\n","termsOfService":"https://app.joinhomebase.com/agreements/terms","contact":{"email":"help@joinhomebase.com"},"version":"1.0.0"},"swagger":"2.0","produces":["application/json"],"host":"app.joinhomebase.com","basePath":"/api/public","tags":[{"name":"companies","description":"Operations about companies"},{"name":"employees","description":"Operations about employees"},{"name":"shifts","description":"Operations about shifts"},{"name":"timecards","description":"Operations about timecards"},{"name":"labor","description":"Operations about labors"},{"name":"locations","description":"Operations about locations"},{"name":"timeclock","description":"Operations about timeclocks"}],"paths":{"/company":{"get":{"description":"Retrieve the company for the current account","produces":["application/json"],"responses":{"200":{"description":"Retrieve the company for the current account","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_Company"}}},"tags":["companies"],"operationId":"getCompany"}},"/locations/{location_uuid}/employees/{id}":{"get":{"description":"Retrieve a single employee for a given location","produces":["application/json"],"parameters":[{"in":"path","name":"location_uuid","type":"string","required":true},{"in":"query","name":"with_archived","description":"Include archived employees","type":"boolean","default":false,"required":false},{"in":"path","name":"id","description":"User ID","type":"integer","format":"int32","required":true}],"responses":{"200":{"description":"Retrieve a single employee for a given location","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_User"}}},"tags":["employees"],"operationId":"getLocationsLocationUuidEmployeesId"}},"/locations/{location_uuid}/employees":{"get":{"description":"Retrieve employees for a given location","produces":["application/json"],"parameters":[{"in":"query","name":"page","description":"Page of results to fetch.","type":"integer","format":"int32","default":1,"required":false},{"in":"query","name":"per_page","description":"Number of results to return per page.","type":"integer","format":"int32","default":null,"required":false},{"in":"path","name":"location_uuid","type":"string","required":true},{"in":"query","name":"with_archived","description":"Include archived employees","type":"boolean","default":false,"required":false}],"responses":{"200":{"description":"Retrieve employees for a given location","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_User"}}},"tags":["employees"],"operationId":"getLocationsLocationUuidEmployees"}},"/locations/{location_uuid}/shifts/{id}":{"get":{"description":"Retrieve a single shift for a given location","produces":["application/json"],"parameters":[{"in":"path","name":"location_uuid","type":"string","required":true},{"in":"path","name":"id","description":"Shift ID","type":"integer","format":"int32","required":true},{"in":"query","name":"with_note","description":"Include shift note","type":"boolean","default":false,"required":false}],"responses":{"200":{"description":"Retrieve a single shift for a given location","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_Shift"}}},"tags":["shifts"],"operationId":"getLocationsLocationUuidShiftsId"}},"/locations/{location_uuid}/shifts/deleted":{"get":{"description":"Retrieve the IDs of deleted shifts for a given location","produces":["application/json"],"parameters":[{"in":"query","name":"page","description":"Page of results to fetch.","type":"integer","format":"int32","default":1,"required":false},{"in":"query","name":"per_page","description":"Number of results to return per page.","type":"integer","format":"int32","default":null,"required":false},{"in":"path","name":"location_uuid","type":"string","required":true},{"in":"query","name":"start_date","type":"string","format":"date-time","required":true},{"in":"query","name":"end_date","type":"string","format":"date-time","required":true}],"responses":{"200":{"description":"Retrieve the IDs of deleted shifts for a given location","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_ShiftVersion"}}},"tags":["shifts"],"operationId":"getLocationsLocationUuidShiftsDeleted"}},"/locations/{location_uuid}/shifts":{"get":{"description":"Retrieve shifts for a given location","produces":["application/json"],"parameters":[{"in":"query","name":"page","description":"Page of results to fetch.","type":"integer","format":"int32","default":1,"required":false},{"in":"query","name":"per_page","description":"Number of results to return per page.","type":"integer","format":"int32","default":25,"required":false},{"in":"path","name":"location_uuid","type":"string","required":true},{"in":"query","name":"start_date","type":"string","format":"date-time","required":true},{"in":"query","name":"end_date","type":"string","format":"date-time","required":true},{"in":"query","name":"open","description":"Retrieve open shifts only","type":"boolean","default":false,"required":false},{"in":"query","name":"with_note","description":"Include shift note","type":"boolean","default":false,"required":false},{"in":"query","name":"date_filter","description":"Which date attribute the start_date and end_date parameters will apply to","type":"string","default":"start_at","enum":["start_at","end_at","created_at","updated_at"],"required":false}],"responses":{"200":{"description":"Retrieve shifts for a given location","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_Shift"}}},"tags":["shifts"],"operationId":"getLocationsLocationUuidShifts"}},"/locations/{location_uuid}/timecards/{id}":{"get":{"description":"Retrieve a single timecard for a given location","produces":["application/json"],"parameters":[{"in":"path","name":"location_uuid","type":"string","required":true},{"in":"path","name":"id","description":"Timecard ID","type":"integer","format":"int32","required":true}],"responses":{"200":{"description":"Retrieve a single timecard for a given location","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_Timecard"}}},"tags":["timecards"],"operationId":"getLocationsLocationUuidTimecardsId"}},"/locations/{location_uuid}/timecards/deleted":{"get":{"description":"Retrieve the IDs of deleted timecards for a given location","produces":["application/json"],"parameters":[{"in":"query","name":"page","description":"Page of results to fetch.","type":"integer","format":"int32","default":1,"required":false},{"in":"query","name":"per_page","description":"Number of results to return per page.","type":"integer","format":"int32","default":null,"required":false},{"in":"path","name":"location_uuid","type":"string","required":true},{"in":"query","name":"start_date","type":"string","format":"date-time","required":true},{"in":"query","name":"end_date","type":"string","format":"date-time","required":true}],"responses":{"200":{"description":"Retrieve the IDs of deleted timecards for a given location","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_TimecardVersion"}}},"tags":["timecards"],"operationId":"getLocationsLocationUuidTimecardsDeleted"}},"/locations/{location_uuid}/timecards":{"get":{"summary":"Retrieve timecards for a given location","description":"Returns a list of timecards for the specified location.\n\n**Known Limitation:** Time off labor totals (PTO, sick leave, unpaid time off) are always set to zero\nin the labor object for individual timecard records.\n\n**Affected Fields:**\n- paid_time_off_hours\n- time_off_hours\n- sick_time_hours\n- unpaid_time_off_hours\n- FFCRA-related fields\n\n**Workaround:** If you need employees' totals including time off, use the\n`/locations/{location_uuid}/labor/by_employee` endpoint instead.\n","produces":["application/json"],"parameters":[{"in":"query","name":"page","description":"Page of results to fetch.","type":"integer","format":"int32","default":1,"required":false},{"in":"query","name":"per_page","description":"Number of results to return per page.","type":"integer","format":"int32","default":null,"required":false},{"in":"path","name":"location_uuid","type":"string","required":true},{"in":"query","name":"start_date","type":"string","format":"date-time","required":true},{"in":"query","name":"end_date","type":"string","format":"date-time","required":true},{"in":"query","name":"date_filter","description":"Which date attribute the start_date and end_date parameters will apply to","type":"string","default":"clock_in","enum":["clock_in","clock_out","created_at","updated_at"],"required":false}],"responses":{"200":{"description":"Retrieve timecards for a given location","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_Timecard"}}},"tags":["timecards"],"operationId":"getLocationsLocationUuidTimecards"}},"/locations/{location_uuid}/labor/by_role":{"get":{"description":"Retrieve aggregate labor for a given location, grouped by role","produces":["application/json"],"parameters":[{"in":"path","name":"location_uuid","type":"string","required":true},{"in":"query","name":"start_date","type":"string","format":"date-time","required":true},{"in":"query","name":"end_date","type":"string","format":"date-time","required":true}],"responses":{"200":{"description":"Retrieve aggregate labor for a given location, grouped by role","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_RoleWithLabor"}}},"tags":["labor"],"operationId":"getLocationsLocationUuidLaborByRole"}},"/locations/{location_uuid}/labor/by_employee":{"get":{"description":"Retrieve aggregate labor for a given location, grouped by employee","produces":["application/json"],"parameters":[{"in":"path","name":"location_uuid","type":"string","required":true},{"in":"query","name":"start_date","type":"string","format":"date-time","required":true},{"in":"query","name":"end_date","type":"string","format":"date-time","required":true}],"responses":{"200":{"description":"Retrieve aggregate labor for a given location, grouped by employee","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_UserWithLabor"}}},"tags":["labor"],"operationId":"getLocationsLocationUuidLaborByEmployee"}},"/locations/{location_uuid}/labor":{"get":{"description":"Retrieve aggregate labor for a given location, grouped by hour or by day","produces":["application/json"],"parameters":[{"in":"query","name":"group_by","type":"string","default":"day","enum":["hour","day"],"required":false},{"in":"path","name":"location_uuid","type":"string","required":true},{"in":"query","name":"start_date","type":"string","format":"date-time","required":true},{"in":"query","name":"end_date","type":"string","format":"date-time","required":true}],"responses":{"200":{"description":"Retrieve aggregate labor for a given location, grouped by hour or by day","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_LocationLabor"}}},"tags":["labor"],"operationId":"getLocationsLocationUuidLabor"}},"/locations/{location_uuid}/plan":{"get":{"description":"Retrieve plan for location","produces":["application/json"],"parameters":[{"in":"path","name":"location_uuid","type":"string","required":true}],"responses":{"200":{"description":"Retrieve plan for location","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_LocationPlan"}}},"tags":["locations"],"operationId":"getLocationsLocationUuidPlan"}},"/locations/{location_uuid}":{"get":{"description":"Retrieve a given location for the current account","produces":["application/json"],"parameters":[{"in":"path","name":"location_uuid","type":"string","required":true}],"responses":{"200":{"description":"Retrieve a given location for the current account","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_Location"}}},"tags":["locations"],"operationId":"getLocationsLocationUuid"}},"/locations":{"get":{"description":"Retrieve locations for the current account","produces":["application/json"],"responses":{"200":{"description":"Retrieve locations for the current account","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_Location"}}},"tags":["locations"],"operationId":"getLocations"}},"/timeclock/status":{"get":{"description":"Retrieve the current timeclock status for a given job","produces":["application/json"],"parameters":[{"in":"query","name":"job_id","type":"integer","format":"int32","required":true}],"responses":{"200":{"description":"Retrieve the current timeclock status for a given job","schema":{"$ref":"#/definitions/PublicApi_Entities_V1_TimeclockStatus"}}},"tags":["timeclock"],"operationId":"getTimeclockStatus"}}},"definitions":{"PublicApi_Entities_V1_Company":{"type":"object","properties":{"name":{"type":"string"},"owner":{"$ref":"#/definitions/PublicApi_Entities_V1_User","description":"The company owner"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"description":"PublicApi_Entities_V1_Company model"},"PublicApi_Entities_V1_User":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"job":{"$ref":"#/definitions/PublicApi_Entities_V1_Job"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"description":"PublicApi_Entities_V1_User model"},"PublicApi_Entities_V1_Job":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"level":{"type":"string","description":"Employee, Manager, or General Manager"},"default_role":{"type":"string","description":"The default role, e.g. Server, Host, Cashier"},"pin":{"type":"string","description":"The pin number which the employee uses to clock in/out"},"pos_partner_id":{"type":"string","description":"External ID of employee in POS partner"},"payroll_id":{"type":"string","description":"For locations with payroll integrations"},"wage_rate":{"type":"number","format":"float","description":"How much the employee gets paid"},"wage_type":{"type":"string","description":"Hourly or salary"},"roles":{"type":"array","items":{"$ref":"#/definitions/PublicApi_Entities_V1_AdditionalWage"}},"archived_at":{"type":"string","format":"date-time"},"location_uuid":{"type":"string"}}},"PublicApi_Entities_V1_AdditionalWage":{"type":"object","properties":{"name":{"type":"string"},"wage_rate":{"type":"number","format":"float","description":"How much the employee gets paid for this role"}}},"PublicApi_Entities_V1_Shift":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"timecard_id":{"type":"integer","format":"int32"},"open":{"type":"boolean","description":"Whether or not the shift is open and can be claimed by any employee"},"role":{"type":"string"},"department":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"location_id":{"type":"integer","format":"int32"},"job_id":{"type":"integer","format":"int32"},"user_id":{"type":"integer","format":"int32"},"wage_rate":{"type":"number","format":"float"},"published":{"type":"boolean"},"scheduled":{"type":"boolean","description":"True if the shift was created via the schedule builder, false if the shift was created due to an employee clocking in to an unscheduled shift"},"labor":{"$ref":"#/definitions/PublicApi_Entities_V1_ScheduledLabor","description":"Various labor data for the shift"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"start_at":{"type":"string","format":"date-time"},"end_at":{"type":"string","format":"date-time"},"note":{"$ref":"#/definitions/PublicApi_Entities_V1_ShiftNote","description":"The note added to the shift"}},"description":"PublicApi_Entities_V1_Shift model"},"PublicApi_Entities_V1_ScheduledLabor":{"type":"object","properties":{"wage_type":{"type":"string","description":"Hourly or salary"},"scheduled_hours":{"type":"number","format":"float","description":"Sum of scheduled overtime, scheduled regular, and scheduled Blue Law hours"},"scheduled_overtime":{"type":"number","format":"float","description":"Hours of overtime scheduled"},"scheduled_regular":{"type":"number","format":"float","description":"Hours of non-overtime scheduled"},"scheduled_daily_overtime":{"type":"number","format":"float","description":"Hours of daily overtime scheduled"},"scheduled_weekly_overtime":{"type":"number","format":"float","description":"Hours of weekly overtime scheduled"},"scheduled_double_overtimes":{"type":"number","format":"float","description":"Hours of double overtime scheduled"},"scheduled_seventh_day_overtime_15":{"type":"number","format":"float","description":"Hours of 7th day overtime at 1.5x pay rate scheduled"},"scheduled_seventh_day_overtime_20":{"type":"number","format":"float","description":"Hours of 7th day overtime at 2.0x pay rate scheduled"},"scheduled_unpaid_breaks_hours":{"type":"number","format":"float","description":"Hours of unpaid breaks scheduled"},"scheduled_costs":{"type":"number","format":"float","description":"Estimated pay for the shift"},"scheduled_overtime_costs":{"type":"number","format":"float","description":"Estimated overtime pay for the shift"},"scheduled_spread_of_hours":{"type":"number","format":"float","description":"Hours added due to the spread of hours law (New York only)"},"scheduled_blue_laws_hours":{"type":"number","format":"float","description":"Hours added due to the spread of hours law (Massachusetts only)"}}},"PublicApi_Entities_V1_ShiftNote":{"type":"object","properties":{"text":{"type":"string"},"author":{"type":"string"},"created_at":{"type":"s","format":"g"},"updated_at":{"type":"s","format":"g"}}},"PublicApi_Entities_V1_ShiftVersion":{"type":"object","properties":{"shift_id":{"type":"integer","format":"int32","description":"The ID of the deleted shift"},"start_at":{"type":"string","format":"date-time"},"end_at":{"type":"string","format":"date-time"},"deleted_at":{"type":"string","format":"date-time"}},"description":"PublicApi_Entities_V1_ShiftVersion model"},"PublicApi_Entities_V1_Timecard":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"user_id":{"type":"integer","format":"int32"},"first_name":{"type":"string"},"last_name":{"type":"string"},"payroll_id":{"type":"string"},"job_id":{"type":"integer","format":"int32"},"shift_id":{"type":"integer","format":"int32"},"role":{"type":"string"},"department":{"type":"string"},"timebreaks":{"type":"array","items":{"$ref":"#/definitions/PublicApi_Entities_V1_Timebreak"}},"labor":{"$ref":"#/definitions/PublicApi_Entities_V1_ActualLabor","description":"Various labor data for the timecard"},"approved":{"type":"boolean","description":"Whether or not the timecard was approved by a manager (occurs when the timesheet is locked)"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"clock_in":{"type":"string","format":"date-time"},"clock_out":{"type":"string","format":"date-time"}},"description":"PublicApi_Entities_V1_Timecard model"},"PublicApi_Entities_V1_Timebreak":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"mandated_break_id":{"type":"integer","format":"int32"},"timecard_id":{"type":"integer","format":"int32"},"paid":{"type":"boolean","description":"Whether or not the break was paid"},"duration":{"type":"integer","format":"int32","description":"How long the break was supposed to be"},"work_period":{"type":"integer","format":"int32","description":"How often the break is supposed to taken"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"start_at":{"type":"string","format":"date-time"},"end_at":{"type":"string","format":"date-time"}}},"PublicApi_Entities_V1_ActualLabor":{"type":"object","properties":{"wage_type":{"type":"string","description":"Hourly or salary"},"break_penalty":{"type":"number","format":"float","description":"Hours added because an employee did not take their break"},"costs":{"type":"number","format":"float","description":"Amount paid for the current time range"},"cash_tips":{"type":"number","format":"float","description":"Cash tips declared"},"credit_tips":{"type":"number","format":"float","description":"Credit tips declared (Clover merchants only)"},"weekly_overtime":{"type":"number","format":"float","description":"Hours of weekly overtime"},"paid_time_off_hours":{"type":"number","format":"float","description":"Hours of paid time off"},"time_off_hours":{"type":"number","format":"float","description":"Hours of time off"},"unpaid_break_hours":{"type":"number","format":"float","description":"Hours of unpaid breaks"},"regular_hours":{"type":"number","format":"float","description":"Regular hours worked (not overtime)"},"paid_hours":{"type":"number","format":"float","description":"Hours paid (includes regular and overtime)"},"scheduled_hours":{"type":"number","format":"float","description":"Scheduled hours (based on schedule)"},"daily_overtime":{"type":"number","format":"float","description":"Hours of daily overtime"},"double_overtime":{"type":"number","format":"float","description":"Hours of double overtime"},"seventh_day_overtime_15":{"type":"number","format":"float","description":"Hours worked at 1.5x pay due to working seven days in a row"},"seventh_day_overtime_20":{"type":"number","format":"float","description":"Hours worked at 2.0x pay due to working seven days in a row"},"wage_rate":{"type":"number","format":"float","description":"Wage rate for shift"}}},"PublicApi_Entities_V1_TimecardVersion":{"type":"object","properties":{"timecard_id":{"type":"integer","format":"int32","description":"The ID of the deleted timecard"},"clock_in":{"type":"string","format":"date-time"},"clock_out":{"type":"string","format":"date-time"},"deleted_at":{"type":"string","format":"date-time"}},"description":"PublicApi_Entities_V1_TimecardVersion model"},"PublicApi_Entities_V1_RoleWithLabor":{"type":"object","properties":{"role_id":{"type":"string"},"role_name":{"type":"string"},"labor":{"$ref":"#/definitions/PublicApi_Entities_V1_RoleLabor","description":"Various labor data for the role"}},"description":"PublicApi_Entities_V1_RoleWithLabor model"},"PublicApi_Entities_V1_RoleLabor":{"type":"object","properties":{"break_penalty":{"type":"number","format":"float","description":"Hours added because an employee did not take their break"},"costs":{"type":"number","format":"float","description":"Amount paid for the current time range"},"cash_tips":{"type":"number","format":"float","description":"Cash tips declared"},"credit_tips":{"type":"number","format":"float","description":"Credit tips declared (Clover merchants only)"},"weekly_overtime":{"type":"number","format":"float","description":"Hours of weekly overtime"},"paid_time_off_hours":{"type":"number","format":"float","description":"Hours of paid time off"},"time_off_hours":{"type":"number","format":"float","description":"Hours of time off"},"unpaid_break_hours":{"type":"number","format":"float","description":"Hours of unpaid breaks"},"regular_hours":{"type":"number","format":"float","description":"Regular hours worked (not overtime)"},"paid_hours":{"type":"number","format":"float","description":"Hours paid (includes regular and overtime)"},"scheduled_hours":{"type":"number","format":"float","description":"Scheduled hours (based on schedule)"},"daily_overtime":{"type":"number","format":"float","description":"Hours of daily overtime"},"double_overtime":{"type":"number","format":"float","description":"Hours of double overtime"},"seventh_day_overtime_15":{"type":"number","format":"float","description":"Hours worked at 1.5x pay due to working seven days in a row"},"seventh_day_overtime_20":{"type":"number","format":"float","description":"Hours worked at 2.0x pay due to working seven days in a row"},"wage_rate":{"type":"number","format":"float","description":"Wage rate for shift"},"wage_type":{"type":"string","description":"Hourly or salary"}}},"PublicApi_Entities_V1_UserWithLabor":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"job":{"$ref":"#/definitions/PublicApi_Entities_V1_Job"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"labor":{"$ref":"#/definitions/PublicApi_Entities_V1_UserLabor","description":"Various labor data for the employee"}},"description":"PublicApi_Entities_V1_UserWithLabor model"},"PublicApi_Entities_V1_UserLabor":{"type":"object","properties":{"wage_type":{"type":"string"},"break_penalty":{"type":"string"},"costs":{"type":"string"},"cash_tips":{"type":"string"},"credit_tips":{"type":"string"},"weekly_overtime":{"type":"string"},"paid_time_off_hours":{"type":"string"},"time_off_hours":{"type":"string"},"unpaid_break_hours":{"type":"string"},"regular_hours":{"type":"string"},"paid_hours":{"type":"string"},"scheduled_hours":{"type":"string"},"daily_overtime":{"type":"string"},"double_overtime":{"type":"string"},"seventh_day_overtime_15":{"type":"string"},"seventh_day_overtime_20":{"type":"string"},"wage_rate":{"type":"string"}}},"PublicApi_Entities_V1_LocationLabor":{"type":"object","properties":{"start_date":{"type":"string","format":"date","description":"Start of date range for aggregated labor"},"end_date":{"type":"string","format":"date","description":"End of date range for aggregated labor"},"labor":{"$ref":"#/definitions/PublicApi_Entities_V1_ActualLabor","description":"Various labor data for the location"}},"description":"PublicApi_Entities_V1_LocationLabor model"},"PublicApi_Entities_V1_LocationPlan":{"type":"object","properties":{"plan":{"type":"integer","format":"int32"},"last_update":{"type":"string","format":"date-time"},"price":{"type":"number","format":"float"},"in_trial":{"type":"boolean"},"trial_end_date":{"type":"string","format":"date-time"}},"description":"PublicApi_Entities_V1_LocationPlan model"},"PublicApi_Entities_V1_Location":{"type":"object","properties":{"uuid":{"type":"string"},"name":{"type":"string"},"address_1":{"type":"string"},"address_2":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"},"country_code":{"type":"string"},"phone":{"type":"string"},"website":{"type":"string"},"time_zone":{"type":"string"},"partner_merchant_id":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"description":"PublicApi_Entities_V1_Location model"},"PublicApi_Entities_V1_TimeclockStatus":{"type":"object","properties":{"status":{"type":"string","description":"Either \"on_break\", \"clocked_in\", or \"clocked_out\""},"shifts":{"type":"array","items":{"$ref":"#/definitions/PublicApi_Entities_V1_ShiftWithTimecard"},"description":"Shifts that can be interacted with via the timeclock"},"current_shift":{"$ref":"#/definitions/PublicApi_Entities_V1_ShiftWithTimecard","description":"The shift that the employee is currently clocked into"},"job":{"$ref":"#/definitions/PublicApi_Entities_V1_Job","description":"Details for the current job"},"mandated_breaks":{"type":"array","items":{"$ref":"#/definitions/PublicApi_Entities_V1_MandatedBreakWithId"},"description":"List of breaks that can be started"},"cash_tips_enabled":{"type":"boolean","description":"True if the location requires team members to declare cash tips when clocking out"},"auto_clock_out_enabled":{"type":"boolean","description":"Whether or not auto-clock out is enabled"},"auto_clock_out_minutes":{"type":"integer","format":"int32","description":"The number of minutes before an employee is automatically clocked out of their shift"},"shift_feedback_enabled":{"type":"boolean","description":"Whether or not employees are prompted for shift feedback at the end of their shift"},"prevent_early_clock_in_enabled":{"type":"boolean","description":"Whether or not employees are prevented from clocking in early and clocking into unscheduled shifts"},"prevent_early_break_clock_in_enabled":{"type":"boolean","description":"Whether or not employees are prevented from ending their breaks early"},"early_in_min":{"type":"integer","format":"int32","description":"Number of minutes before the shift where employee is restricted from clocking in"},"tardy_in_min":{"type":"integer","format":"int32","description":"Number of minutes after a shift's start_at before an employee is considered late"}},"description":"PublicApi_Entities_V1_TimeclockStatus model"},"PublicApi_Entities_V1_ShiftWithTimecard":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"timecard_id":{"type":"integer","format":"int32"},"open":{"type":"boolean","description":"Whether or not the shift is open and can be claimed by any employee"},"role":{"type":"string"},"department":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"location_id":{"type":"integer","format":"int32"},"job_id":{"type":"integer","format":"int32"},"user_id":{"type":"integer","format":"int32"},"wage_rate":{"type":"number","format":"float"},"published":{"type":"boolean"},"scheduled":{"type":"boolean","description":"True if the shift was created via the schedule builder, false if the shift was created due to an employee clocking in to an unscheduled shift"},"labor":{"$ref":"#/definitions/PublicApi_Entities_V1_ScheduledLabor","description":"Various labor data for the shift"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"start_at":{"type":"string","format":"date-time"},"end_at":{"type":"string","format":"date-time"},"note":{"$ref":"#/definitions/PublicApi_Entities_V1_ShiftNote","description":"The note added to the shift"},"timecard":{"$ref":"#/definitions/PublicApi_Entities_V1_Timecard","description":"The timecard represents when the employee actually worked"}}},"PublicApi_Entities_V1_MandatedBreakWithId":{"type":"object","properties":{"paid":{"type":"boolean","description":"Whether or not the break was paid"},"duration":{"type":"integer","format":"int32","description":"How long the break was supposed to be"},"work_period":{"type":"integer","format":"int32","description":"How often the break is supposed to taken"},"id":{"type":"integer","format":"int32"}}}}}