Mark Sign (Preview)
Mark Sign is a qualified electronic signature service compliant with eIDAS regulation. Send documents for signing, wait for the signatures, download and validate the signed files.
This connector is available in the following products and regions:
| Service | Class | Regions |
|---|---|---|
| Copilot Studio | Premium | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Logic Apps | Standard | All Logic Apps regions except the following: - Azure Government regions - Azure China regions - US Department of Defense (DoD) |
| Power Apps | Premium | All Power Apps regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Power Automate | Premium | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Contact | |
|---|---|
| Name | Mark ID, UAB |
| URL | https://marksign.eu |
| pagalba@marksign.lt |
| Connector Metadata | |
|---|---|
| Publisher | Mark ID, UAB |
| Website | https://marksign.eu |
| Privacy policy | https://marksign.eu/privacy-policy |
| Categories | Productivity;Content and Files |
Mark Sign
Mark Sign is a qualified electronic signature service compliant with the eIDAS regulation. A flow can send a document for signing, wait until it is signed, then download the signed file and validate it.
Publisher: Mark ID, UAB
Prerequisites
You need a Mark Sign API access token. See Obtaining Credentials below.
Supported Operations
Document: Upload
Uploads a document (PDF, ADoc, BDoc or ASiC-E) and prepares it for signing. The file name becomes the document title.
Signing: Invite by email
Invites a person to sign; Mark Sign sends the invitation email. Calling it again for the same person sends a reminder.
Signing: Invite by URL
Adds a signer without sending an email and returns their personal Invitation URL for you to deliver.
Signing: Wait for all signers
Holds the flow until the document is signed or rejected, or ends with the timed_out status when the waiting time (29 days by default) runs out.
Signing: Wait for one signer
Holds the flow until one particular signer, chosen by email, signs. Any rejection also ends the wait.
Signing: Wait for next signer
Resumes the flow the moment the next signer signs or rejects, with no polling.
Document: Get status
Checks the overall signing status of the document.
Document: Get signers
Lists each signer's status, including the rejection reason if a signer rejected.
Document: Download
Downloads the document with all signatures collected so far.
Document: List
Lists the documents in your workspace, with text search and paging.
Document: Remove
Removes a document from the workspace.
Document: Upload as container
Combines several files into one signable container document (ADoc, BDoc or ASiC-E). Billing follows the Mark Sign default, where each signer pays.
Signing: Create signer links
Creates a personal signing link for each signer, to deliver yourself. The links expire, can require identity verification, and are the only signing pages with a reject option.
Signing: Create shared link
Creates one link anyone can open to sign the documents, each under their own verified identity.
Signing: Delete link
Deletes a signer link or shared link before it expires.
Document: Extend signature validity
Upgrades the document signatures for long-term validity (LT) or long-term archiving (LTA).
Document: Validate
Checks the signatures of a document and returns the full validation report.
Obtaining Credentials
Contact Mark Sign customer support at pagalba@marksign.lt to request an API access token for your workspace. When creating a connection in Power Automate, paste the token into the "API Key" field.
The token is tied to one workspace, so every document created or listed through the connection belongs to that workspace.
Getting Started
The simplest signing flow:
- Document: Upload (for example, the file content and name tokens from SharePoint or OneDrive).
- Signing: Invite by email. Mark Sign emails the invitation.
- Signing: Wait for next signer. The flow pauses here until the signing happens.
- Document: Download and store it where you need it.
With several signers, use Signing: Invite by email for each person, then one Signing: Wait for all signers step before the download. To deliver the links yourself instead of Mark Sign emails, use Signing: Invite by URL or Signing: Create signer links and send each person their link with your own Outlook or Teams action.
Known Issues and Limitations
- The connector does not provide flow triggers; use the wait operations inside a flow instead.
- A document has one notification registration. Do not run two Signing: Wait for next signer steps on the same document at the same time. The second replaces the first, and the first step then waits until it times out. Filling a Callback URL field on any block replaces the registration too.
- Signers can reject a document only on a Signing: Create signer links page (with Show Reject Button on); email invitations, invitation URLs and shared links offer no reject option.
- Mark Sign notifies only about signatures. When an invite block uses a Purpose of
revieworconfirmation, that person's action never wakes Signing: Wait for next signer; check their status with Document: Get signers instead. - Document: Download returns the file content only; take the file name from Document: List or from your upload step.
- A flow run can last at most 30 days (a Power Automate limit), so no wait can outlive that. Signing: Wait for all signers and Signing: Wait for one signer end with the
timed_outstatus after 29 days by default. For Signing: Wait for next signer, set a Timeout (for exampleP29D) in the action settings and add a branch configured to run after the action has timed out. If the 30-day run limit hits first, Power Automate cancels the whole run and no branch handles it. - Document: List does not support filtering by status.
- Document: Upload accepts one file per call; loop over attachments to upload several. Document: Upload as container is meant for a few files; combining many large files in one call can exceed the processing time limit.
Deployment Instructions
Run paconn create --api-prop apiProperties.json --api-def apiDefinition.swagger.json --script script.csx --icon icon.png to deploy this connector as a custom connector in your Power Platform environment. See paconn documentation for details.
Support
For issues with the connector or the Mark Sign API, contact pagalba@marksign.lt.
Creating a connection
The connector supports the following authentication types:
| Default | Parameters for creating connection. | All regions | Not shareable |
Default
Applicable: All regions
Parameters for creating connection.
This is not shareable connection. If the power app is shared with another user, another user will be prompted to create new connection explicitly.
| Name | Type | Description | Required |
|---|---|---|---|
| API Key | securestring | The Mark Sign API access token of your workspace. Request one from Mark Sign support at pagalba@marksign.lt. | True |
Actions
| Document: Download |
Downloads the document with all signatures collected so far. |
| Document: Extend signature validity |
Upgrades the document signatures for long-term validity or archiving. |
| Document: Get signers |
Lists the signers of a document with their signing status. |
| Document: Get status |
Gets the signing status of a document. |
| Document: List |
Lists the documents in your workspace, newest first. |
| Document: Remove |
Removes a document from your workspace. |
| Document: Upload |
Uploads a document and prepares it for signing. |
| Document: Upload as container |
Combines several files into one signable container document, such as an ADoc or ASiC-E. The files are uploaded and combined in a single step. |
| Document: Validate |
Checks the signatures of a document and returns the validation report. The flow waits until the check finishes. |
| Signing: Create shared link |
Creates one signing link that anyone can open to sign the documents. You deliver it yourself. |
| Signing: Create signer links |
Creates a personal signing link for each signer. You deliver the links yourself, for example by email or Teams message. |
| Signing: Delete link |
Deletes a signer link or shared link before it expires. Invitation links cannot be deleted. |
| Signing: Invite by email |
Invites a person to sign the document. Mark Sign sends the invitation by email. |
| Signing: Invite by URL |
Adds a signer to the document without sending an email, and returns their personal invitation link for you to deliver. The link does not expire and cannot be deleted; use "Signing: Create signer links" when you need links you can revoke. |
| Signing: Wait for all signers |
Waits until every signer has signed or someone rejected the document, then lets the flow continue. Ends with the timed_out status when the time runs out. |
| Signing: Wait for next signer |
Waits until the next signer signs or rejects the document, without sending any invitations. Use it in a loop to wait for several signers without polling. |
| Signing: Wait for one signer |
Waits until one particular signer signs the document, then lets the flow continue. Ends with the timed_out status when the time runs out. |
Document: Download
Downloads the document with all signatures collected so far.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document ID
|
documentId | True | string |
The ID of the document, from the output of "Document: Upload", "Document: Upload as container" or "Document: List". |
Returns
The content of the document file.
- File Content
- file
Document: Extend signature validity
Upgrades the document signatures for long-term validity or archiving.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document ID
|
documentId | True | string |
The ID of the document, from the output of "Document: Upload", "Document: Upload as container" or "Document: List". |
|
Level
|
level | True | string |
LT for long-term validity, LTA for long-term archiving. |
Returns
- Body
- AcknowledgedResponse
Document: Get signers
Lists the signers of a document with their signing status.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document ID
|
documentId | True | string |
The ID of the document, from the output of "Document: Upload", "Document: Upload as container" or "Document: List". |
Returns
| Name | Path | Type | Description |
|---|---|---|---|
|
Status
|
status | RequestStatus |
The status of the request. |
|
Signers:
|
data | array of object |
The signers of the document. |
|
Signer ID
|
data.id | string |
The ID of the signer. |
|
First Name
|
data.name | string |
The signer's first name. |
|
Last Name
|
data.surname | string |
The signer's last name. |
|
Email
|
data.email | string |
The signer's email address. |
|
Signing Status
|
data.status | string |
Whether the signer has signed: pending, signed, rejected, reviewing, confirmed, denied or reviewed. |
|
Rejection Reason
|
data.rejection_reason | string |
The reason the signer gave when rejecting the document. |
Document: Get status
Gets the signing status of a document.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document ID
|
documentId | True | string |
The ID of the document, from the output of "Document: Upload", "Document: Upload as container" or "Document: List". |
Returns
| Name | Path | Type | Description |
|---|---|---|---|
|
Status
|
status | RequestStatus |
The status of the request. |
|
Document Status
|
data.document_status | string |
The signing status: saved (waiting for signatures), signed_partially (some have signed) or signed (everyone has signed). |
Document: List
Lists the documents in your workspace, newest first.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Search
|
query | string |
A phrase to look for in document titles and file names. |
|
|
Offset
|
offset | integer |
How many documents to skip. |
|
|
Limit
|
limit | integer |
How many documents to return. Default is 10. |
Returns
| Name | Path | Type | Description |
|---|---|---|---|
|
Status
|
status | RequestStatus |
The status of the request. |
|
Documents:
|
data | array of object |
The documents. |
|
Document ID
|
data.uuid | string |
The ID of the document. |
|
File Name
|
data.filename | string |
The name of the file. |
|
Document Status
|
data.status | string |
The signing status of the document, such as saved (waiting for signatures), signed_partially or signed. |
|
Uploaded At
|
data.uploaded_at | date-time |
When the document was uploaded. |
|
Total
|
total | integer |
The total number of matching documents. |
Document: Remove
Removes a document from your workspace.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document ID
|
documentId | True | string |
The ID of the document, from the output of "Document: Upload", "Document: Upload as container" or "Document: List". |
Returns
- Body
- AcknowledgedResponse
Document: Upload
Uploads a document and prepares it for signing.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
File Name
|
file_name | True | string |
The name of the file with its extension, for example contract.pdf. It becomes the document title. |
|
body
|
body | True | binary | |
|
Access
|
access | string |
Who can view the document. Default is private. |
|
|
Billing Type
|
billing_type | True | string |
Who pays for the signatures. |
Returns
| Name | Path | Type | Description |
|---|---|---|---|
|
Status
|
status | RequestStatus |
The status of the request. |
|
Document ID
|
data.uuid | string |
The ID of the document. |
|
File Name
|
data.filename | string |
The name of the file. |
Document: Upload as container
Combines several files into one signable container document, such as an ADoc or ASiC-E. The files are uploaded and combined in a single step.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document Type
|
document_type | True | string |
The type of document to create. |
|
File Name
|
file_name | True | string |
The name of the file with its extension, for example contract.pdf. |
|
File Content
|
file_content | True | byte |
The content of the file. |
|
File Type (ADoc only)
|
adoc_file_type | string |
The role of the file in the container. Only used when the document type is an ADoc. |
Returns
| Name | Path | Type | Description |
|---|---|---|---|
|
Status
|
status | RequestStatus |
The status of the request. |
|
Document ID
|
data.uuid | string |
The ID of the document. |
|
File Name
|
data.filename | string |
The name of the document file. |
Document: Validate
Checks the signatures of a document and returns the validation report. The flow waits until the check finishes.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document ID
|
documentId | True | string |
The ID of the document, from the output of "Document: Upload", "Document: Upload as container" or "Document: List". |
Returns
| Name | Path | Type | Description |
|---|---|---|---|
|
Status
|
status | RequestStatus |
The status of the request. |
|
Is Valid
|
data.document.is_valid | boolean |
Whether the document signatures are valid. |
|
Valid To
|
data.document.valid_to | string |
How long the document stays valid. |
|
Document Name
|
data.document.name | string |
The title of the document. |
|
MIME Type
|
data.document.mimetype | string |
The file type of the document. |
|
Signatures:
|
data.signatures | array of object |
The result for each signature. |
|
Signature ID
|
data.signatures.id | string |
The ID of the signature. |
|
Signing Time
|
data.signatures.signing_time | string |
When the signature was made. |
|
Signature Format
|
data.signatures.signature_format | string |
The format of the signature. |
|
Is Valid
|
data.signatures.is_valid | boolean |
Whether the signature is valid. |
|
Valid To
|
data.signatures.valid_to | string |
How long the signature stays valid. |
|
Certificates
|
data.certificates | array of object |
The certificates used by the signatures. |
|
items
|
data.certificates | object | |
|
Timestamps
|
data.timestamps | array of object |
The timestamps applied to the document. |
|
items
|
data.timestamps | object | |
|
Validation Time
|
metadata.validation_time | string |
When the validation was performed. |
Signing: Create shared link
Creates one signing link that anyone can open to sign the documents. You deliver it yourself.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document IDs
|
documents | True | array of string |
The documents the link signs. Use Document ID values from upload or list steps. |
|
Callback URL
|
callback_url | string |
A URL to notify when the document is signed. |
|
|
Expire After (Minutes)
|
expire_after | integer |
Minutes until the link expires. Default is 2880 (two days). |
|
|
Delete Document After (Minutes)
|
delete_document_after | integer |
Minutes until the document is deleted from the workspace. By default it is kept. |
Returns
| Name | Path | Type | Description |
|---|---|---|---|
|
Status
|
status | RequestStatus |
The status of the request. |
|
Signing Link
|
data.signing_link | string |
The link anyone can open to sign. |
|
Signing Link ID
|
data.signing_link_id | string |
The ID of the link, for "Signing: Delete link". |
|
Valid Until
|
data.valid_until | integer |
When the link expires, as a Unix timestamp. |
Signing: Create signer links
Creates a personal signing link for each signer. You deliver the links yourself, for example by email or Teams message.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document IDs
|
documents | True | array of string |
The documents to create signing links for. Use Document ID values from upload or list steps. |
|
Signer ID
|
id | string |
Your own ID for the signer, unique within the request. Required when Email is empty. |
|
|
First Name
|
name | string |
The signer's first name. |
|
|
Last Name
|
surname | string |
The signer's last name. |
|
|
Email
|
The signer's email address. Required when Signer ID is empty. |
|||
|
Personal Code
|
personal_code | string |
The signer's personal code. Needed when authentication is required. |
|
|
Require Authentication
|
authentication_required | boolean |
If yes, the signer must verify their identity before opening the link. |
|
|
Position (ADoc only)
|
position | string |
The signer's job position, shown in ADoc signatures. |
|
|
Department (ADoc only)
|
structural_subdivision | string |
The signer's department, shown in ADoc signatures. |
|
|
Signing Purpose (ADoc only)
|
signing_purpose | string |
Why the person signs, shown in ADoc signatures. |
|
|
Callback URL
|
callback_url | string |
A URL to notify when the document is signed. |
|
|
Rejection Callback URL
|
reject_callback_url | string |
A URL to notify when a signer rejects the document. |
|
|
Expire After (Minutes)
|
expire_after | integer |
Minutes until the link expires. Default is 2880 (two days). |
|
|
Show Reject Button
|
show_reject_button | boolean |
Whether signers can reject the document on the signing page. Default is yes. |
|
|
Delete Document After (Minutes)
|
delete_document_after | integer |
Minutes until the document is deleted from the workspace. By default it is kept. |
Returns
| Name | Path | Type | Description |
|---|---|---|---|
|
Status
|
status | RequestStatus |
The status of the request. |
|
Signing Links:
|
temporary_signing_links | array of object |
One signing link per signer. |
|
Signer ID
|
temporary_signing_links.id | string |
Your own ID for the signer. |
|
First Name
|
temporary_signing_links.member_name | string |
The signer's first name. |
|
Last Name
|
temporary_signing_links.member_surname | string |
The signer's last name. |
|
Email
|
temporary_signing_links.member_email | string |
The signer's email address. |
|
Signing Link
|
temporary_signing_links.temporary_signing_link | string |
The link the signer opens to sign the document. |
|
Signing Link ID
|
temporary_signing_links.temporary_signing_link_id | string |
The ID of the signing link. |
|
Valid Until
|
temporary_signing_links.valid_until | integer |
When the link expires, as a Unix timestamp. |
|
Documents:
|
documents | array of object |
The documents the links were created for. |
|
Document ID
|
documents.uuid | string |
The ID of the document. |
|
File Name
|
documents.filename | string |
The name of the document file. |
Signing: Delete link
Deletes a signer link or shared link before it expires. Invitation links cannot be deleted.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Signing Link ID
|
temporarySigningLinkId | True | string |
The Signing Link ID from the output of "Signing: Create signer links" or "Signing: Create shared link". |
Returns
- Body
- AcknowledgedResponse
Signing: Invite by email
Invites a person to sign the document. Mark Sign sends the invitation by email.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document ID
|
documentId | True | string |
The ID of the document, from the output of "Document: Upload", "Document: Upload as container" or "Document: List". |
|
First Name
|
name | True | string |
The signer's first name. |
|
Last Name
|
surname | True | string |
The signer's last name. |
|
Email
|
True |
The signer's email address. |
||
|
Language
|
language | string |
The language of the invitation. Default is Lithuanian. |
|
|
Success URL
|
success_url | string |
Where to send the signer after they finish signing. |
|
|
Purpose
|
purpose | string |
Why the person is invited. Choose review to invite for viewing only. |
|
|
Callback URL
|
callback_url | string |
A URL to notify when the document is signed. |
Returns
- Body
- AcknowledgedResponse
Signing: Invite by URL
Adds a signer to the document without sending an email, and returns their personal invitation link for you to deliver. The link does not expire and cannot be deleted; use "Signing: Create signer links" when you need links you can revoke.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document ID
|
documentId | True | string |
The ID of the document, from the output of "Document: Upload", "Document: Upload as container" or "Document: List". |
|
First Name
|
name | True | string |
The signer's first name. |
|
Last Name
|
surname | True | string |
The signer's last name. |
|
Email
|
True |
The signer's email address. |
||
|
Success URL
|
success_url | string |
Where to send the signer after they finish signing. |
|
|
Purpose
|
purpose | string |
Why the person is invited. Choose review to invite for viewing only. |
|
|
Callback URL
|
callback_url | string |
A URL to notify when the document is signed. |
Returns
| Name | Path | Type | Description |
|---|---|---|---|
|
Status
|
status | RequestStatus |
The status of the request. |
|
Invitation URL
|
data.invitation_url | string |
The personal signing page link to deliver to the signer. |
Signing: Wait for all signers
Waits until every signer has signed or someone rejected the document, then lets the flow continue. Ends with the timed_out status when the time runs out.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document ID
|
documentId | True | string |
The ID of the document, from the output of "Document: Upload", "Document: Upload as container" or "Document: List". |
|
Timeout (Minutes)
|
timeout_minutes | integer |
How long to wait, in minutes, before ending with the timed_out status. Default is 41760 (29 days), maximum is 43200 (30 days). |
Returns
- Body
- SigningWaitResponse
Signing: Wait for next signer
Waits until the next signer signs or rejects the document, without sending any invitations. Use it in a loop to wait for several signers without polling.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document ID
|
documentId | True | string |
The ID of the document, from the output of "Document: Upload", "Document: Upload as container" or "Document: List". |
Returns
- Body
- SigningEvent
Signing: Wait for one signer
Waits until one particular signer signs the document, then lets the flow continue. Ends with the timed_out status when the time runs out.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Document ID
|
documentId | True | string |
The ID of the document, from the output of "Document: Upload", "Document: Upload as container" or "Document: List". |
|
Signer Email
|
signer_email | True | string |
The email of the signer to wait for, the same email used when inviting them. |
|
Timeout (Minutes)
|
timeout_minutes | integer |
How long to wait, in minutes, before ending with the timed_out status. Default is 41760 (29 days), maximum is 43200 (30 days). |
Returns
- Body
- SigningWaitResponse
Definitions
SigningEvent
| Name | Path | Type | Description |
|---|---|---|---|
|
Document ID
|
uuid | string |
The ID of the document. |
|
Document Status
|
status | string |
The signing status of the document, such as signed or signed_partially. A rejection shows in the signer statuses. |
|
Signer Count
|
members_count | integer |
How many people were invited to sign. |
|
Signed Count
|
signed_members_count | integer |
How many people have signed. |
|
Signers:
|
members | array of object |
Everyone invited to sign. |
|
Signer ID
|
members.id | string |
The ID of the signer. |
|
First Name
|
members.member_name | string |
The signer's first name. |
|
Last Name
|
members.member_surname | string |
The signer's last name. |
|
Email
|
members.member_email | string |
The signer's email address. |
|
Signing Status
|
members.status | string |
The signer status, such as pending, signed or rejected. |
AcknowledgedResponse
| Name | Path | Type | Description |
|---|---|---|---|
|
Status
|
status | RequestStatus |
The status of the request. |
SigningWaitResponse
| Name | Path | Type | Description |
|---|---|---|---|
|
Document Status
|
document_status | string |
How the waiting ended: signed, rejected or timed_out. |
|
Rejected By
|
rejected_by | string |
Who rejected the document, if it was rejected. |
|
Rejection Reason
|
rejection_reason | string |
The reason the signer gave, if the document was rejected. |
RequestStatus
file
This is the basic data type 'file'.