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:
- POST /api/envelope: Programmatically create a new signature envelope, providing document binaries and relevant metadata.
- GET /sign/{processId}: Redirect the signer to our secure, user-friendly signing interface managed by Signatus
- 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

