docs.sproof.io Open in urlscan Pro
57.129.33.13  Public Scan

Submitted URL: http://docs.sproof.io/
Effective URL: https://docs.sproof.io/
Submission: On May 27 via api from US — Scanned from FR

Form analysis 0 forms found in the DOM

Text Content

 * Introduction
 * Using the member id
 * Embed sproof sign in an iframe
 * Placeholders
 * Authentication
 * General
   * documents
     * getGet documents
     * getDownload Audit Trail
     * getGet document
     * postVerify Document
     * delDelete document
   * folder
     * getGet folders
     * postCreate Folder
     * getGet folder
     * delDelete Folder
     * putUpdate Folder
     * postDelete Documents
     * putAdd Documents
     * postAdd user
     * postRemove user
   * signatures
     * postCreate signature request
     * getGet request status
     * postSeal document
   * stack
     * postAdd document to user's stack
     * postSign a user's stack
 * Member Management
   * members
     * getGet plan members
     * getGet plan member
     * postCreate qualified plan member
     * delDelete qualified plan member
 * Models
   * The Document Model
   * The Folder Model
   * The Signer Model
   * The Planmember Model
   * The Pagination Model

Documentation Powered by ReDoc





SIGN.SPROOF.IO API DOCUMENTATION (1.1.0)

Download OpenAPI specification:Download

API Support: support@sproof.io URL: https://sproof.io


This is the documentation for the sproof sign API. You can find out more about
sproof at sproof.io


If you require any further information, feel free to join the sproof Discord
Server!


INTRODUCTION

This API is documented in OpenAPI format and is based on sign.sproof.io provided
by the sproof team. Sproof sign is an online application to collect signatures.
The sproof sign API can be accessed through the domain
https://sign.sproof.io/api/v1/. In the following, we describe the JSON API
(application/json) calls to create and get the status of a signature requests.

Download Postman Collection: Download


USING THE MEMBER ID

The member id can be used to open the document directly within the sproof sign
editor after creating a signature request. It can be found in the response
object after a successful call. A sample use case can be found here.

To open the editor the member id has to be appended to the URL as follows:
https://sign.sproof.io/#/editor/{memberId}


JAVASCRIPT CODE SAMPLE:

const requestBody = {
    "token": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "data": base64File,
    "callbackUrl": "https://webhook.site/ef1d0e72-aghd-4ed8-b453-c59e964d8d74",
    "fileName": "important_contract",
    "email": "max.mustermann@sproof.io",
    "firstName": "Max",
    "lastName": "Mustermann",
};
const requestOptions = {
    'method': 'post',
    'headers': { 'Content-Type': 'application/json' },
    'body': JSON.stringify(requestBody),
};
const response = await fetch("https://sign.sproof.io/api/v1/documents", requestOptions);
const responseJson = await response.json();

//open the document in the sproof sign editor
window.open("https://sign.sproof.io/#/editor/" + responseJson.member.id);


EMBED SPROOF SIGN IN AN IFRAME

Warning! This only works for qualified electronic signatures, as they provide a
second factor for authentication! The Create signature request call can be used
to create a signature request. By default, the sproof sign backend sends out
emails to all signers.

 * For this use case we set the doNotSendEmail property in the signer object of
   the request to true, to avoid sending extra emails to the signer.
 * set the signatureTypes to qualified, i.e. requires a signature with qualified
   electronic signature.
 * Parse the returned JSON object to get the ID of the created document for the
   respective signer.
 * Display an iframe and set the URL to https://sign.sproof.io/#/editor/{ID}
 * Optionally set the parameters returnUrl and returnBtnText to direct the
   signer to the next document after signing or to return them to a custom page
   of your application (see image below)


PLACEHOLDERS

In any document (e.g., Microsoft Word DOCX, Google Doc or PDF) placeholders can
be created in the following format:

{sproof{first name, last name, email-address, signing order, [optional] doNotSendEmail}sproof}

When the document is opened with sproof sign, the specified person can be
invited directly and sign in the place of the placeholder (see image below). If
more than one person is invited to sign, the signing order indicates whether the
document is sent to all persons to sign at the same time or one after the other.

To use the placeholder feature set the usePlaceholders flag in the Create
signature request to true

Further possibilities:

 * The placeholder text can be invisible, e.g., white font or very small font
   size.
 * Always specify first name, last name, email address and signing order.
 * Optionally you can set the doNotSendEmail flag, if not specified it is set to
   false
 * If your contacts should recieve the document at the same time, set the
   signing order to 1 for all placeholders in the document. If the document
   should be forwarded automatically after a signature, specify 1 for the first
   person, 2 for the second, and so on.
 * By default, the signature is positioned at the placeholder. Optionally,
   specify a line of underscores before the placeholder to position the
   signature there.

Download Example File (DE) Download Example File (EN)


AUTHENTICATION

sproof sign uses an api key for authentication. It can be obtained by purchasing
an enterprise plan. The key can be found in the settings page of the
administrator profile (see image below).


DOCUMENTS

Retrieve, download and delete documents.


GET DOCUMENTS

Get a list of documents created with your API key.

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

perPage
integer
Default: 10

Number of entries per page

page
any
Default: 0

Page number

