Skip to content
  • Documentation
    • Mobile App – Signatus
    • Web App – Signatus 2 API
    • Web App – OKdokument API
    • Web App – OKdokument
  • Contact Us

Introduction to Signatus 2 API

  • Introduction to Signatus 2 API Integration

Core API Services - Signatus 2

  • Overview and conventions
  • Authorization
  • Create envelope
  • Delete envelope
  • Download envelope
  • Envelope list
  • Envelope info
  • Process info
  • Envelope info complete
  • Counters
  • Envelope & process completion callback
  • Rules
  • Document fields configuration
  • Integration Resources & API Documentation

Use Cases - Signatus 2

  • Example 1: Simple one-round signing
  • Example 2: Simple two-round signing
  • Example 3: Advanced two-round signing
  • Example 4: Advanced approving
View Categories
  • Home
  • Documentation
  • Web App - Signatus 2 API
  • Core API Services - Signatus 2
  • Create envelope

Create envelope

0:00 / 10:08
  • View as Markdown Open this page as plain Markdown (opens in a new tab)
  • Open in ChatGPT Ask questions about this page (opens in a new tab)
  • Open in Claude Ask questions about this page (opens in a new tab)
  • Open in Google AI Studio Ask questions about this page (Google account required) (opens in a new tab)

This section describes how to create an envelope in the Signatus 2 API. An envelope is the main container used to group documents, define recipients, and configure signing or approval steps. Creating an envelope is the first step in initiating a document workflow in Signatus.

This section explains the API calls required to create an envelope, including setting its basic properties, documents, recipients, and workflow configuration.

Create envelope is the most important API Service, that allows upload documents and envelope metadata.

Signatus 2 URL #

EnvironmentURL
INThttps://signatus.ana.sk/app
PRODhttps://app.signatus.com

Service specifications #

URL/api/envelope
MethodPOST
AuthenticationBearer access token
Content Typemultipart/form-data
Response typeapplication/json

Request description #

Request parameters:

KeyTypeRequiredDescription
dataTexttextOne of dataText/dataEnvelope metadata serialized as JSON text.
datafileOne of dataText/dataFile containing the envelope metadata JSON.. You can use the dataText parameter to send metadata as text directly in the request, or the data parameter to send metadata as a file.
<document key>fileWhen reference is usedOne or more PDF files. The multipart field name must equal documents[].reference.
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.eyJleHAiOjE3NTM5NTIzNzEsImlhdCI6MTc1Mzk1MjA3MSwianRpIjoiYWI1YTJlYmEtNTZkZi00Y2ZkLTkyOGYtMTU3ZWMyYzU1N2RlIiwiaXNzIjoiaHR0cHM6Ly9vYXV0aC5hbmEuc2svcmVhbG1zL1NpZ25hdHVzIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6ImYzYmUxYTY2LTU1M2YtNGFlOC04OTUyLTY3OGQ4NTU2ZDAxYiIsInR5cCI6IkJlYXJlciIsImF6cCI6InNpZ25hdHVzIiwic2lkIjoiYTczMTkzMmItOTAyNC00ZWU5LWFlOTEtNWZlNTJmYWIzNjliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsiUk9MRV9QUk9YWSIsImRlZmF1bHQtcm9sZXMtc2lnbmF0dXMiLCJST0xFX1BPUlRBTCIsIlJPTEVfVVNFUiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicGhvbmUgZ3JvdXBzIHRlbmFudGlkIHByb2ZpbGUgZW1haWwiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInRlbmFudGlkIjoiZGVtbyIsIm5hbWUiOiJQYXZvbCBQdW5hIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiZGVtby5hcGkiLCJnaXZlbl9uYW1lIjoiUGF2b2wiLCJmYW1pbHlfbmFtZSI6IlB1bmEiLCJlbWFpbCI6InBhdm9sLnB1bmFAYW5hc29mdC5jb20ifQ.PP-jqR34m5dLEzpLNKK0hgk2PM9L3Q2WqR9aZjFRRG7mPZJ538gqlyh9WZU8R33njAjIq6Uo4Ty8qTrwGgRrpqnA8lVRvPnKimLzN8qDmAzBE29JxitQ3AYLC4VFpvp2zU0WTugypE84X1Km3Dd5O8efhDe2M41LNtsaT1ys2Y8qZb6dZVkTOexQ2YAqycCE4TCD1bPXYRQzI2miiuiz2Ik0KK-3ommk7C4JM83jw1ZxZF3ZLka7xmILxKZcHqIkahPDltmF-yxox5yPKIwnbbgvu8M8oqgsZp33fEH-6I4p8jInzymDseYze0O0hDdHzb58aV-cmoDXb5YBQ5VDtQ
Content-Length: 655

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

