---
title: "Generate a 1099 form [DEMO]"
method: POST
path: "/v1/sandbox/generate_1099"
tags: ["Contractor Forms"]
---

# Generate a 1099 form [DEMO]

`POST /v1/sandbox/generate_1099`

> 🚧 Demo action
>
> This action is only available in the Demo environment

Generates a 1099 document for testing purposes.

scope: `contractors:write`

## Headers

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

## Request body

- object
  - `contractor_id` string, required — The contractor UUID.
  - `year` integer — Must be equal to or more recent than 2015. If not specified, defaults to the previous year.

## Response `201`

Created

- Form1099
  - `uuid` string, required — The UUID of the form
  - `name` string — The type identifier of the form
  - `title` string — The title of the form
  - `description` string — The description of the form
  - `draft` boolean — If the form is in a draft state. E.g. End of year tax forms may be provided in a draft state prior to being finalized.
  - `year` integer, nullable — The year of this form. For some forms, e.g. tax forms, this is the year which the form represents. A 1099 for January - December 2022 would be delivered in January 2023 and have a year value of 2022. This value is nullable and will not be present on all forms.
  - `quarter` integer, nullable — The quarter of this form. This value is currently always null since it is not present on any contractor forms.
  - `requires_signing` boolean — A boolean flag that indicates whether the form needs signing or not. Note that this value will change after the form is signed.
  - `document_content_type` string, nullable — The content type of the associated document. Most forms are PDFs with a content type of `application/pdf`. Some tax file packages will be zip files (containing PDFs) with a content type of `application/zip`. This attribute will be `null` when the document has not been prepared.
  - `contractor_uuid` string — The contractor UUID

## Other responses

- `404` — Not Found The requested resource does not exist. Make sure the provided 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.net/gusto/apis/gusto-api.md) · [All operations](https://skmtc.net/gusto/apis/gusto-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gusto/gusto-api/revisions/826dfa57fb3b/schema)