view
any
Default: "allDocuments"
Enum: "allDocuments" "completedDocuments" "createdIncompleteDocuments"
"createdDocuments" "draftDocuments" "envelopeDocuments" "invitedDocuments"
"openInvitedDocuments" "openPositionedDocuments"

Document filter

sort
any
Default: "createdAt"
Enum: "createdAt" "name"

Document sorting. Append ":true" for descending sorting

query
string

Search query for document name


RESPONSES

200

successful operation

getTRY OUT/documents

Default server

https://sign.sproof.io/api/v1/documents


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "data": [
    * {
       * "name": "important_contract",
       * "id": "string",
       * "language": "en",
       * "updatedAt": "2022-03-28T14:40:06.698Z",
       * "createdAt": "2022-03-28T14:36:06.314Z",
       * "signaturesTypes": [ ],
       * "callbackUrl":
         "https://webhook.site/ef1d0e72-aghd-4ed8-b453-c59e964d8d74",
       * "returnUrl": "https://sproof.io",
       * "returnBtnText": "Back to my Website",
       * "inPersonSigning": false,
       * "signingRound": 2,
       * "member": {
          * "id":
            "0dd4a4718ad3669c7133a615d955b4a89f5f11452de55d21d7ca0fff859a08c698b5a3",
          * "email": "max.mustermann@sproof.io",
          * "firstName": "Max",
          * "lastName": "Mustermann",
          * "lastActivityAt": "2022-04-05T08:58:04.206Z",
          * "createdAt": "2022-04-05T08:58:04.206Z",
          * "signed": false,
          * "isAdmin": true,
          * "signaturePosition": {
             * "page": 0,
             * "x": 0.57489,
             * "y": 0.8455,
             * "width": 0.35,
             * "height": 0.1
            
            },
          * "signedAt": null,
          * "signingOrder": 1,
          * "qesVoucher": false,
          * "declinedAt": null,
          * "signatures": [ ]
         
         },
       * "members": [ ],
       * "boxes": [ ],
       * "allSignersSigned": false,
       * "allMembersSigned": false,
       * "focusedSigningMode": false
      
      }
   
   ],
 * "pagination": {
    * "total": 43,
    * "lastPage": 5,
    * "perPage": 10,
    * "currentPage": 0,
    * "from": 0,
    * "to": 10
   
   },
 * "openInvites": "1",
 * "openInvitesPosition": "1"

}


DOWNLOAD AUDIT TRAIL

Get the audit trail of a document.

PATH PARAMETERS

memberId
required
string
Example: 0dd4a4718ad3669c7133a615d955b4a89f5f11452de55d21d7ca0fff859a08c698b5a3

Member ID

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)


RESPONSES

200

successful operation

getTRY OUT/documents/{memberId}/fda

Default server

https://sign.sproof.io/api/v1/documents/{memberId}/fda


GET DOCUMENT

Get signed document as binary

PATH PARAMETERS

memberId
required
string
Example: 0dd4a4718ad3669c7133a615d955b4a89f5f11452de55d21d7ca0fff859a08c698b5a3

Member ID

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)


RESPONSES

200

successful operation

getTRY OUT/documents/download/{memberId}

Default server

https://sign.sproof.io/api/v1/documents/download/{memberId}


VERIFY DOCUMENT

Validate the signatures on all documents. Our signature verification follows the
ETSI standard. Further details can be found at
https://www.etsi.org/deliver/etsi_ts/102800_102899/102853/01.01.02_60/ts_102853v010102p.pdf

PATH PARAMETERS

data
required
string

Base64 encoded file (PDF)

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)


RESPONSES

200

successful operation

postTRY OUT/documents/verify

Default server

https://sign.sproof.io/api/v1/documents/verify


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "totalSignaturesCount": 2,
 * "validSignaturesCount": 1,
 * "signatureVerificationInfos": [
    * {
       * "qualification": null,
       * "format": "PKCS7-B",
       * "indication": null,
       * "subIndication": null,
       * "certificateChain": null,
       * "signatureTime": null,
       * "bestSignatureTime": null,
       * "byteRange": "string",
       * "name": "John Doe [john@doe.co]",
       * "signatureTimestampVerificationInfo": "string"
      
      }
   
   ]

}


DELETE DOCUMENT

Delete a document

PATH PARAMETERS

memberId
required
string
Example: 0dd4a4718ad3669c7133a615d955b4a89f5f11452de55d21d7ca0fff859a08c698b5a3

Member ID

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

all
boolean
Default: false

If all is set to true the document for all non registered invited members will
be deleted. Invited members, who are registered on the sproof sign platform will
keep a copy of this document.


RESPONSES

200

successful operation

deleteTRY OUT/documents/{memberId}

Default server

https://sign.sproof.io/api/v1/documents/{memberId}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
"deleted"


FOLDER


GET FOLDERS

Get a list of folders created or invited with your API key.

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

folderId
required
string

ID of the requested folder


RESPONSES

200

successful operation

getTRY OUT/folder

Default server

