---
title: "Example 2: Simple two-round signing"
description: "## **Description** This section provides a practical example of a simple two-round signing process using the Signatus 2 API. It demonstrates how to configure sequential signing, where documents are signed in multiple rounds, and how the workflow progresses from one…"
url: "https://wiki.signatus.com/documentation/signatus-2-api/example-2-simple-two-round-signing/"
updated: "2026-01-13"
category: "Use Cases - Signatus 2"
---

# Example 2: Simple two-round signing

## **Description**

This section provides a practical example of a simple two-round signing process using the Signatus 2 API. It demonstrates how to configure sequential signing, where documents are signed in multiple rounds, and how the workflow progresses from one round to the next.

Creates a new envelope with multiple documents and configures signing workflow for multiple signers. The new envelope containing multiple documents with different access methods (write, read, optional) for different signers.

Our API-driven process involves three core interactions:

1. **POST /api/envelope**: Programmatically create a new signature envelope, providing document binaries and relevant metadata.
2. **GET /sign/{processId}**: Redirect the signer to our secure, user-friendly signing interface managed by Signatus
3. **GET /api/envelopeData/{envelopeId}**: Securely download the completed envelope, including signed documents

## Request example

Create envelope dataText :

```
{
	"processes": [
		{
			"signer": "client",
			"documents": [
				{
					"reference": "DocumentToSign",
					"method": "write"
				},
				{
					"reference": "DocumentToRead",
					"method": "read"
				},
				{
					"reference": "OptionalDocument",
					"method": "optional"
				}
			]
		},
		{
			"signer": "approver",
			"documents": [
				{
					"reference": "DocumentToSign",
					"method": "write"
				},
				{
					"reference": "DocumentToRead",
					"method": "read"
				},
				{
					"reference": "OptionalDocument",
					"method": "optional"
				}
			]
		}
	]
}
```

 HTTP- Click to view HTTP code snippet

```
POST /app/api/envelope HTTP/1.1
Host: signatus.ana.sk
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJTGNWSnp4SFkyd1RDcGlLZU5Oa2VmbWZHa1ljUnBtQ1lMMUhsNG13Zm5VIn0.eyJleHAiOjE3NTQwNDU4NjIsImlhdCI6MTc1NDA0NTU2MiwianRpIjoiMWEwY2NlNDItZTYxZi00M2Q3LTliMmEtMDk4ODU3MGUwN2EyIiwiaXNzIjoiaHR0cHM6Ly9vYXV0aC5hbmEuc2svcmVhbG1zL1NpZ25hdHVzIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6ImYzYmUxYTY2LTU1M2YtNGFlOC04OTUyLTY3OGQ4NTU2ZDAxYiIsInR5cCI6IkJlYXJlciIsImF6cCI6InNpZ25hdHVzIiwic2lkIjoiNGYyMzhhMTMtYWExYS00Yzc0LWE2YTAtYmQ3Yjk3NWU0NjBjIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsiUk9MRV9QUk9YWSIsImRlZmF1bHQtcm9sZXMtc2lnbmF0dXMiLCJST0xFX1BPUlRBTCIsIlJPTEVfVVNFUiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicGhvbmUgZ3JvdXBzIHRlbmFudGlkIHByb2ZpbGUgZW1haWwiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInRlbmFudGlkIjoiZGVtbyIsIm5hbWUiOiJQYXZvbCBQdW5hIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiZGVtby5hcGkiLCJnaXZlbl9uYW1lIjoiUGF2b2wiLCJmYW1pbHlfbmFtZSI6IlB1bmEiLCJlbWFpbCI6InBhdm9sLnB1bmFAYW5hc29mdC5jb20ifQ.3VkXBVwr0_DZMws70E3VoI2BTcXtz2Nsb1LEEMC-RSkLCfwGq7kPLnZ2WhvRLbqmL2VZggVn5r-U5x-Di7kkbW2n1yhyUJMoL2M2DD7Njy0KG1GmyL-pskyFHrbAg9HJH-EhAgoSknoqTMkW2XcHeFLozOGuTlc5xT5vur_g7vtcJQNqRZhX89za1v4SAB2IcUwAD4K9D_0IEFnNAn0pscOy3J98VQec8slsF2Y4R2nzazp2mkgRQzshtRViG7Fkg3NT9uEM8I5tb75rePfKQMe4orYP1eIexqgX7jIcu8kc1LK1GSoAGqtlo-Z0ZpngjAaej_1nAJBL5w8slbGPOA
Content-Length: 1210

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="dataText"

{
	"processes": [
		{
			"signer" : "client",
			"documents": [
				{
					"reference": "DocumentToSign",
					"method": "write"
				},
				{
					"reference": "DocumentToRead",
					"method": "read"
				},
				{
					"reference": "OptionalDocument",
					"method": "optional"
				}
			]
		},
		{
			"signer" : "approver",
			"documents": [
				{
					"reference": "DocumentToSign",
					"method": "write"
				},
				{
					"reference": "DocumentToRead",
					"method": "read"
				},
				{
					"reference": "OptionalDocument",
					"method": "optional"
				}
			]
		}
	]
}
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="DocumentToSign"; filename="Signatus2-API/Test.pdf"
Content-Type: application/pdf

(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="DocumentToRead"; filename="Signatus2-API/Test2.pdf"
Content-Type: application/pdf

(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="OptionalDocument"; filename="Signatus2-API/Test3.pdf"
Content-Type: application/pdf

(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW--
```

Create envelope response :

```
{
    "id": "0a99abfc-f50c-441b-83d1-6cb4c88e8eb3",
    "userId": "demo.api",
    "state": "ready",
    "envelopetypeid": 4,
    "expirationtime": 1754132094101,
    "extension": {},
    "processes": [
        {
            "id": "47ed8e86-f3b2-4a58-85da-c21a595462c4",
            "userId": "demo.api",
            "envelopeid": "0a99abfc-f50c-441b-83d1-6cb4c88e8eb3",
            "signer": "client",
            "state": "ready",
            "extension": {},
            "sigtype": "bio",
            "envelopetypeid": 4,
            "tenant": "demo",
            "rules": {}
        },
        {
            "id": "3bf9394f-647b-4cf6-b7f6-957840168f82",
            "userId": "demo.api",
            "envelopeid": "0a99abfc-f50c-441b-83d1-6cb4c88e8eb3",
            "signer": "approver",
            "state": "ready",
            "extension": {},
            "sigtype": "bio",
            "envelopetypeid": 4,
            "tenant": "demo",
            "rules": {}
        }
    ],
    "type": "inbox",
    "product": [],
    "contact": {},
    "tenant": "demo",
    "rules": {}
}
```

## Sequence diagram

This sequence diagram illustrates the interaction between a Portal (initiating system), Signatus2, and a Signer (the end-user) during the process of creating, signing, and retrieving signed envelope.

Where :

- envelopeId = response.id
- processId-1 = response.processes[0].id
- processId-2 = response.processes[1].id

![](https://wiki.signatus.com/wp-content/uploads/2025/08/example2.png)
