---
title: "Create a contractor payment"
method: POST
path: "/v1/companies/{company_id}/contractor_payments"
tags: ["Contractor Payments"]
---

# Create a contractor payment

`POST /v1/companies/{company_id}/contractor_payments`

## Request

- Base URL: `https://api.gusto-demo.com`
- URL: `https://api.gusto-demo.com/v1/companies/{company_id}/contractor_payments`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/gusto/apis/gusto-api/docs/v1/companies/:company_id/contractor_payments/post.ts> (a function with typed inputs; its response is checked against the schema)

Pay a contractor. Information needed depends on the contractor's wage type (hourly vs fixed)

scope: `payrolls:run`

## Path parameters

- `company_id` string, required

## Headers

- `X-Gusto-API-Version` '2026-06-15'

## Request body

- ContractorPaymentBody: Request body for creating a contractor payment.
  - `contractor_uuid` string, required: The contractor receiving the payment.
  - `date` string, date, required: Date of contractor payment.
  - `payment_method` 'Direct Deposit' | 'Check' | 'Historical Payment'
  - `wage` string, float: If the contractor is on a fixed wage, this is the fixed wage payment for the contractor, regardless of hours worked.
  - `hours` string, float: If the contractor is on an hourly wage, this is the number of hours that the contractor worked for the payment.
  - `bonus` string, float: If the contractor is on an hourly wage, this is the bonus the contractor earned.
  - `reimbursement` string, float: Reimbursed wages for the contractor.
  - `invoice_number` string: An optional invoice number to associate with this contractor payment. This will be visible to the contractor on their paystub. Maximum 25 characters.
  - `memo` string: An optional note or memo for this contractor payment. This will be visible to the contractor on their paystub.

## Response `200`

successful

- ContractorPayment: The representation of a single contractor payment.
  - `uuid` string, required: The unique identifier of the contractor payment in Gusto.
  - `contractor_uuid` string: The UUID of the contractor.
  - `bonus` string, float: The bonus amount in the payment.
  - `date` string: The payment date.
  - `hours` string, float: The number of hours worked for the payment.
  - `payment_method` 'Direct Deposit' | 'Check' | 'Historical Payment' | 'Correction Payment': The payment method.
  - `reimbursement` string, float: The reimbursement amount in the payment.
  - `status` 'Funded' | 'Unfunded': Contractor payment status
  - `hourly_rate` string, float: The rate per hour worked for the payment.
  - `may_cancel` boolean: Determine if the contractor payment can be cancelled.
  - `wage` string, float: The fixed wage of the payment, regardless of hours worked.
  - `wage_type` 'Hourly' | 'Fixed': The wage type for the payment.
  - `wage_total` string, float: (hours * hourly_rate) + wage + bonus
  - `invoice_number` string, nullable: An optional invoice number associated with this contractor payment. This will be visible to the contractor on their paystub. Maximum 25 characters.
  - `memo` string, nullable: An optional note or memo for this contractor payment. This will be visible to the contractor on their paystub.

## Other responses

- `404`: Not Found The requested resource does not exist. Make sure the provided ID/UUID is valid.
- `422`: Unprocessable Entity This may happen when the body of your request contains errors such as `invalid_attribute_value`, or the request fails due to an `invalid_operation`. See the [Errors Categories](https://docs.gusto.com/embedded-payroll/docs/error-categories) guide for more details.

---

[API](https://skmtc.dev/gusto/apis/gusto-api.md) - [All operations](https://skmtc.dev/gusto/apis/gusto-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gusto/apis/gusto-api/revisions/f98575fa2a5e?raw)
