> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Bulk Employee Checks

> Create a batch of up to 100 employee checks in a single request as part of a payroll run.



## OpenAPI

````yaml openapi/zeal-api.json post /employeeChecks
openapi: 3.1.0
info:
  title: zeal-api
  version: '1.0'
servers:
  - url: https://api.zeal.com
security:
  - sec0: []
paths:
  /employeeChecks:
    post:
      summary: Create Bulk Employee Checks
      description: Create a batch of employee checks.
      operationId: create-bulk-employee-checks
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - companyID
              properties:
                companyID:
                  type: string
                  description: Company ID of the employer
                employeeChecks:
                  type: array
                  description: Array of employee check objects
                  items:
                    properties:
                      employeeID:
                        type: string
                        description: Employee ID of the employee
                      reportingPeriodID:
                        type: string
                        description: >-
                          The reporting period ID that you want this employee
                          check to belong to. See [Reporting
                          Periods](ref:reporting-periods)
                      check_date:
                        type: string
                        description: >-
                          Check date for this employee check. If the
                          `check_date` falls on a weekend/bank holiday, or the
                          current time is after 2PM PST, two days before the
                          `check_date`, adjust the `check_date` to the next
                          valid business day. Zeal will not roll forward this
                          date automatically.
                        format: date
                      approval_required:
                        type: boolean
                        description: >-
                          Set to true if this check requires manual approval by
                          the employer. Otherwise, by default, Zeal will
                          automatically process the check on the day before the
                          check date. You can approve the check either in the
                          dashboard, or by using [update
                          check](ref:update-employee-check)
                      disbursement:
                        type: object
                        description: >-
                          This object includes information regarding how the net
                          pay is disbursed to the employee. Zeal supports Direct
                          Deposit, Download Check, and Prepaid disbursement
                          methods.
                        properties:
                          method:
                            type: string
                            description: >-
                              The method of disbursement. There are 5 options:
                              `direct_deposit` (Zeal will make a direct deposit
                              to the employee's bank account), `download_check`
                              (Zeal will give you the link to a PDF version of
                              the check), `physical_check` (Zeal will send a
                              physical check to the employee's home address on
                              file), `prepaid` (Zeal will *not* disburse the net
                              pay), and `paycard` (Zeal will instantly transfer
                              funds to the existing paycard)
                            default: direct_deposit
                            enum:
                              - direct_deposit
                              - download_check
                              - physical_check
                              - prepaid
                              - paycard
                      metadata:
                        type: object
                        description: >-
                          Custom object you can attach to the employee check
                          object. This is useful for storing additional
                          information about the object in a custom, structured
                          format. Individual keys can be unset by posting an
                          empty value to them. All keys can be unset by posting
                          an empty value to metadata. [Metadata](ref:metadata)
                      shifts:
                        type: array
                        description: >-
                          Array of shift objects. The set of shifts attached to
                          this employee check describe the work done and the
                          earnings owed to this employee. You can only create
                          shifts by creating an employee check (through this
                          endpoint). However, you can edit and delete shifts
                          that are still pending. Also supports various earning
                          components as objects. See [Shift
                          Object](ref:shift-object) for more information.
                        items:
                          properties:
                            time:
                              type: string
                              description: ISO-8601 indicating when the shift was completed
                              format: date-time
                            hourly:
                              type: object
                              required:
                                - hours
                              properties:
                                hours:
                                  type: number
                                  description: Number of regular hours worked in this shift
                                  default: 0
                                  format: float
                                wage:
                                  type: number
                                  description: >-
                                    Wage for this employee. If not provided,
                                    Zeal uses employee's default_wage
                                  default: 0
                                  format: float
                                custom_name:
                                  type: string
                                  description: >-
                                    Custom name to be attached to an earning
                                    component
                          required:
                            - time
                          type: object
                      idempotency_key:
                        type: string
                        description: >-
                          Unique key given to a specific employee check object
                          (lasts 24 hours)
                    required:
                      - employeeID
                      - reportingPeriodID
                      - check_date
                    type: object
            examples:
              Request Example:
                value:
                  companyID: fc235fcc12ae4c6cce4082f357715bcfa
                  employeeChecks:
                    - employeeID: 6cc3cc3f37c91f5f123c25cde490e
                      reportingPeriodID: 235ccd0c9291f5f2b00c25de490e
                      check_date: '2024-03-27'
                      approval_required: true
                      shifts:
                        - time: '2024-03-27T19:38:55.527Z'
                          hourly:
                            hours: 5
                            wage: 40
                            custom_name: example
                    - employeeID: 5cc33f3791f52325d2e490e
                      reportingPeriodID: 235cd09291f5f2b0025de490e
                      check_date: '2022-09-27'
                      approval_required: true
                      shifts:
                        - time: '2024-03-27T19:38:55.527Z'
                          hourly:
                            hours: 4
                            wage: 20
                            custom_name: example
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    data:
                      success: true
                      failed_checks: []
                      created_checks:
                        - employeeCheckID: fbd359a66e8f4ae0a3erer3bcab9ada6063
                          employerCheckID: null
                          companyID: fc235fcc12ae4c6cce4082f357715bcfa
                          employeeID: 6cc3cc3f37c91f5f123c25cde490e
                          status: pending
                          is_salary: false
                          approval_required: false
                          approved: false
                          first_name: Erlich
                          middle_initial: null
                          last_name: Bachman
                          reportingPeriodID: 5ecee24ac2b00264c105ab97
                          check_date: '2024-05-15'
                          speed: two_day
                          metadata:
                            newKey: New Value
                          disbursement:
                            method: download_check
                            history: []
                            link: null
                          taxes: []
                          gross_pay: 300
                          net_pay: null
                          total_employer_taxes: null
                          total_employee_taxes: null
                          totals:
                            gross_earnings: 0
                            gross_pay: 300
                            net_pay: 0
                            employer_taxes: 0
                            employee_taxes: 0
                            employee_deductions: 0
                            employee_garnishments: 0
                            employer_deductions: 0
                            company_debit: 0
                            company_cash_requirement: 0
                          shifts:
                            - shiftID: 7ea23a1c34b245dde1150bffed65d686
                              status: null
                              employeeID: 6cc3cc3f37c91f5f123c25cde490e
                              employeeCheckID: fbd359a66e8f4ae0a3erer3bcab9ada6063
                              first_name: Erlich
                              last_name: Bachman
                              time: '2024-09-27T19:38:55Z'
                              metadata: {}
                              wcc_code: null
                              workLocationID: null
                              customerAccountID: null
                              flsa_ot_exempt: null
                              hourly:
                                hours: 10
                                wage: 30
                          deductions: []
                    success: true
                    testMode: false
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      success:
                        type: boolean
                        example: true
                        default: true
                      failed_checks:
                        type: array
                      created_checks:
                        type: array
                        items:
                          type: object
                          properties:
                            employeeCheckID:
                              type: string
                              example: fbd359a66e8f4ae0a3erer3bcab9ada6063
                            employerCheckID: {}
                            companyID:
                              type: string
                              example: fc235fcc12ae4c6cce4082f357715bcfa
                            employeeID:
                              type: string
                              example: 6cc3cc3f37c91f5f123c25cde490e
                            status:
                              type: string
                              example: pending
                            is_salary:
                              type: boolean
                              example: false
                              default: true
                            approval_required:
                              type: boolean
                              example: false
                              default: true
                            approved:
                              type: boolean
                              example: false
                              default: true
                            first_name:
                              type: string
                              example: Erlich
                            middle_initial: {}
                            last_name:
                              type: string
                              example: Bachman
                            reportingPeriodID:
                              type: string
                              example: 5ecee24ac2b00264c105ab97
                            check_date:
                              type: string
                              example: '2024-05-15'
                            speed:
                              type: string
                              example: two_day
                            metadata:
                              type: object
                              properties:
                                newKey:
                                  type: string
                                  example: New Value
                            disbursement:
                              type: object
                              properties:
                                method:
                                  type: string
                                  example: download_check
                                history:
                                  type: array
                                link: {}
                            taxes:
                              type: array
                            gross_pay:
                              type: integer
                              example: 300
                              default: 0
                            net_pay: {}
                            total_employer_taxes: {}
                            total_employee_taxes: {}
                            totals:
                              type: object
                              properties:
                                gross_earnings:
                                  type: integer
                                  example: 0
                                  default: 0
                                gross_pay:
                                  type: integer
                                  example: 300
                                  default: 0
                                net_pay:
                                  type: integer
                                  example: 0
                                  default: 0
                                employer_taxes:
                                  type: integer
                                  example: 0
                                  default: 0
                                employee_taxes:
                                  type: integer
                                  example: 0
                                  default: 0
                                employee_deductions:
                                  type: integer
                                  example: 0
                                  default: 0
                                employee_garnishments:
                                  type: integer
                                  example: 0
                                  default: 0
                                employer_deductions:
                                  type: integer
                                  example: 0
                                  default: 0
                                company_debit:
                                  type: integer
                                  example: 0
                                  default: 0
                                company_cash_requirement:
                                  type: integer
                                  example: 0
                                  default: 0
                            shifts:
                              type: array
                              items:
                                type: object
                                properties:
                                  shiftID:
                                    type: string
                                    example: 7ea23a1c34b245dde1150bffed65d686
                                  status: {}
                                  employeeID:
                                    type: string
                                    example: 6cc3cc3f37c91f5f123c25cde490e
                                  employeeCheckID:
                                    type: string
                                    example: fbd359a66e8f4ae0a3erer3bcab9ada6063
                                  first_name:
                                    type: string
                                    example: Erlich
                                  last_name:
                                    type: string
                                    example: Bachman
                                  time:
                                    type: string
                                    example: '2024-09-27T19:38:55Z'
                                  metadata:
                                    type: object
                                    properties: {}
                                  wcc_code: {}
                                  workLocationID: {}
                                  customerAccountID: {}
                                  flsa_ot_exempt: {}
                                  updatedAt:
                                    type: string
                                    format: date-time
                                    example: '2024-01-21T21:29:42Z'
                                  hourly:
                                    type: object
                                    properties:
                                      hours:
                                        type: integer
                                        example: 10
                                        default: 0
                                      wage:
                                        type: integer
                                        example: 30
                                        default: 0
                            deductions:
                              type: array
                  success:
                    type: boolean
                    example: true
                    default: true
                  testMode:
                    type: boolean
                    example: false
                    default: true
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value:
                    data:
                      success: true
                      failed_checks:
                        - employeeID: 6cc3cc3f37c91f5f123c25cde490e
                          error:
                            message: >-
                              This worker does not have a bank account. Please
                              choose download_check or prepaid as the method of
                              disbursement.
                            status: 400
                            code: 13
                      created_checks: []
                    success: true
                    testMode: true
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      success:
                        type: boolean
                        example: true
                        default: true
                      failed_checks:
                        type: array
                        items:
                          type: object
                          properties:
                            employeeID:
                              type: string
                              example: 6cc3cc3f37c91f5f123c25cde490e
                            error:
                              type: object
                              properties:
                                message:
                                  type: string
                                  example: >-
                                    This worker does not have a bank account.
                                    Please choose download_check or prepaid as
                                    the method of disbursement.
                                status:
                                  type: integer
                                  example: 400
                                  default: 0
                                code:
                                  type: integer
                                  example: 13
                                  default: 0
                      created_checks:
                        type: array
                  success:
                    type: boolean
                    example: true
                    default: true
                  testMode:
                    type: boolean
                    example: true
                    default: true
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.