https://sign.sproof.io/api/v1/folder


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "data": [
    * {
       * "name": "MyFolder",
       * "createdAt": "2023-03-28T14:36:06.314Z",
       * "state": "draft",
       * "isAdmin": true,
       * "members": {
          * "id":
            "0dd4a4718ad3669c7133a615d955b4a89f5f11452de55d21d7ca0fff859a08c698b5a3",
          * "email": "max.mustermann@sproof.io",
          * "firstName": "Max",
          * "lastName": "Mustermann",
          * "lastActivityAt": "2022-04-05T08:58:04.206Z",
          * "createdAt": "2022-04-05T08:58:04.206Z",
          * "signed": false,
          * "isAdmin": true,
          * "signaturePosition": {
             * "page": 0,
             * "x": 0.57489,
             * "y": 0.8455,
             * "width": 0.35,
             * "height": 0.1
            
            },
          * "signedAt": null,
          * "signingOrder": 1,
          * "qesVoucher": false,
          * "declinedAt": null,
          * "signatures": [ ]
         
         },
       * "documents": [
          * {
             * "name": "important_contract",
             * "state": "draft",
             * "documentId": "string",
             * "memberId": "string"
            
            }
         
         ]
      
      }
   
   ],
 * "pagination": {
    * "total": 43,
    * "lastPage": 5,
    * "perPage": 10,
    * "currentPage": 0,
    * "from": 0,
    * "to": 10
   
   }

}


CREATE FOLDER

Creates a folder with the given documents.

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

REQUEST BODY SCHEMA: APPLICATION/JSON



name
required
string

Name of the envelope

documentIds
required
Array of strings

Document Ids of draft documents that should be combined in an envelope


RESPONSES

200

successful operation

postTRY OUT/folder

Default server

https://sign.sproof.io/api/v1/folder


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "name": "New envelope",
 * "documentIds": [
    * "12345"
   
   ]

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
"created"


GET FOLDER

Get a list of documents containing in the given folder.

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

folderId
required
string

ID of the requested folder


RESPONSES

200

successful operation

getTRY OUT/folder/{folderId}

Default server

https://sign.sproof.io/api/v1/folder/{folderId}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "name": "MyFolder",
 * "createdAt": "2023-03-28T14:36:06.314Z",
 * "state": "draft",
 * "isAdmin": true,
 * "members": {
    * "id":
      "0dd4a4718ad3669c7133a615d955b4a89f5f11452de55d21d7ca0fff859a08c698b5a3",
    * "email": "max.mustermann@sproof.io",
    * "firstName": "Max",
    * "lastName": "Mustermann",
    * "lastActivityAt": "2022-04-05T08:58:04.206Z",
    * "createdAt": "2022-04-05T08:58:04.206Z",
    * "signed": false,
    * "isAdmin": true,
    * "signaturePosition": {
       * "page": 0,
       * "x": 0.57489,
       * "y": 0.8455,
       * "width": 0.35,
       * "height": 0.1
      
      },
    * "signedAt": null,
    * "signingOrder": 1,
    * "qesVoucher": false,
    * "declinedAt": null,
    * "signatures": [ ]
   
   },
 * "documents": [
    * {
       * "name": "important_contract",
       * "state": "draft",
       * "documentId": "string",
       * "memberId": "string"
      
      }
   
   ]

}


DELETE FOLDER

Delete a folder with all the documents inside.

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

folderId
required
string

ID of the folder


RESPONSES

200

successful operation

deleteTRY OUT/folder/{folderId}

Default server

https://sign.sproof.io/api/v1/folder/{folderId}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
"deleted"


UPDATE FOLDER

Updates the folder name.

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

folderId
required
string

ID of the requested folder

REQUEST BODY SCHEMA: APPLICATION/X-WWW-FORM-URLENCODED



folderName
string

New folder name


RESPONSES

200

successful operation

putTRY OUT/folder/{folderId}

Default server

https://sign.sproof.io/api/v1/folder/{folderId}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
"done"


DELETE DOCUMENTS

Delete the given Documents from the folder. If no documents left in the folder
also the folder gets deleted

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

REQUEST BODY SCHEMA: APPLICATION/X-WWW-FORM-URLENCODED



documentIds
required
array

Array of all document Ids which should be removed


RESPONSES

200

successful operation

postTRY OUT/folder/{folderId}/documents

Default server

https://sign.sproof.io/api/v1/folder/{folderId}/documents


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
"done"


ADD DOCUMENTS

Add the given Documents to the folder.

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

REQUEST BODY SCHEMA: APPLICATION/X-WWW-FORM-URLENCODED



documentIds
required
array

Array of all document Ids which should be added


RESPONSES

200

successful operation

putTRY OUT/folder/{folderId}/documents

Default server

https://sign.sproof.io/api/v1/folder/{folderId}/documents


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
"done"


ADD USER

Invite a user to a given folder.

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

folderId
required
string

ID of the requested folder

REQUEST BODY SCHEMA: APPLICATION/JSON

Body

signers
required
Array of objects (FolderSigner)

List of signers without the sender of the document.


RESPONSES

200

successful operation

postTRY OUT/folder/{folderId}/invite

Default server

https://sign.sproof.io/api/v1/folder/{folderId}/invite


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "signers": [
    * {
       * "email": "signer@sproof.io",
       * "firstName": "maria",
       * "lastName": "musterfrau",
       * "isSigner": true,
       * "documents": {
          * "id": "string",
          * "signingOrder": 0,
          * "signaturePosition": {
             * "page": 0,
             * "x": 0.57489,
             * "y": 0.8455,
             * "width": 0.35,
             * "height": 0.1
            
            }
         
         }
      
      }
   
   ]

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{ }