{
	"envelopetype": "default",
	"state": "ready",
	"type": "menu1",
	"folder": "Zmluva",
	"expirationtime": 1830395240000,
	"rules": {
		"resulturl": "https://signatus.com",
		"lang": "en"
	},
	"processes": [
		{
			"signer": "user",
			"sigtype": "bio",
			"documents": [
				{
					"method": "write",
					"reference": "file1"
				}
			]
		}
	],
	"extension": {}
}
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file1"; filename="Signatus2-API/Test.pdf"
Content-Type: application/pdf

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

Example of dataText :

{
	"envelopetype": "default",
	"name" : "Contract no. 1245726",
	"state": "ready",
	"folder": "Contract",
	"expirationtime": 1830395240000,
	"rules": {
		"resulturl": "https://signatus.com",
		"lang": "en"
	},
	"processes": [
		{
			"signer": "user",
			"sigtype": "bio",
			"documents": [
				{
					"method": "write",
					"reference": "file1"
				}
			]
		}
	],
	"extension": {}
}

Envelope data description:

KeyFormatMax rangeRequiredDefault valueDescription
enevlopetypeString40NodeafultEnvelope type name
stateString20NoreadyEnvelope state
– ready : envelope is ready for signing
– attach : allows the first signer to add an attachment.
typeString20NoEnvelope type
folderString30NoEnvelope folder name
nameString80Nodd.MM.yyyy HH.mm.ssEnvelope name. Recommended set a descriptive name to make the envelope easy to identify in GUI lists.
emailString76NoEnvelope owner email
expirationtimeLongNoCurrent time + 1 dayEnvelope expiration time
Format : timestamp in milliseconds since epoch (January 1, 1970, 00:00:00 GMT)
rulesJSON Object3000No{}Optional settings that control how the envelope is delivered, signed and completed, for example notification emails, OTP verification, GUI behavior, language and redirect URL after signing.

Rules are described in the Rules chapter
extensionJSON Object3000No{}Additional envelope data
productJSON Array3000No[]Additional information about products
contactJSON Object3000No{}Additional information about contact
base64JSON ObjectYes if referenceBase64 is used in documents section{}The binary content of the uploaded PDF file in base64 format. https://base64.guru/converter/encode/file Maximal document size is 10 MB
processesJSON ArrayYesProcess represents one round of the signing done by specific signer
processes.signerString76Nosigner + {position in array}Signer Id
processes.sigtypeString10NobioSigning type
– bio : Handwritten signature with dynamic signature characteristics
– otp : One time password signing
– data : One-Click Approval
– qes : Signing with a Qualified Electronic Signature
processes.extensionJSON Object3000No{}Additional process data
processes.documentsJSON ArrayYesDocuments data for process
processes.documents.methodString10NowriteHow the document will be processed during signing.
– write : Mandatory to signed
– read : Mandatory to read
– optional : Optional to read
– attachment : Added attachment
processes.documents.displayNameString150Nofile key from requestDocument display name
processes.documents.referenceStringYes if file content is used in requestfile key from requestAssigning the document to the process
processes.documents.referenceBase64StringYes if file content is used in base64 attributekey from base64 JSON objectAssigning the document to the process
processes.documents.dataJSON ObjectNo{}Additional document fields configuration
Data are described in the Document data chapter
processes.documents.templateString20No Assigning the templates documents to the process

