> ## 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 Contractor Payment

> Create a contractor payment in Zeal; the payment is processed the day before the pay_date.

Create a contractor payment in Zeal. Zeal will process the payment for the contractor the day before the `pay_date`.

Multiple contractor payments may be submitted for the same contractor and the same `pay_date`.

## Returns

Returns boolean indicating success status and contractor payment object if successful.

| attribute | type    | description                                                                                                                                                                                                                                         |
| --------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| success   | boolean | Response status                                                                                                                                                                                                                                     |
| data      | object  | Contractor Payment object                                                                                                                                                                                                                           |
| errors    | array   | If `success` is false, errors contains a list of error objects: `message` (string, error message), `status` (number, HTTP response code), `code` (number, error code - see [Error codes](https://docs.zeal.com/reference/introduction/error-codes)) |


## OpenAPI

````yaml openapi/zeal-api.json post /contractorPayment
openapi: 3.1.0
info:
  title: zeal-api
  version: '1.0'
servers:
  - url: https://api.zeal.com
security:
  - sec0: []
paths:
  /contractorPayment:
    post:
      summary: Create Contractor Payment
      operationId: create-contractor-payment
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - companyID
                - contractorID
                - pay_date
              properties:
                companyID:
                  type: string
                  description: Company ID of employer
                contractorID:
                  type: string
                  description: ID of Contractor that needs to be paid out
                approval_required:
                  type: boolean
                  description: >-
                    Set to `true` if this payment requires manual approval by
                    the employer. Otherwise, by default, Zeal will automatically
                    process the payment two business days before the `pay_date`
                  default: false
                pay_date:
                  type: string
                  description: >-
                    Pay date for this payment. Formatted as a date in ISO-8601
                    format (YYYY-MM-DD). If the pay_date falls on a weekend/bank
                    holiday or the current time is after 2 PM two days before
                    the given pay_date, please correct the date and resubmit. We
                    will not roll forward the pay_date automatically
                  format: date
                amount:
                  type: number
                  description: >-
                    Amount that needs to be paid out. Only required if no
                    payment items are present.
                  format: float
                payment_items:
                  type: array
                  description: >-
                    Array of payment item objects. If payment items are present,
                    `amount` is not required. 
                  items:
                    type: object
                    properties: {}
                speed:
                  type: string
                  description: >-
                    Accepts `two_day`, `one_day`, `one_day_no_reserve`,
                    `zero_day`,`zero_day_no_reserve` or `instant` as values
                    (**Early Access**)
                  enum:
                    - two_day
                    - one_day
                    - one_day_no_reserve
                    - zero_day
                    - instant
                    - zero_day_no_reserve
                type:
                  type: string
                  description: >-
                    Type of payment. Only `regular` payments are reported on a
                    contractor's Form 1099-NEC.
                  default: regular
                  enum:
                    - regular
                    - reimbursement
                disbursement:
                  type: object
                  description: >-
                    The disbursement for the how payment will be made. Defaults
                    to `direct_deposit` if left empty.
                  properties:
                    method:
                      type: string
                      description: >-
                        The method of disbursement. There are 6 options:
                        `direct_deposit` (Zeal will make a direct deposit to the
                        contractor's bank account using Next Day ACH),
                        `direct_deposit_same_day` (Zeal will make a direct
                        deposit to the contractor's bank account using Same Day
                        ACH), `physical_check` (Zeal will send a physical check
                        to the employee's home address on file), `prepaid` (Zeal
                        will *not* disburse the net pay), `paycard` (Zeal will
                        instantly transfer funds to the existing paycard), and
                        `instant_pay` (Zeal will send funds to the existing
                        worker's Instant Pay wallet)
                  required:
                    - method
                customerAccountID:
                  type: string
                  description: >-
                    ID of Customer Account associated with this Contractor
                    Payment
                apply_contractor_deductions:
                  type: boolean
                  description: >-
                    Applies a deduction to this check for each contractor
                    deduction template that is effective at the time of the pay
                    date for the contractor. **Note: Only applicable when
                    payment_items is provided**
                metadata:
                  type: object
                  description: 'Custom metadata object. '
                  default: 'false'
                  properties:
                    example_metadata:
                      type: string
            examples:
              Request Example:
                value:
                  approval_required: false
                  contractorID: 62350595e7f1222323b3b824
                  companyID: 24b5b29f05234840b119c34c1358940c
                  pay_date: '2023-07-25'
                  amount: 21
                  disbursement:
                    method: prepaid
                  metadata:
                    example: example
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    success: true
                    data:
                      contractorPaymentID: '0987654321'
                      status: pending
                      disbursement_status: pending
                      first_name: erlich
                      middle_name: null
                      last_name: bachman
                      companyID: 1b5n28nrideucd24
                      contractorID: '123456789'
                      approval_required: false
                      approved: false
                      pay_date: '2023-10-01'
                      amount: '100'
                      triggered: false
                      triggered_at: null
                      customerAccountID: null
                      payment_items: []
                      metadata:
                        example: example
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                    default: true
                  data:
                    type: object
                    properties:
                      contractorPaymentID:
                        type: string
                        example: '0987654321'
                      status:
                        type: string
                        example: pending
                      disbursement_status:
                        type: string
                        example: pending
                      first_name:
                        type: string
                        example: erlich
                      middle_name:
                        path: /orders-4
                      last_name:
                        type: string
                        example: bachman
                      companyID:
                        type: string
                        example: 1b5n28nrideucd24
                      contractorID:
                        type: string
                        example: '123456789'
                      approval_required:
                        type: boolean
                        example: false
                        default: true
                      approved:
                        type: boolean
                        example: false
                        default: true
                      pay_date:
                        type: string
                        example: '2023-10-01'
                      amount:
                        type: string
                        example: '100'
                      triggered:
                        type: boolean
                        example: false
                        default: true
                      triggered_at:
                        path: /orders-4
                      customerAccountID:
                        path: /orders-4
                      metadata:
                        type: object
                        properties:
                          example:
                            type: string
                            example: example
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value:
                    success: false
                    errors:
                      - message: >-
                          Contractor Payment for this contractor and pay date
                          already exists.
                        code: 81
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                    default: true
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        message:
                          type: string
                          example: >-
                            Contractor Payment for this contractor and pay date
                            already exists.
                        code:
                          type: integer
                          example: 81
                          default: 0
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: bearer

````