# Create a Bundle

**POST** `/bundles/`

Create a new Bundle (signing workflow) consisting of one or more Documents and one
or more Signers. The Bundle is launched immediately upon creation, sending the
documents to the signers for signature.

## Document sources

Each Document in the `documents` array can be provided in one of several ways. Specify
exactly one source per document:

- **`file_url`** — a publicly accessible URL of a PDF file that Blueink will download.
- **`file_b64`** — a base64-encoded PDF file embedded directly in the request.
- **`file_html`** — an HTML string that Blueink converts to a PDF and inspects for
  form fields. See [Generate PDFs from HTML](/docs/guides/html-to-pdf/).
- **`file_index`** — when uploading files via `multipart/form-data`, the index of the
  file in the `files` array. See the multipart request schema below.

To create a Bundle from a pre-built Envelope Template instead, use the
[Create a Bundle from an Envelope Template](/docs/api/create-bundle-from-envelope-template)
endpoint.

## Request

### Request Body

- `application/json` — BundleRequest (object) required: packets, documents
- `multipart/form-data` — (object)

### Responses

- `201`: Returned when the Bundle is successfully created. Note that some Bundle processing (like
parsing tags in documents, or processing large documents) can be time consuming. Therefore
this request return a '201' success message after preliminary data validation has been performed.
At this point, not all documents are guaranteed to have been processed, so it is possible
that Bundle creation could fail with a document processing error. If that is the case,
the error status will be reflected in the Bundle response returned by a subsequent call
to retrieve a Bundle.

Any errors are also reported via webhooks, so your App or integration
does not need to poll to confirm successful Bunde creation.

  - Content types: `application/json`
- `400`: Bad Request
  - Content types: `application/json`
