> For the complete documentation index, see [llms.txt](https://2sign-co-il.gitbook.io/2sign.co.il-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://2sign-co-il.gitbook.io/2sign.co.il-docs/tasks-attachments/attachments-in-signature-routines.md).

# Attachments in Signature Routines

When using a Signature Routine, a single Task can contain multiple signers.

Each signer is represented by a separate `TaskClient`, and each `TaskClient` has its own `guid`.

#### Task ID vs. TaskClient GUID

In a regular Task, the Task ID can identify the Task.

In a Signature Routine, the `taskId` identifies the Signature Routine itself and does not identify a specific signer.

Therefore, when retrieving a document or attachment for a specific signer, you must use the **TaskClient GUID**.

#### Example

A Signature Routine can contain multiple TaskClients:

```
Signature Routine
│
├── TaskClient 1 → Signer 1
├── TaskClient 2 → Signer 2
└── TaskClient 3 → Signer 3
```

Each TaskClient has its own GUID.

For example:

```
Signer 1 → TaskClient GUID: 11111111-1111-1111-1111-111111111111
Signer 2 → TaskClient GUID: 22222222-2222-2222-2222-222222222222
```

To retrieve the signed document for **Signer 2**, use the TaskClient GUID:

```
GET /api/V2/BaseTasks/GetSignedTaskLocationBlob?guid=22222222-2222-2222-2222-222222222222
```

The same rule applies when retrieving the original document or other attachments for a specific signer.

#### Important

Do not use the Signature Routine's `taskId` to retrieve a specific signer's document.

Use:

```
guid = TaskClient.TaskGuid
```

This ensures that the API retrieves the document or attachment belonging to the requested signer.

#### RoutinePrimaryTaskGuid

When working with a Signature Routine, responses may also include:

```
{
  "RoutinePrimaryTaskGuid": "..."
}
```

This value identifies the primary Task of the Signature Routine and can be used to associate the individual TaskClient with the overall Signature Routine.

When working with a Signature Routine, the **Original Document** and **Signed Document** use dedicated endpoints under `GroupTasks`.

For the other attachments, such as ID attachments, General Attachments and Excel Attachments, use the same endpoints described in the Get Task Attachments page.

***

### Original Document

Use the following endpoint to retrieve the original document of a Signature Routine:

```
GET /api/V2/GroupTasks/GetOriginalTaskLocationBlob
```

#### Parameters

| Parameter          | Type              | Description                         |
| ------------------ | ----------------- | ----------------------------------- |
| `guid`             | string (GUID)     | The TaskClient GUID                 |
| `taskId`           | integer           | The Task ID                         |
| `fileDownloadType` | EDownloadFileType | Determines how the file is returned |

#### Example

```
GET /api/V2/GroupTasks/GetOriginalTaskLocationBlob?guid={TaskClientGuid}
```

***

### Signed Document

Use the following endpoint to retrieve the signed document of a Signature Routine:

```
GET /api/V2/GroupTasks/GetSignedTaskLocationBlob
```

#### Parameters

| Parameter          | Type              | Description                             |
| ------------------ | ----------------- | --------------------------------------- |
| `guid`             | string (GUID)     | The TaskClient GUID                     |
| `taskId`           | integer           | The Task ID                             |
| `fileDownloadType` | EDownloadFileType | Determines how the file is returned     |
| `segment`          | integer           | Optional segment of the signed document |

#### Example

```
GET /api/V2/GroupTasks/GetSignedTaskLocationBlob?guid={TaskClientGuid}
```

***

### Other Attachments

For other attachments related to the Signature Routine, use the endpoints from the Get Task Attachments page.

No separate `GroupTasks` endpoint is required for these attachments.

Use the existing endpoints for:

* **ID Attachment**
* **General Attachments**
* **Excel Attachment**

For example:

```
GET /api/V2/BaseTasks/GetIdAttachmentLocationBlob
```

```
GET /api/V2/BaseTasks/GetGeneralAttachmentsLocationBlob
```

```
GET /api/V2/BaseTasks/GetExcelAttachmentsLocationBlob
```

These endpoints support Signature Routines as well.

***

### Which Endpoint Should I Use?

| Document / Attachment | Endpoint                                      |
| --------------------- | --------------------------------------------- |
| Original Document     | `GroupTasks/GetOriginalTaskLocationBlob`      |
| Signed Document       | `GroupTasks/GetSignedTaskLocationBlob`        |
| ID Attachment         | `BaseTasks/GetIdAttachmentLocationBlob`       |
| General Attachments   | `BaseTasks/GetGeneralAttachmentsLocationBlob` |
| Excel Attachment      | `BaseTasks/GetExcelAttachmentsLocationBlob`   |

> **Important:** When retrieving a document for a specific signer in a Signature Routine, use the appropriate `TaskClient` GUID.