REMOVE USER

Remove a user from a given folder.

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

folderId
required
string

ID of the requested folder

REQUEST BODY SCHEMA: APPLICATION/X-WWW-FORM-URLENCODED



email
required
string

Email of the user, that should be removed


RESPONSES

200

successful operation

postTRY OUT/folder/{folderId}/remove

Default server

https://sign.sproof.io/api/v1/folder/{folderId}/remove


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{ }


SIGNATURES

Signature handling.


CREATE SIGNATURE REQUEST

Create a signature request

REQUEST BODY SCHEMA: APPLICATION/JSON

Body

token
required
string

Token for authentication (e.g. your API key)

data
required
string

Base64 encoded file (PDF or DOCX)

mimetype
string
Default: "application/pdf"
Enum: "application/pdf"
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"

MIME type of base64 encoded data PDF or DOCX

callbackUrl
string

A post request including the document will be sent to this Url when a new
signature is created

returnUrl
string

The link of the return button after signing a document

returnBtnText
string

The text of the return button after signing a document

fileName
required
string

Name of the file

language
string
Default: "en"
Enum: "en" "de"

Language of the emails

email
required
string <email>

Email of the sender

firstName
required
string

First name of the sender

lastName
required
string

Last name of the sender

signatureTypes
Array of strings
Default: []

This parameter accepts an array containing a single string that specifies the
allowed signature type.

 * Set to ["qualified"] to allow only qualified signatures.
 * Set to ["advanced"] to allow only advanced signatures.
 * If the array is left empty, all signature types are allowed.

message
string

A custom message sent to the signers within the email

dueDate
string <date YYYY-MM-DD HH:MM>

Date until when the document should be finally signed

sendReminder
boolean
Default: false

If set we will send a reminder email to the signers as soon as dueDate has been
reached.

focusedSigningMode
boolean
Default: false

When this option is enabled, the recipient of the signature request will be
limited to signing or declining the document, and will not be able to navigate
away from the page

usePlaceholders
boolean
Default: false

If set we will use the placeholders stored in the document for inviting signers.

reminderInterval
integer

If this is set, we will send every reminderInterval days a reminder to sign.

boxes
Array of TextBoxMultiLine (object) or DateBox (object) or ChooseBox (object) or
CheckBox (object) or LabelBox (object) or null
Default: []

An optional array of different types of form fields, which can be added to the
document in this signature request. If no form fields are needed, this parameter
can be omitted or set to an empty array.

signers
Array of objects (Signer)

List of signers without the sender of the document.


RESPONSES

200

successful operation


CALLBACKS

postNew Signature added
postTRY OUT/documents

Default server

https://sign.sproof.io/api/v1/documents


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "token": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX",
 * "data": "string",
 * "mimetype": "application/pdf",
 * "callbackUrl": "https://webhook.site/ef1d0e72-aghd-4ed8-b453-c59e964d8d74",
 * "returnUrl": "https://sproof.io",
 * "returnBtnText": "Back to my Website",
 * "fileName": "important_contract",
 * "language": "en",
 * "email": "max.mustermann@sproof.io",
 * "firstName": "Max",
 * "lastName": "Mustermann",
 * "signatureTypes": [
    * "qualified"
   
   ],
 * "message": "This is a custom message.",
 * "dueDate": "2022-03-28 14:40",
 * "sendReminder": true,
 * "focusedSigningMode": false,
 * "usePlaceholders": false,
 * "reminderInterval": 5,
 * "boxes": [ ],
 * "signers": [
    * {
       * "email": "signer@sproof.io",
       * "firstName": "maria",
       * "lastName": "musterfrau",
       * "doNotSendEmail": true,
       * "isSigner": true,
       * "signingOrder": 0,
       * "signaturePosition": {
          * "page": 0,
          * "x": 0.57489,
          * "y": 0.8455,
          * "width": 0.35,
          * "height": 0.1
         
         }
      
      }
   
   ]

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "name": "important_contract",
 * "id": "string",
 * "language": "en",
 * "updatedAt": "2022-03-28T14:40:06.698Z",
 * "createdAt": "2022-03-28T14:36:06.314Z",
 * "signaturesTypes": [ ],
 * "callbackUrl": "https://webhook.site/ef1d0e72-aghd-4ed8-b453-c59e964d8d74",
 * "returnUrl": "https://sproof.io",
 * "returnBtnText": "Back to my Website",
 * "inPersonSigning": false,
 * "signingRound": 2,
 * "member": {
    * "id":
      "0dd4a4718ad3669c7133a615d955b4a89f5f11452de55d21d7ca0fff859a08c698b5a3",
    * "email": "max.mustermann@sproof.io",
    * "firstName": "Max",
    * "lastName": "Mustermann",
    * "lastActivityAt": "2022-04-05T08:58:04.206Z",
    * "createdAt": "2022-04-05T08:58:04.206Z",
    * "signed": false,
    * "isAdmin": true,
    * "signaturePosition": {
       * "page": 0,
       * "x": 0.57489,
       * "y": 0.8455,
       * "width": 0.35,
       * "height": 0.1
      
      },
    * "signedAt": null,
    * "signingOrder": 1,
    * "qesVoucher": false,
    * "declinedAt": null,
    * "signatures": [ ]
   
   },
 * "members": [ ],
 * "boxes": [ ],
 * "allSignersSigned": false,
 * "allMembersSigned": false,
 * "focusedSigningMode": false

}