Document data #

Additional document fields configuration are described in chapter Document fields configuration

Document data example :

{
	"processes": [
		{
			"signer": "user1",
			"signing": "document",
			"sigtype": "bio",
			"documents": [
				{
					"reference": "file1",
					"data": {
						"allowedFields": {
							"SIGNATURE": [
								"SC_signature"
							],
							"TEXT": [
								"TO_text",
								"TC_text"
							]
						},
						"fieldConfig": [
							{
								"name": "TC_text",
								"value": "New value"
							},
							{
								"name": "TO_text",
								"value": "New readonly value",
								"readOnly": true
							}
						],
						"ignoreRequired": [
							"SIGNATURE"
						],
						"fieldsBeforeSigning": "keep"
					}
				}
			]
		}
	]
}

Response description #

Status codeDescription
200 OKEnvelope created successfully. You’ll find the envelope data in the response.
400 Bad RequestWhen neither data file nor dataText is provided
401 UnauthorizedWhen user is not authenticated
403 ForbiddenWhen user lacks required permissions
500 Internal Server ErrorServer processing error

Success response example :

{
  "id": "90523892-4bff-42e0-b151-89e967db0658",
  "userId": "demo.api",
  "created": 1730308840000,
  "updated": 1730308840000,
  "state": "ready",
  "envelopetypeid": 27,
  "expirationtime": 1830395240000,
  "extension": {},
  "processes": [
    {
      "id": "655daf4d-409d-454f-a566-b8fd92223f50",
      "userId": "demo.api",
      "created": 1730308840000,
      "updated": 1730308840000,
      "envelopeid": "90523892-4bff-42e0-b151-89e967db0658",
      "signer": "user",
      "state": "ready",
      "extension": {},
      "sigtype": "bio",
      "envelopetypeid": 27,
      "tenant": "demo",
      "user": "demo.api",
      "rules": {}
    }
  ],
  "type": "menu1",
  "folder": "Contract",
  "name": "Contract no. 1245726",
  "email": "employer@anasoft.com",
  "source": "api",
  "product": [],
  "contact": {},
  "tenant": "demo",
 	"rules": {
		"resulturl": "https://signatus.com",
		"lang": "en"
	}
}

Error response example :

{
    "message": "err.envelope.create",
    "value": "sigtype value not allowed, sigtype is error"
}

API envelope limit #

Each user has a limit on the number of envelopes that can be created through the API. The limit applies only to envelopes created with source = api, that is, via POST /api/envelope. Envelopes created in the Signatus web application are not affected.
The current state of the limit can be checked at any time with the Counters service (GET /api/counters):

When envelopesAvailable is 0 or less, a request to create an envelope is rejected and no envelope is created. It is therefore recommended to check envelopesAvailable before sending a large batch of requests.

Return codes of Create envelope :

Status codeMessageDescription
500 Internal Server Errorerror.envelopes.api.limitEnvelope metadata
500 Internal Server Errorerror.envelopes.maximum.numberThe maximum number of envelopes of the user’s package is reached.
500 Internal Server Errorerror.envelopes.maximum.sizeThe maximum total size of stored documents of the user’s package is exceeded.

Error response example :

{
  "message": "error.envelopes.api.limit",
  "value": "base",
  "tenant": "demo"
}

Updated on 15/10/2026
AuthorizationDelete envelope
Table of Contents
  • Signatus 2 URL
  • Service specifications
  • Request description
  • Document data
  • Response description
  • API envelope limit
  • Documentation
    • Mobile App – Signatus
    • Web App – Signatus 2 API
    • Web App – OKdokument API
    • Web App – OKdokument
  • Contact Us
Proudly powered by WordPress