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
Effective URL: https://docs.sproof.io/
Submission: On May 27 via api from US — Scanned from FR
Form analysis
0 forms found in the DOMText 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