GET REQUEST STATUS

Get the status of a signature request. Returns a document JSON object of an
error. The parameter is returned by the post request on document and is
associated with the senders email.

PATH PARAMETERS

memberId
required
string
Example: 0dd4a4718ad3669c7133a615d955b4a89f5f11452de55d21d7ca0fff859a08c698b5a3

Member ID

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)


RESPONSES

200

successful operation

getTRY OUT/documents/{memberId}

Default server

https://sign.sproof.io/api/v1/documents/{memberId}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "name": "important_contract",
 * "id": "string",
 * "language": "en",
 * "updatedAt": "2022-03-28T14:40:06.698Z",
 * "createdAt": "2022-03-28T14:36:06.314Z",
 * "signaturesTypes": [ ],
 * "callbackUrl": "https://webhook.site/ef1d0e72-aghd-4ed8-b453-c59e964d8d74",
 * "returnUrl": "https://sproof.io",
 * "returnBtnText": "Back to my Website",
 * "inPersonSigning": false,
 * "signingRound": 2,
 * "member": {
    * "id":
      "0dd4a4718ad3669c7133a615d955b4a89f5f11452de55d21d7ca0fff859a08c698b5a3",
    * "email": "max.mustermann@sproof.io",
    * "firstName": "Max",
    * "lastName": "Mustermann",
    * "lastActivityAt": "2022-04-05T08:58:04.206Z",
    * "createdAt": "2022-04-05T08:58:04.206Z",
    * "signed": false,
    * "isAdmin": true,
    * "signaturePosition": {
       * "page": 0,
       * "x": 0.57489,
       * "y": 0.8455,
       * "width": 0.35,
       * "height": 0.1
      
      },
    * "signedAt": null,
    * "signingOrder": 1,
    * "qesVoucher": false,
    * "declinedAt": null,
    * "signatures": [ ]
   
   },
 * "members": [ ],
 * "boxes": [ ],
 * "allSignersSigned": false,
 * "allMembersSigned": false,
 * "focusedSigningMode": false

}


SEAL DOCUMENT

Returns a JSON object of the signed Base64 document including a signature
verification object, or an error.

REQUEST BODY SCHEMA: APPLICATION/JSON

Body

token
required
string

Token for authentication

data
required
string

Base64 Encoded Pdf File

signature
required
string

Base64 Encoded PNG File which represents the signature or seal

page
required
number
Default: 0

Page number, starting by 0

x
required
number [ 0 .. 1 ]

x coordinate of the signatures' top left position*

y
required
number [ 0 .. 1 ]

y coordinate of the signatures' top left position*

width
required
number [ 0 .. 1 ]

width of the signature*

height
required
number [ 0 .. 1 ]

height of the signature*

name
string

name of the signer

email
string

email of the signer

key
string

PKCS #12-File including the private key and the X.509 certificate

password
string

Password of the key file


RESPONSES

200

successful operation

postTRY OUT/documents/auto/sign

Default server

https://sign.sproof.io/api/v1/documents/auto/sign


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "token": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX",
 * "data": "string",
 * "signature": "string",
 * "page": 0,
 * "x": 1,
 * "y": 1,
 * "width": 1,
 * "height": 1,
 * "name": "Max Mustermann",
 * "email": "max.mustermann@sproof.io",
 * "key": "string",
 * "password": "password123!"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{ }


STACK


ADD DOCUMENT TO USER'S STACK

Adds a document to a given users stack. Users must be in the same userplan, a
default signature card image includes the name, company name and logo if
available, and timestamp

REQUEST BODY SCHEMA: APPLICATION/JSON

Body

token
required
string

Token for authentication

memberId
required
string

MemberId of the user for this document

signature
string

Base64 Encoded PNG File which represents the signature or seal, if a custom
image is desired

page
number
Default: null

Page number, starting at 0, default is last page of document

x
number [ 0 .. 1 ]
Default: 0.7

x coordinate of the signatures' top left position*

y
number [ 0 .. 1 ]
Default: 0.9

y coordinate of the signatures' top left position*

width
number [ 0 .. 1 ]
Default: 0.3

width of the signature*

height
number [ 0 .. 1 ]
Default: 0.1

height of the signature*

signatureType
string
Default: "qes_sproof"
Enum: "aes_sproof" "qes_sproof"

Type of the signature


RESPONSES

200

successful operation

postTRY OUT/user/pendingSignatures

Default server

https://sign.sproof.io/api/v1/user/pendingSignatures


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "token": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX",
 * "memberId": "string",
 * "signature": null,
 * "page": null,
 * "x": 0.7,
 * "y": 0.9,
 * "width": 0.3,
 * "height": 0.1,
 * "signatureType": "qes_sproof"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
"added"


