What you get and what makes us different to our competitors
Core & advanced features which ensure you get the most out of our signing software.
Our platform seamlessly integrates with most industry specific providers.
We have a flexible pricing model to suit anyone’s specific needs.
What you get and what makes us different to our competitors.
Frequently asked questions and solutions that might be relevant to you.
Plans for Small, Medium & Enterprise level businesses.
No setup fees & pay as you need notary features & add-ons.
Digital signing which integrates with most Recruitment ATS & CRM’s
Improve staff & client experience with digital signatures & notary.
Increasing compliance across life science & device businesses.
Solutions for state, federal, local, county & regional government.
Founded in 2010 to be a simple, smart, and secure signing platform.
ISO 27001 certified software which is backed by PKI Technology.
Technology which ensures non-forgeability & non-repudiation.
The latest Secured Signing company news and awards.
New & updated features and how to use them.
Updates about software we integrate with.
Blog articles, helpful tips and guides on digital signing & notary.
We have a flexible pricing model to suit anyone's specific needs.
Secured Signing continues partnership to integrate digital signatures within Bullhorn.
5 reasons government agencies and councils are adopting digital signatures.
New feature: Signing completion certificate.
Home // Support // Partner API
In Secured Signing account system, we have following kinds of accounts:
You can manage all these accounts via Secured Signing Partner API. By classifying and grouping these different kinds of accounts / users, you can have a clear view of by who what can be done, instead of a mess.
By contacting Secured Signing and tell us what you’re looking for, we will setup your partner account properly. If you want to use our partner API, you will get:
Before using Secured Signing Partner API, you may have a look at Additional 1 Understand Secured Signing API Authentication at bottom.
Before performing this action, please refer to Addition 2 Get Access Token for partner account firstly.
This API will create a new company account with a default branch account.
The creating company account API request:
API Endpoint:
POST https://api.securedsigning.com/web/v1.4/Account/Membership
Headers:
please refer to Additional 1 Understand Secured Signing API Authentication.
Body in JSON format (required properties only):
{ "TermsOfUse": true, "Company": { "CompanyName": "", "StreetAddress": "", "City": "", "Country": "", //full country name, such as New Zealand, United States, not nz or us. "CountryCode": "", //international phone code, such as 64 for New Zealand, 1 for United States. "PhoneNumber": "", "ContactFirstName": "", "ContactLastName": "", "ContactEmail": "", "GMTOffset": 0 //The timezone difference in minutes, such as 780 for New Zealand Lightsaving Time, -480 for Pacific Time. } }
Response in JSON format:
{ "MembershipCode":"GMP9647", "Reference":"07904722718019222...164233115199186023189", "UpdateKey":"07418701004404012...514916199105219246133", "Result":"UpdateCC" }
Please save Membership Code, Reference, Update Key for this company account. You need them to get access token on behalf of the client company.
If it’s a new client company account, you need to setup its payment. Visit update URL below in a browser
https://www.securedsigning.com/Utilities/LinkAccess.aspx?Key=[UpdateKey]
POST https://api.securedsigning.com/web/v1.4/Account/AddAccount
Body in JSON format:
{ "User": { "FirstName": "", "LastName": "", "Email": "" //Basic information only, please set as much information as you can. }, "Plan":{ //can be null if client chooses Pay As You Go plan, maximum user up to 10. "PlanUsers":5, //maximum users can be added to this client account. "PlanDocuments":200 //maximum documents can be used per month for all user. }, "GMT":0 }
{ "ConnectKey":"0741870100440401...28195165045067116199105219246133", "Result":"OK" }
This API will create the client company account with an admin user, who will receive an activation email and need to do setup in Secured Signing before any action.
Use connect key to get access token for this admin user account when performing action on its behalf. It can only be used once. Please refer to Additional 4 Get Access Token for user account to know how to get and refresh the access token.
Before performing this action, please refer to Additional 3 Get Access Token for company account firstly.
The Add User API request:
POST https://api.securedsigning.com/web/v1.4/Account/AddMembershipUser
Body in JSON format (required properties shown only, please refer to Additional 6 Full User object details.):
{ "User":{ "FirstName":"", "LastName":"", "Email":"" }, "ClientReference":"" }
Response in text, which is a key for this user account:
18423119919508...2202031045067116199105219246133
Use this key to get access token for this user account when performing action on its behalf. It can only be used once. Please refer to Additional 4 Get Access Token for user account to know how to get and refresh the access token.
Before performing this action, please refer to Additional 4 Get Access Token for user account firstly to get Access Token for admin user of client account.
POST https://api.securedsigning.com/web/v1.4/Account/AddUser
Body in JSON format (required properties only, please refer to Additional 6 Full User object details.):
{ "User":{ "FirstName":"", "LastName":"", "Email":"" }, "GMT":0 }
{ "ConnectKey":"074187010044040123...228195165045067246133", "Result":"OK" }
The API Authentication consists of two parts: OAuth2 and Signature.
They make the API request safe and controllable, which benefits you and your clients.
By authenticated with OAuth 2, you are able to call all API functions on behalf of your clients’ staff and themselves.
OAuth endpoints are the URLs you use to make OAuth authentication requests to Secured Signing.
You need to use the correct Secured Signing OAuth endpoint when issuing authentication requests in your application. The primary OAuth endpoints are:
All endpoints require secure HTTP (HTTPS). Each OAuth flow defines which endpoints you need to use and what request data you need to provide.
If you’re verifying authentication on a sandbox organization, use “www.dsx.co.nz” instead of “www.securedsigning.com” in all the OAuth endpoints listed above.
API signature provides more safety for each API request, used as a stateless authentication with HMAC SHA-256.
All requests to resources (excluding the schema pages) must be accompanied by the correct Authentication headers as per this specification.
The signature header value to be hashed is created using the following properties ApiKey, time stamp and nonce as show below
ApiKey\n timestamp\n nonce
Please use ‘\n’ as shown above.
After the string is created above, it is hashed using HMAC SHA-256 using your API Secret. It must be Base64 string encoded before adding it to the header.
e.g. In JavaScript (We are using Googles CryptoJS library for the hashing and Base64 encoding)
var hash = CryptoJS.HmacSHA256(apiKey + '\n' + timestamp + '\n' + nonce, apiSecretKey); var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
So for each API request, you need to set following headers
As we can see, enterprise account has more power than client and user account. For safety, you need to get access token every time you call API on behalf of enterprise account.
Please tell Secured Signing what clients you have or discuss with use what you need, so that we can enable the right features for you.
For this special API, please set OAuth2 Token Request body as blow:
Use POST method to send HTTP form format to OAuth2 Token Endpoint. The request would look like:
POST https://www.securedsigning.com/api/oauth2/token HTTP/1.1 Content-Type: application/x-www-form-urlencoded grant_type=client_credentials&client_id=...&client_secret=...&redirect_uri=...&client_credential_type=special_feature&feature=MembershipManagement
Get access token from response, which is in JSON format:
{ "access_token":"[Access Token]", "token_type":"bearer", "expires_in":86400, "scope":"Account" }
As we can see, client account has more power than user account. For safety, you need to get access token every time you call API on behalf of client account.
POST https://www.securedsigning.com/api/oauth2/token HTTP/1.1 Content-Type: application/x-www-form-urlencoded grant_type=client_credentials&client_id=...&client_secret=...&redirect_uri=...&client_credential_type=membership_authentication&membership_code=...&membership_reference=...
Existing user accounts means that users have already signed up in Secured Signing. They can also connet their user account to your service through a standard OAuth 2 authorization flow.
Please set OAuth2 Authorise Request URL as blow:
[The things this account can do, e.g. Basic to get account details, WeSign to do We Sign process]
See full list below.
Supported scopes list:
Use GET method to send to OAuth2 Authorise Endpoint. The request would look like:
GET http://www.securedsigning.com/api/oauth2/authorize?response_type=code&client_id=...&redirect_uri=...&scope=... HTTP/1.1
User will be redirected to Secured Signing, they need to login and authorise and then redirect back to your service.
Get authorization code from query part of callback URL
[CallbackURL]?code=whx0...wHd5
Use this authorization code to access Secured Signing OAuth 2 Token endpoint to get access token.
Please set OAuth2 Token Request URL as blow:
Use POST method to send request to OAuth2 Token Endpoint. The request would look like:
POST http://www.securedsigning.com/api/oauth2/token HTTP/1.1 grant_type=authorization_code&client_id=...&client_secret=...&redirect_uri=...&code=...
{ "access_token":"", "token_type":"bearer", "expires_in":86400, "refresh_token":"", "scope":"" }
Please save the new access token for this user to perform operations on its behalf.
See full list above.
GET http://www.securedsigning.com/api/oauth2/authorize?response_type=code&client_id=...&redirect_uri=...&scope=...&Key=... HTTP/1.1
This URL will have to do 302 redirects to get final response. So your HTTP client should support redirect.
Please save access and refresh token for this user to perform operation on its behalf.
If account’s access token expired, you can use its refresh token to get a new access token. It’s a standard OAuth2 refresh token process.
Use POST method to send to OAuth2 Token Endpoint. The request would look like:
POST http://www.securedsigning.com/api/oauth2/token HTTP/1.1 grant_type=refresh_token&client_id=...&client_secret=...&redirect_uri=...&refresh_token=...
{ "access_token":"", "token_type":"bearer", "expires_in":86400 }
With access token of user account, you can call Secured Signing API, e.g. uploading document or sending Smart Tag. Please refer to API Documentation page for a full list of API Seucred Signing supported.
Here’s a sample how to get a user account information from Secured Signing.
The Account Infomation API request:
GET https://api.securedsigning.com/web/v1.4/Account/Info
Response in JSON format, which is infomation for this user account:
{ "Actived":true, "Locked":false, "Email":"...", "Name":"...", "PlanName":"...", "PlanType":"...", "DocumentRemain":0, "DocumentUsed":8 }
To call other API functions, set the headers and follow the API request format to fill data, then send request to get response.
"Company": { "CompanyName": "", "StreetAddress": "", "City": "", "Country": "", //full country name, such as New Zealand, United States, not nz or us. "CountryCode": "", //international phone code, such as 64 for New Zealand, 1 for United States. "PhoneNumber": "", "ContactFirstName": "", "ContactLastName": "", "ContactEmail": "", "GMTOffset": 0 //The timezone difference in minutes, such as 780 for New Zealand Lightsaving Time, -480 for Pacific Time. }
"User":{ "FirstName":"", //required "LastName":"", //required "Email":"", //required "JobTitle":"", "CompanyName":"", "LegalName":"", "Website":"", "Industry":"", "Employees":"", "Street":"", "Suburb":"", "City":"", "Postcode":"", "Country":"", //full country name, such as New Zealand, United States, not nz or us. "State":"", "PhoneCountry":"", //international phone code, such as 64 for New Zealand, 1 for United States. "PhoneArea":"", "PhoneNumber":"", "Title":"" }
There’re 2 kinds of plan type for client (Type B) account:
Please refer to Plan Details to learn more.
"Plan":{ //can be null if client chooses Pay as you Go plan, maximum user up to 10. "PlanUsers":5, //maximum users can be added to this client account. "PlanDocuments":200 //maximum documents can be used per month for all user. },