# Send an envelope using multiple templates

Combine multiple templates into a single envelope when your workflow requires signers to complete several documents at once. This approach is useful for onboarding packs, contract bundles, and multi-stage compliance flows.

This guide builds on [Send an envelope using a template](/guides/send-envelope/send-envelope-template). Complete that guide first if you have not already.

## Prerequisites

Ensure you gather the following for each template you want to include:

- `template_fingerprint` — the unique identifier for the template
- `party_id` — the identifier for each signing position within the template
- `field_id` — the identifier for any merge fields you want to prefill (optional)


Retrieve these values by calling the [Get template endpoint](/openapi/templates/gettemplate).

## How multiple templates differ from a single template

The request structure is almost identical to the single-template flow. The difference is how you assign signers to templates.

With a single template, each signer maps to one `party_id`. With multiple templates, each signer may need to sign fields across several templates. Replace the single `party_id` with a `party_documents` array that maps the signer to their specific position in each template.

## Build the request

Send a POST request to the envelopes endpoint:


```http
POST https://api.signable.co.uk/v1/envelopes
```

### Structure the envelope parties

For each signer, include a `party_documents` array containing:

| Field | Description |
|  --- | --- |
| `party_id` | The signing position identifier from a specific template |
| `document_template_fingerprint` | The template that contains this signing position |


A signer can appear in one template, multiple templates, or all templates depending on your workflow.

### Structure the envelope documents

List each template in the `envelope_documents` array. Optionally prefill merge fields by including a `document_merge_fields` array with the `field_id` and `field_value` for each field.

### Example request

The following request creates an envelope with two templates and two signers:


```json
{
  "envelope_title": "Melbourne Road 23/06/25",
  "envelope_parties": [
    {
      "party_name": "Alex Mitchell",
      "party_email": "alex@example.co.uk",
      "party_role": "signer",
      "party_documents": [
        {
          "party_id": 20748256,
          "document_template_fingerprint": "28f9add86f25028df2eee9adee866aba"
        },
        {
          "party_id": 20748265,
          "document_template_fingerprint": "88d2c9e8dc4a69ce1cd97ac1684f3e45"
        }
      ]
    },
    {
      "party_name": "Jordan Smith",
      "party_email": "jordan@example.co.uk",
      "party_role": "signer",
      "party_documents": [
        {
          "party_id": 20748255,
          "document_template_fingerprint": "28f9add86f25028df2eee9adee866aba"
        }
      ]
    }
  ],
  "envelope_documents": [
    {
      "document_title": "TC 2025 v2",
      "document_template_fingerprint": "28f9add86f25028df2eee9adee866aba",
      "document_merge_fields": [
        {
          "field_id": "454958773",
          "field_value": "Note that breakables are not included in rent cost"
        }
      ]
    },
    {
      "document_title": "TC 2025 v3",
      "document_template_fingerprint": "88d2c9e8dc4a69ce1cd97ac1684f3e45"
    }
  ]
}
```

### Understand the example

This request assigns signers to templates as follows:

**Alex Mitchell** signs both templates:

- Signing position `20748256` in the first template (`28f9...`)
- Signing position `20748265` in the second template (`88d2...`)


**Jordan Smith** signs one template:

- Signing position `20748255` in the first template (`28f9...`)


The first template includes a prefilled merge field. When Alex and Jordan open the document, the field with ID `454958773` contains the text "Note that breakables are not included in rent cost."

## After you send the request

A successful request returns an envelope fingerprint in the response. Signable sends each signer an email with their signing link. Signers see all documents assigned to them within a single signing session.

To track envelope progress programmatically, subscribe to webhooks for status updates.

## Related guides

- [Send an envelope using a template](/guides/send-envelope/send-envelope-template) — Covers the single-template workflow that this guide builds on
- [Webhooks](/webhooks) — Configure notifications to track when signers complete documents