SIGN A USER'S STACK

Sign the stack of a given user. Users must be in the same userplan

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)

REQUEST BODY SCHEMA: APPLICATION/X-WWW-FORM-URLENCODED



email
required
string

Email of the member from the stack you want to sign


RESPONSES

200

successful operation

postTRY OUT/documents/user/signBatch

Default server

https://sign.sproof.io/api/v1/documents/user/signBatch


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
"done"


MEMBERS

Member operations.


GET PLAN MEMBERS

Get a list of all plan members

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)


RESPONSES

200

successful operation

getTRY OUT/plans/members

Default server

https://sign.sproof.io/api/v1/plans/members


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
[
 * {
    * "email": "max.mustermann@sproof.io",
    * "identificationStarted": false,
    * "isIdentified": false,
    * "isAdvancedUser": false,
    * "isQualifiedUser": false,
    * "isBlocked": true,
    * "isPending": false,
    * "isDeletable": true,
    * "remainingDaysToDelete": 0,
    * "verificationLink": "string"
   
   }

]


GET PLAN MEMBER

Get a single plan member by email

PATH PARAMETERS

email
required
string

Email of the member

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)


RESPONSES

200

successful operation

getTRY OUT/plans/members/{email}

Default server

https://sign.sproof.io/api/v1/plans/members/{email}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
[
 * {
    * "email": "max.mustermann@sproof.io",
    * "identificationStarted": false,
    * "isIdentified": false,
    * "isAdvancedUser": false,
    * "isQualifiedUser": false,
    * "isBlocked": true,
    * "isPending": false,
    * "isDeletable": true,
    * "remainingDaysToDelete": 0,
    * "verificationLink": "string"
   
   }

]


CREATE QUALIFIED PLAN MEMBER

Create a qualified plan member.

REQUEST BODY SCHEMA: APPLICATION/JSON

Body

token
required
string

Token for authentication (e.g. your API key)

email
required
string

Email address of the qualified member

register
boolean
Default: false

Boolean which indicates that sproof will automatically create an account for the
qualified member, If set to true then firstName and lastName become required
also .

firstName
string

First name of qualified member, becomes required parameter if register is set to
true

lastName
string

Last name of qualified member, becomes required parameter if register is set to
true

phoneNumber
string

Phone number of qualified member

doNotSendEmail
boolean
Default: false

If set to true no email is sent to the newly created member


RESPONSES

200

successful operation

postTRY OUT/plans/qualifiedMembers

Default server

https://sign.sproof.io/api/v1/plans/qualifiedMembers


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "token": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX",
 * "email": "max.mustermann@sproof.io",
 * "register": true,
 * "firstName": "Max",
 * "lastName": "Mustermann",
 * "phoneNumber": "+4312345678",
 * "doNotSendEmail": true

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "email": "max.mustermann@sproof.io",
 * "identificationStarted": false,
 * "isIdentified": false,
 * "isAdvancedUser": false,
 * "isQualifiedUser": false,
 * "isBlocked": true,
 * "isPending": false,
 * "isDeletable": true,
 * "remainingDaysToDelete": 0,
 * "verificationLink": "string"

}


DELETE QUALIFIED PLAN MEMBER

Delete a qualified plan member. Returns a JSON object, or an error. The boolean
isDeleted is returned in case that the qualified member will be deleted. In case
that the qualified member is blocked the member object is returned.

PATH PARAMETERS

email
required
string

Email of the member

QUERY PARAMETERS

token
required
string
Example: token=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

Token for authentication (e.g. your API key)


RESPONSES

200

successful operation

deleteTRY OUT/plans/qualifiedMembers/{email}

Default server

https://sign.sproof.io/api/v1/plans/qualifiedMembers/{email}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{ }


THE DOCUMENT MODEL

name
string

Document name

id
string

Document Id

language
string
Default: "en"
Enum: "en" "de"

Language of the emails

updatedAt
string <date>

Date of last document update

createdAt
string <date>

Creation date of document

signaturesTypes
array

Types of signatures applied to the document

callbackUrl
string

A post request including the document will be sent to this Url when a new
signature is created

returnUrl
string

The link of the return button after signing a document

returnBtnText
string

The text of the return button after signing a document

inPersonSigning
boolean

signingRound
number

member
object (Member)

members
Array of objects (Member)

A list of invited contacts

boxes
array

signature boxes

allSignersSigned
boolean

allMembersSigned
boolean

focusedSigningMode
boolean


Copy
Expand all Collapse all
{
 * "name": "important_contract",
 * "id": "string",
 * "language": "en",
 * "updatedAt": "2022-03-28T14:40:06.698Z",
 * "createdAt": "2022-03-28T14:36:06.314Z",
 * "signaturesTypes": [ ],
 * "callbackUrl": "https://webhook.site/ef1d0e72-aghd-4ed8-b453-c59e964d8d74",
 * "returnUrl": "https://sproof.io",
 * "returnBtnText": "Back to my Website",
 * "inPersonSigning": false,
 * "signingRound": 2,
 * "member": {
    * "id":
      "0dd4a4718ad3669c7133a615d955b4a89f5f11452de55d21d7ca0fff859a08c698b5a3",
    * "email": "max.mustermann@sproof.io",
    * "firstName": "Max",
    * "lastName": "Mustermann",
    * "lastActivityAt": "2022-04-05T08:58:04.206Z",
    * "createdAt": "2022-04-05T08:58:04.206Z",
    * "signed": false,
    * "isAdmin": true,
    * "signaturePosition": {
       * "page": 0,
       * "x": 0.57489,
       * "y": 0.8455,
       * "width": 0.35,
       * "height": 0.1
      
      },
    * "signedAt": null,
    * "signingOrder": 1,
    * "qesVoucher": false,
    * "declinedAt": null,
    * "signatures": [ ]
   
   },
 * "members": [ ],
 * "boxes": [ ],
 * "allSignersSigned": false,
 * "allMembersSigned": false,
 * "focusedSigningMode": false

}



