The Zeal Shift object stores earning information for an employee and should be included when an employee check is created. Each shift object consists of earnings components (learn more about earning components [here](https://docs.zeal.com/docs/earning-components)). You may include multiple earnings components in each shift. If you do not include 'wage' in an earning component, Zeal will use the employee's `default_wage`. Zeal is always adding more earning components. Reach out to Zeal at [support@zeal.com](mailto:support@zeal.com) if you have any questions.

| attribute | type | description |
| --- | --- | --- |
| shiftID | string | Zeal Shift ID |
| status | string | Holds one of the following values:<br>`pending``pre-processed``processed` |
| employeeID | string | Zeal Employee ID |
| employeeCheckID | string | Zeal Employee Check ID that contains this shift. See the [Employee Check Object](https://docs.zeal.com/reference/employee-check-object) |
| first\_name | string | First name of employee |
| last\_name | string | Last name of employee |
| metadata | object | Custom object you can attach to the shift object. This is useful for storing additional information about the object in a custom, structured format. See [Metadata](https://docs.zeal.com/reference/metadata) |
| time | datetime | Datetime of when shift was **completed**, in the ISO-8601 format in UTC. Example: `2024-05-12T15:32:00Z` |
| workLocationID | string | Pass a workLocationID to be assigned to the shift object |
| wcc\_code | string | Can be used by employers to track workers compensation codes for each shift completed |
| customerAccountID (Early Access) | string | Can be used to attach a customer account to a shift |
| flsa\_ot\_exempt (Early Access) | boolean | Exempt shifts from FLSA Overtime rules |
| hourly | object | Hourly Earning Component`hours` (number): Number of regular hours worked in this shift<br>`wage` (number): Wage for this employee. If not provided, Zeal uses employee's `default_wage`<br>`custom_name` (string, optional): Name for this earning that will show in the paystub<br>`bill_rate_type` (string, only required if `bill_rate` is provided): The type of bill rate set for this earning. Can be:<br>- `flat`: a fixed bill rate amount<br>- `percentage`: a percentage markup applied to the pay rate<br>- `markup_dollar`: a dollar amount added on top of the pay rate<br>`bill_rate` (number, only required if `bill_rate_type` is provided): The numeric value of the bill rate. Its interpretation depends on the `bill_rate_type` |
| flat | object | Flat Earning Component.<br>Used for paying employees a flat amount for a given number of hours. The `hours` and `wage` are for record keeping purposes only and do not affect the `amount` in any way.<br>`hours` (number): Number of hours<br>`wage` (number, optional): Wage per hour<br>`amount` (number): Amount to be paid for set number of hours<br>`custom_name` (string, optional): Name for this earning that will show in the paystub<br>`bill_rate_type` (string, only required if `bill_rate` is provided): The type of bill rate set for this earning. Can be:<br>- `flat`: a fixed bill rate amount<br>- `percentage`: a percentage markup applied to the pay rate<br>- `markup_dollar`: a dollar amount added on top of the pay rate<br>`bill_rate` (number, only required if `bill_rate_type` is provided): The numeric value of the bill rate. Its interpretation depends on the `bill_rate_type` |
| overtime | object | Overtime Earning Component.<br>Include this earning component in shift if employee worked more than 8 hours during the day.<br>`hours` (number): Number of Overtime hours worked in this shift<br>`wage` (number, optional): Overtime Wage for this employee. If not provided, Zeal uses employee's `default_ot_wage`<br>`custom_name` (string, optional): Name for this earning that will show in the paystub<br>`bill_rate_type` (string, only required if `bill_rate` is provided): The type of bill rate set for this earning. Can be:<br>- `flat`: a fixed bill rate amount<br>- `percentage`: a percentage markup applied to the pay rate<br>- `markup_dollar`: a dollar amount added on top of the pay rate<br>`bill_rate` (number, only required if `bill_rate_type` is provided): The numeric value of the bill rate. Its interpretation depends on the `bill_rate_type` |
| doubletime | object | Doubletime Earning Component<br>Include this earning component for doubletime earnings such as when an employee is working during federal hours or more than 8 hours during the day.<br>`hours` (number): Number of Doubletime hours worked in this shift<br>`wage` (number, optional): Doubletime Wage for this employee. If not provided, Zeal uses employee's `default_dt_wage`<br>`custom_name` (string, optional): Name for this earning that will show in the paystub<br>`bill_rate_type` (string, only required if `bill_rate` is provided): The type of bill rate set for this earning. Can be:<br>- `flat`: a fixed bill rate amount<br>- `percentage`: a percentage markup applied to the pay rate<br>- `markup_dollar`: a dollar amount added on top of the pay rate<br>`bill_rate` (number, only required if `bill_rate_type` is provided): The numeric value of the bill rate. Its interpretation depends on the `bill_rate_type` |
| reimbursement | object | Reimbursement Earning Component<br>Include this component to reimburse an employee for any business-related expenses<br>`amount` (number): Amount to be paid in reimbursement |
| pto | object | PTO Earning Component<br>Include this component to mark the amount of PTO hours for an employee<br>`hours` (number): Number of PTO hours<br>`wage` (number, optional): Wage for this employee. If not provided, Zeal uses employee's `default_wage`<br>`custom_name` (string, optional): Name for this earning that will show in the paystub<br>`apply_accrual_usage` (boolean, optional): If true, the number of hours will be applied to the specified accrual policy's usage<br>`accrual_policy_code` (string, optional): The code of the accrual policy to which these hours should be applied. Required only if `apply_accrual_usage` is true<br>`bill_rate_type` (string, only required if `bill_rate` is provided): The type of bill rate set for this earning. Can be:<br>- `flat`: a fixed bill rate amount<br>- `percentage`: a percentage markup applied to the pay rate<br>- `markup_dollar`: a dollar amount added on top of the pay rate<br>`bill_rate` (number, only required if `bill_rate_type` is provided): The numeric value of the bill rate. Its interpretation depends on the `bill_rate_type` |
| vacation | object | Vacation Earning Component<br>Include this earning component to mark vacation hours<br>`hours` (number): Number of Vacation hours<br>`wage` (number, optional): Wage for this employee. If not provided, Zeal uses employee's `default_wage`<br>
`custom_name (string, optional): Name for this earning that will show in the paystub<br>`apply_accrual_usage` (boolean, optional): If true, the number of hours will be applied to the specified accrual policy's usage<br>`accrual_policy_code` (string, optional): The code of the accrual policy to which these hours should be applied. Required only if `apply_accrual_usage` is true<br>`bill_rate_type` (string, only required if `bill_rate` is provided): The type of bill rate set for this earning. Can be:<br>- `flat`: a fixed bill rate amount<br>- `percentage`: a percentage markup applied to the pay rate<br>- `markup_dollar`: a dollar amount added on top of the pay rate<br>`bill_rate` (number, only required if `bill_rate_type` is provided): The numeric value of the bill rate. Its interpretation depends on the `bill_rate_type` |
| sick | object | Sick Pay Earning Component<br>Include this earning component to mark the number of sick pay hours<br>`hours` (number): Number of Sick hours<br>`wage` (number, optional): Wage for this employee. If not provided, Zeal uses employee's `default_wage`<br>`custom_name` (string, optional): Name for this earning that will show in the paystub<br>`apply_accrual_usage` (boolean, optional): If true, the number of hours will be applied to the specified accrual policy's usage<br>`accrual_policy_code` (string, optional): The code of the accrual policy to which these hours should be applied. Required only if `apply_accrual_usage` is true<br>`bill_rate_type` (string, only required if `bill_rate` is provided): The type of bill rate set for this earning. Can be:<br>- `flat`: a fixed bill rate amount<br>- `percentage`: a percentage markup applied to the pay rate<br>- `markup_dollar`: a dollar amount added on top of the pay rate<br>`bill_rate` (number, only required if `bill_rate_type` is provided): The numeric value of the bill rate. Its interpretation depends on the `bill_rate_type` |
| holiday | object | Holiday Earning Component`hours` (number): Number of Holiday hours<br>`wage` (number, optional): Wage for this employee. If not provided, Zeal uses employee's `default_wage`<br>`custom_name` (string, optional): Name for this earning that will show in the paystub<br>`apply_accrual_usage` (boolean, optional): If true, the number of hours will be applied to the specified accrual policy's usage<br>`accrual_policy_code` (string, optional): The code of the accrual policy to which these hours should be applied. Required only if `apply_accrual_usage` is true<br>`bill_rate_type` (string, only required if `bill_rate` is provided): The type of bill rate set for this earning. Can be:<br>- `flat`: a fixed bill rate amount<br>- `percentage`: a percentage markup applied to the pay rate<br>- `markup_dollar`: a dollar amount added on top of the pay rate<br>`bill_rate` (number, only required if `bill_rate_type` is provided): The numeric value of the bill rate. Its interpretation depends on the `bill_rate_type` |
| piecework | object | Piecework Earning Component<br>Use this earning component if an employee needs to be paid on a per-unit or per-project basis<br>`hours` (number): Total number of hours spent<br>`units` (number): Total number of units produced by this employee<br>`amount_per_unit` (number): Amount to be paid out per unit produced by this employee<br>`custom_name` (string, optional): Name for this earning that will show in the paystub<br>`bill_rate_type` (string, only required if `bill_rate` is provided): The type of bill rate set for this earning. Can be:<br>- `flat`: a fixed bill rate amount<br>- `percentage`: a percentage markup applied to the pay rate<br>- `markup_dollar`: a dollar amount added on top of the pay rate<br>`bill_rate` (number, only required if `bill_rate_type` is provided): The numeric value of the bill rate. Its interpretation depends on the `bill_rate_type` |
| charged\_tips | object | Charged Tips Earning Component`amount` (number): Amount for tip<br>`custom_name` (string, optional): Name for this earning that will show in the paystub |
| cash\_tips | object | Cash Tips Earning Component`amount` (number): Amount for tip<br>`custom_name` (string, optional): Name for this earning that will show in the paystub |
| discretionary\_bonus | object | Discretionary Bonus Earning Component`amount` (number): Amount to be paid for discretionary bonus<br>`custom_name` (string, optional): Name for this earning that will show in the paystub |
| nondiscretionary\_bonus | object | Non-discretionary Bonus Earning Component`amount` (number): Amount to be paid for non-discretionary bonus<br>`custom_name` (string, optional): Name for this earning that will show in the paystub |
| commission | object | Commission Earning Component`amount` (number): Amount for Commission<br>`custom_name` (string, optional): Name for this earning that will show in the paystub |
| commodity | object | Commodity Earning Component`amount` (number): Amount for Commodity<br>`custom_name` (string, optional): Name for this earning that will show in the paystub |
| shareholder\_healthcare\_reimbursement | object | Shareholder Premium Earning Component`flat` (number): Flat amount for healthcare premium |
| gross\_up | object | Gross-up Earning Component`desired_net` (number): The desired net amount that will be converted to gross. Note: the `calculated_gross_amount` will be returned by the GET endpoint once a check is in the processed status.<br>`custom_name` (string, optional): Name for this earning that will show in the paystub |
| correction | object | Correction Earning Component`hours` (number, optional): The number of hours for a correction<br>`amount` (number): The gross wage amount to be corrected. Note: this field only accepts a negative number<br>`custom_name` (string, optional): Name for this earning that will show in the paystub<br>`bill_rate_type` (string, only required if `bill_rate` is provided): The type of bill rate set for this earning. Can be:<br>- `flat`: a fixed bill rate amount<br>- `percentage`: a percentage markup applied to the pay rate<br>- `markup_dollar`: a dollar amount added on top of the pay rate<br>`bill_rate` (number, only required if `bill_rate_type` is provided): The numeric value of the bill rate. Its interpretation depends on the `bill_rate_type` |
| meal\_break | object | Meal Break Premium Earning Component`units` (number): The number of breaks<br>`amount_per_unit` (number): The amount to be paid for each break. Note: this field is calculated at the time of check processing<br>`custom_name` (string, optional): Name for this earning that will show in the paystub |
| rest\_break | object | Rest Break Premium Earning Component`units` (number): The number of breaks<br>`amount_per_unit` (number): The amount to be paid for each break. Note: this field is calculated at the time of check processing<br>`custom_name` (string, optional): Name for this earning that will show in the paystub |
| owners\_draw | object | Owner's Draw earning component (Early Access)amount (number): Amount to be paid<br>custom\_name (string, optional): Name for this earning that will show in the paystub |

Example Shift Object

```json
{
  "shiftID": "4712c99283304b7b989179aae36b4590",
  "status": "pending",
  "employeeID": "1234567890",
  "employeeCheckID": "1098876345",
  "first_name": "Erlich",
  "last_name": "Bachman",
  "metadata": {},
  "time": "2023-04-15T14:00:00Z",
  "wcc_code": "12324",
  "hourly": {
    "hours": 8,
    "wage": 20,
    "custom_name": "Downtown Pickup #1234",
    "bill_rate_type": "percentage",
    "bill_rate": 15
  },
  "overtime": {
    "hours": 2,
    "wage": 30,
    "bill_rate_type": "percentage",
    "bill_rate": 20
  },
  "reimbursement": {
    "amount": 8.5
  }
}
```