THE FOLDER MODEL

name
string

Folder name

createdAt
string <date>

Creation date of folder

state
string
Default: "draft"
Enum: "draft" "pending" "done"

State of the folder

isAdmin
boolean

Indicates if the logged in person is the admin of this folder

members
array

A list of invited contacts

documents
array

A list of documents contained in the folder

Copy
Expand all Collapse all
{
 * "name": "important_contract",
 * "createdAt": "2023-03-28T14:36:06.314Z",
 * "state": "draft",
 * "isAdmin": true,
 * "members": [ ],
 * "documents": [ ]

}



THE SIGNER MODEL

email
string

Email address of signer

firstName
string

First name of signer

lastName
string

Last name of signer

doNotSendEmail
boolean

If set to true no email is sent to the signer

isSigner
boolean

Set to false if the signer should be treated as viewer only

signingOrder
integer

The order when the signer will be notified to sign the document. The values for
signingOrder start at 1. If there exists a smaller signingOrder then this signer
needs to sign the document before.

signaturePosition
SignaturePosition (object) or Array of SignaturePosition (objects)

Array or one single signaturePosition Object. The signature position relative to
the height and width of the page.

Copy
Expand all Collapse all
{
 * "email": "signer@sproof.io",
 * "firstName": "maria",
 * "lastName": "musterfrau",
 * "doNotSendEmail": true,
 * "isSigner": true,
 * "signingOrder": 0,
 * "signaturePosition": {
    * "page": 0,
    * "x": 0.57489,
    * "y": 0.8455,
    * "width": 0.35,
    * "height": 0.1
   
   }

}



THE PLANMEMBER MODEL

email
string

Email of plan member

identificationStarted
boolean

Boolean which indicates if the identification process was started

isIdentified
boolean

Boolean which indicates if the plan member is identified for qualified signing

isAdvancedUser
boolean

Boolean which indicates if the plan member is an advanced user

isQualifiedUser
boolean

Boolean which indicates if the plan member is a qualifed user

isBlocked
boolean

Boolean which indicates if the plan member is blocked but not deleted

isPending
boolean

Boolean which indicates that a plan member wants to join a plan which need to be
updated.

isDeletable
boolean

Boolean which indicates that a plan member can be deleted. You need to wait at
lease 30 days after the identification of a plan member before you can delete
the member

remainingDaysToDelete
integer

Remaining days to wait until the plan member can be finally deleted

verificationLink
string

A link to set the password and complete the registration process

Copy
Expand all Collapse all
{
 * "email": "max.mustermann@sproof.io",
 * "identificationStarted": false,
 * "isIdentified": false,
 * "isAdvancedUser": false,
 * "isQualifiedUser": false,
 * "isBlocked": true,
 * "isPending": false,
 * "isDeletable": true,
 * "remainingDaysToDelete": 0,
 * "verificationLink": "string"

}



THE PAGINATION MODEL

total
integer

Number of documents

lastPage
integer

Number of last page

perPage
integer

Number documents per page

currentPage
integer

Number of current page

from
integer

Index of first document

to
integer

Index of last document

Copy
Expand all Collapse all
{
 * "total": 43,
 * "lastPage": 5,
 * "perPage": 10,
 * "currentPage": 0,
 * "from": 0,
 * "to": 10

}


No Script, No Problem : check out :: https://docs.sproof.io/src/sproof_api.yaml


PAGES

 * Sign a document


CONTACT

 * sproof GmbH
   Urstein Süd 19/2
   5412 Puch b. Hallein
   Austria


COMPANY

 * Imprint
 * General Terms and Conditions (GTO)
 * Privacy Policy
 * Press
 * Career

Copyright © 2024 sproof GmbH.


SIGN.SPROOF.IO API DOCUMENTATION

 1.1.0 

OAS3

./src/sproof_api.yaml?v=250124-1

This is the documentation for the sproof sign API. You can find out more about
sproof at sproof.io


If you require any further information, feel free to join the sproof Discord
Server!


INTRODUCTION

This API is documented in OpenAPI format and is based on sign.sproof.io provided
by the sproof team. Sproof sign is an online application to collect signatures.
The sproof sign API can be accessed through the domain
https://sign.sproof.io/api/v1/. In the following, we describe the JSON API
(application/json) calls to create and get the status of a signature requests.

Download Postman Collection: Download


USING THE MEMBER ID

The member id can be used to open the document directly within the sproof sign
editor after creating a signature request. It can be found in the response
object after a successful call. A sample use case can be found here.

To open the editor the member id has to be appended to the URL as follows:
https://sign.sproof.io/#/editor/{memberId}




JAVASCRIPT CODE SAMPLE:

const requestBody = {
    "token": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "data": base64File,
    "callbackUrl": "https://webhook.site/ef1d0e72-aghd-4ed8-b453-c59e964d8d74",
    "fileName": "important_contract",
    "email": "max.mustermann@sproof.io",
    "firstName": "Max",
    "lastName": "Mustermann",
};
const requestOptions = {
    'method': 'post',
    'headers': { 'Content-Type': 'application/json' },
    'body': JSON.stringify(requestBody),
};
const response = await fetch("https://sign.sproof.io/api/v1/documents", requestOptions);
const responseJson = await response.json();

//open the document in the sproof sign editor
window.open("https://sign.sproof.io/#/editor/" + responseJson.member.id);



EMBED SPROOF SIGN IN AN IFRAME

Warning! This only works for qualified electronic signatures, as they provide a
second factor for authentication! The Create signature request call can be used
to create a signature request. By default, the sproof sign backend sends out
emails to all signers.

 * For this use case we set the doNotSendEmail property in the signer object of
   the request to true, to avoid sending extra emails to the signer.
 * set the signatureTypes to qualified, i.e. requires a signature with qualified
   electronic signature.
 * Parse the returned JSON object to get the ID of the created document for the
   respective signer.
 * Display an iframe and set the URL to https://sign.sproof.io/#/editor/{ID}
 * Optionally set the parameters returnUrl and returnBtnText to direct the
   signer to the next document after signing or to return them to a custom page
   of your application (see image below)




PLACEHOLDERS

In any document (e.g., Microsoft Word DOCX, Google Doc or PDF) placeholders can
be created in the following format:

{sproof{first name, last name, email-address, signing order, [optional] doNotSendEmail}sproof}


When the document is opened with sproof sign, the specified person can be
invited directly and sign in the place of the placeholder (see image below). If
more than one person is invited to sign, the signing order indicates whether the
document is sent to all persons to sign at the same time or one after the other.



To use the placeholder feature set the usePlaceholders flag in the Create
signature request to true

Further possibilities:

 * The placeholder text can be invisible, e.g., white font or very small font
   size.
 * Always specify first name, last name, email address and signing order.
 * Optionally you can set the doNotSendEmail flag, if not specified it is set to
   false
 * If your contacts should recieve the document at the same time, set the
   signing order to 1 for all placeholders in the document. If the document
   should be forwarded automatically after a signature, specify 1 for the first
   person, 2 for the second, and so on.
 * By default, the signature is positioned at the placeholder. Optionally,
   specify a line of underscores before the placeholder to position the
   signature there.

Download Example File (DE) Download Example File (EN)


AUTHENTICATION

sproof sign uses an api key for authentication. It can be obtained by purchasing
an enterprise plan. The key can be found in the settings page of the
administrator profile (see image below).



API Support - Website
Send email to API Support
Servers
//sign.sproof.io/api/v1 - Default server


DOCUMENTS

RETRIEVE, DOWNLOAD AND DELETE DOCUMENTS.



GET /documents
Get documents
GET /documents /{memberId} /fda
Download Audit Trail
GET /documents /download /{memberId}
Get document
POST /documents /verify
Verify Document
DELETE /documents /{memberId}
Delete document

SIGNATURES

SIGNATURE HANDLING.



POST /documents
Create signature request
GET /documents /{memberId}
Get request status
POST /documents /auto /sign
Seal document

MEMBERS

MEMBER OPERATIONS.



GET /plans /members
Get plan members
GET /plans /members /{email}
Get plan member
POST /plans /qualifiedMembers
Create qualified plan member
DELETE /plans /qualifiedMembers /{email}
Delete qualified plan member

DOCUMENT_MODEL







FOLDER_MODEL







SIGNER_MODEL







PLANMEMBER_MODEL







PAGINATION_MODEL







STACK


POST /user /pendingSignatures
Add document to user's stack
POST /documents /user /signBatch
Sign a user's stack

FOLDER


GET /folder
Get folders
POST /folder
Create Folder
GET /folder /{folderId}
Get folder
DELETE /folder /{folderId}
Delete Folder
PUT /folder /{folderId}
Update Folder
POST /folder /{folderId} /documents
Delete Documents
PUT /folder /{folderId} /documents
Add Documents
POST /folder /{folderId} /invite
Add user
POST /folder /{folderId} /remove
Remove user

SCHEMAS

SignatureBoxes
SignatureBox
DocumentRequestBody
SignaturePositionRequestBody
AddToStackRequestBody
PaginationObject
Folder
FolderDocument
Document
SignatureRequestResponse
DocumentResponse
FolderListResponse
FolderResponse
SignaturePosition
VerificationResponse
Verification
Signer
FolderSigner
FolderDocumentInvite
SignatureRequestBody
FolderRequestBody
userPlanMembers
Member
PlanMember
QualifiedMemberRequestObject
SignatureCallbackObject
CreateFolderRequest
BaseBox
TextBoxMultiLine
DateBox
ChooseBox
CheckBox
LabelBox