This information is only available in English.
History
Document history | |
---|---|
2024-10-22 | Added EmailTemplates.retrieve service to retrieve a list of email templates defined in the account |
2023-11-25 | Added Users.retrieve service to retrieve a list of users in the account |
2023-11-18 | Briefcase.create service: Added webhookurl as possible parameter. |
2023-10-28 | Added Contacts.upload service to insert or update contact(s) in the account's contacts list. Added Contacts.retrieve service to retrieve a list of account's contacts.. Added Contacts.remove service to remove contact(s) from the account's contacts list. |
2023-10-21 | Add Email/SMS workflow so signatures can be collected in a specific order. See Example 12: Add Email/SMS workflow |
2023-07-15 | Added filename parameter to the Documents.signed service response).
|
2023-04-15 | As of now the Audittrail.retrieve service expects the x-oksign-docid parameter to be signed docid of the signed documen (no longer the source_docid).
|
2023-03-25 | Restrict Text(Area) data input by using validation rules. See Example 11: Add validation rules to Text(Area) fields |
2022-07-16 | Add a teammember's countersignature to a document. See FormDesc.upload service example 10 Editor.create service: Added showTeammembers parameter
|
2022-06-07 | Added RateLimiter documentation |
2022-01-31 | Notifications.upload service available allowing to (re)send email(s) and/or SMS(s) after uploading a Form Descriptor |
2022-01-31 | Briefcase.create, Briefcase.retrieve and Briefcase.remove services available allowing to bundle documents together so these documents can be signed together with 1 siging link by the signer(s). |
2021-11-21 | EmailAttachment.upload and EmailAttachment.remove services available |
2021-09-21 | API methods flow Added creditsinfo JSONArray as callbackurl/returnurl parameter so the number of credits consumed per signer can be processed. |
2021-09-18 | Editor.create service Added showAnonymousSigners , showMeSigner , showSigningOptions parameters |
2021-09-04 | Documents.active service available |
2021-05-05 | Audittrail.retrieve service available |
General information
Use the API to easily scale from simple eSignature integrations to complex enterprise applications.The API is exposed as REST web services.
In case of questions, contact us at support@betrust.be
REST endpoint
The REST root endpoint is located at https://oksign.be/services/rest/v1 Each service is defined with a noun and verb added to the endpoint:https://oksign.be/services/rest/v1/{noun}/{verb}
Authentication
The API requires authentication for all its methods.The authentication data is passed as the value of a custom HTTP header called
x-oksign-authorization
.
The x-oksign-authorization
header's value is the combination of:
- Your accountnumber;
- The authorization token defined in your account;
- The organizational token defined in your account
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing
The authorization token can be linked to a callbackURL, returnURL and webhookURL (all optional).
If your application cannot receive http requests, API Polling can be used to find out which documents have been signed in a defined timeframe.
Organizational tokens can be defined in your account, menu-item
REST API
--> API Console
.API response result
Each response contains aJSONObject
describing a status and reason. The return code is always 200.
The response is a
JSONObject
indicating the status and the reason:
- If the status is
OK
the reason will give more information. - If the status is
FAILED
the reason will give more information about the error that occured.
Example (success):
{Example (failure):
"reason": "{ "https://oksign.be/sign/100693/gtOZQBecrNHpdx_z6i..."},
"status": "OK"
}
{Note: The
"reason": ""Invalid format x-oksign-docid. Found: 'zzz'. Expected: A valid format",
"status": "FAILED"
}
Document.retrieve
and Audittrail.retrieve
services return a PDF document. In case of error a 404 error is returned.Note: If a really bad error occures a 500 - Internal Server Error is thrown.
Rate limits
FREE (non paying) accounts have a limitation of sending 20 emails using the API services. Do you need more for your API testing? Contact us at support@betrust.be
As some requests consume more resources to handle than others, different rate limits are imposed.
Different requests per second (RPS) are applicable as follows:
Document.upload | 3 RPS |
---|---|
Document.retrieve | 3 RPS |
Metadata.retrieve | 3 RPS |
Documents.signed | 1 request per 3 minutes |
Documents.active | 1 request per 3 minutes |
| 1 request per 3 minutes |
All other endpoints | 10 RPS |
If a request is called too often a
429 Too Many Requests
response code is returned. Credits and account's storage size The account's storage size is limited. You can monitor the available/maximum storage size and available credits as follows:
Using the Account's Dashboard Login into your account and check the number of credits and available/maximum storage. Example:
Using the API
Use the Credits.retrieve
service (see below).
Checking the API response (header)
Credits
All services add following entry in the response header:
X-AccountCredits-Remaining : -3.158
This way the number of remaining credits can be monitored.
Some services (see table below) perform a credits balance check and return following response in case no credits are available in your account. Example:
{
"reason": "{ Insufficient credits. Found: -3.158.Expected: A positive balance. Please buy credits in your account.}",
"status": "FAILED"
}
Account's storage
The Document.upload service adds following entries in the response header:
X-AccountStorage-Limit :671088640
X-AccountStorage-Remaining :-12586
X-AccountStorage-Reset never
This way the available storage capacity can be monitored.
A storage check is done and if no storage is available when uploading a document following response is returned:
{
"reason": "{ Max account size exceeded. Maximum size allowed (bytes): 671088640. Current size (bytes): 671089857.)},
"status": "FAILED"
}
Please find below the list of which services do a credit and/or storage check:
Service Credit check Storage check Document.upload
YES FormDesc.upload
Notifications.upload
YES FormDesc.retrieve
YES Document.retrieve
YES Document.exists
Document.remove
Metadata.retrieve
YES Documents.active
YES Documents.signed (API polling)
YES Webhooks.retrieve (API polling)
YES Credits.retrieve
Audittrail.retrieve
YES
Notes: - The account's storage size increases when credits are bought with a maximum of 360Mb.
- Please remove regularly (signed) documents from your account if no longer used. No documents are automatically removed from your account.
- Documents can still be uploaded even if credits are negative as not to impact the service to your customers.
- Documents can still be signed even if storage has exceeded or credits are negative as not to impact the service to your customers.
Using the API
Use theCredits.retrieve
service (see below).
Checking the API response (header)
CreditsAll services add following entry in the response header:
X-AccountCredits-Remaining : -3.158This way the number of remaining credits can be monitored.
Some services (see table below) perform a credits balance check and return following response in case no credits are available in your account. Example:
{
"reason": "{ Insufficient credits. Found: -3.158.Expected: A positive balance. Please buy credits in your account.}",
"status": "FAILED"
}
Account's storage
The Document.upload service adds following entries in the response header:
X-AccountStorage-Limit :671088640This way the available storage capacity can be monitored.
X-AccountStorage-Remaining :-12586
X-AccountStorage-Reset never
A storage check is done and if no storage is available when uploading a document following response is returned:
{Please find below the list of which services do a credit and/or storage check:
"reason": "{ Max account size exceeded. Maximum size allowed (bytes): 671088640. Current size (bytes): 671089857.)},
"status": "FAILED"
}
Service | Credit check | Storage check |
Document.upload | YES | |
FormDesc.upload | ||
Notifications.upload | YES | |
FormDesc.retrieve | YES | |
Document.retrieve | YES | |
Document.exists | ||
Document.remove | ||
Metadata.retrieve | YES | |
Documents.active | YES | |
Documents.signed (API polling) | YES | |
Webhooks.retrieve (API polling) | YES | |
Credits.retrieve | ||
Audittrail.retrieve | YES |
- The account's storage size increases when credits are bought with a maximum of 360Mb.
- Please remove regularly (signed) documents from your account if no longer used. No documents are automatically removed from your account.
- Documents can still be uploaded even if credits are negative as not to impact the service to your customers.
- Documents can still be signed even if storage has exceeded or credits are negative as not to impact the service to your customers.
API methods flow
The typical use of the web services is as follows:- Upload a document (PDF or Word) to the platform using the
Document.upload
service. - Upload a form descriptor (describing the form's (signature) fields) to the platform using the
Formdesc.upload
service. - The
Formdesc.upload
service returns a signing URL you can send to the signer(s). - Upload notifications (if needed) defining email(s) and/or SMS(es) to be send to the signer(s) using the
Notifications.upload
service. The email and/or SMS informs a signer the document or briefcase is ready for signing. A signing link is added to the email's/SMS content). - If emails or SMSs are send, the GET webhookURL - if defined - is called in case of any errors (or use the
Webhooks.retrieve
service as a polling mechanism to get an overview of errors). - Once a document has been signed the GET callbackURL - if defined - is used to inform your application a document has been signed (otherwise API polling can be used).
Following parameters are added to the callbackURL. Example:
https://your.website.com/callbackurl/?source_docid=897215-59BFAC70-6257-1260-F259-6259A18EECE0
The
&signed_docid=656858-6072474D-80A0-D54A-4937-4FD639BAE9B6
&fields_completed=%5B%22SIG_FIELD_1%22%2C%22SIG_FIELD_2%22%5D
&orgtoken=sales
&accountnbr=100123
&ts=2020-08-03T10%3A57%3A35%2B02%3A00
&nbrOfSigaturesRequired=2
&nbrOfSigaturesValid=2
&creditsinfo=%5B%7B%22signerid%22%3A%20%22bt_00000000-0000-0000-0000-000000000001%22%2C%22signingoption%22%3A%20%22itsme%22%2C%22credits%22%3A%203%2C%22subscription%22%3A%200%7D%5Dsource_docid
is the docid of the document that has been uploaded before.
Thesigned_docid
is the docid of the signed copy of the source document.
Thefields_completed
contains a list (JSONArray) of the completed fields (signature and other fields).
Theorgtoken
contains the name of the organisational token by which the document was uploaded with.
Theaccountnbr
contains the accountnumber.
Thets
defines the current timestamp.
ThenbrOfSigaturesRequired
defines the number of signatures boxes in the document.
ThenbrOfSigaturesValid
defines the number of signatures boxes completed.
Thecreditsinfo
defines for each signer the number of credits consumed.
Notes:- The callbackURL, returnURL and webhooksURL requests are send using a GET method.
- The creditsinfo is a JSONArray containing for each signer the signingmethod used and the number of credits consumed. The number of credits consumed is the sum of the
credits
andsubscription
values. Example:
[ { "signerid": "bt_00000000-0000-0000-0000-000000000001", "signingoption": "itsme", "credits": 3, "subscription": 0 } ]
The signingoptions are 'pen', 'tan', 'itsme", 'eid'. 'tan' is signing via a TAN code send via SMS. - If the
nbrOfSigaturesRequired
equalsnbrOfSigaturesValid
then all signatures are in place and the document is completely signed. - It is possible in future versions new parameters are added
- The parameters
source_doc
andsigned_doc
have been renamed tosource_docid
andsigned_docid
to be consistent with the naming used in the Documents signed service. The old parameters remain in the parameters list but please update your code. - If the credits balance in your account is negative, sending of callbacks is deferred until the balance becomes positive again.
- The GET returnURL - if defined - is used to redirect the browser to whatever location is requested.
Following request parameters are added to the returnURL. Example:
https://your.website.com/returnurl/?status=OK
The
&source_docid=897215-59BFAC70-6257-1260-F259-6259A18EECE0
&signed_docid=656858-6072474D-80A0-D54A-4937-4FD639BAE9B6
&fields_completed=%5B%22SIG_FIELD_1%22%2C%22SIG_FIELD_2%22%5D
&orgtoken=sales
&accountnbr=100123
&ts=2020-08-03T10%3A57%3A35%2B02%3A00
&nbrOfSigaturesRequired=2
&nbrOfSigaturesValid=2
&creditsinfo=%5B%7B%22signerid%22%3A%20%22bt_00000000-0000-0000-0000-000000000001%22%2C%22signingoption%22%3A%20%22itsme%22%2C%22credits%22%3A%203%2C%22subscription%22%3A%200%7D%5Dstatus
is OK if the document has been successfully signed, FAILED otherwise.
Thesource_docid
is the docid of the document that has been uploaded before.
Following parameters are only added in case the document has been successfully signed:
Thesigned_docid
is a signed copy of the source document (only if status = OK).
Thefields_completed
contains a list (JSONArray) of the completed fields (signature and other fields).
Theorgtoken
contains the name of the organisational token by which the document was uploaded with.
Theaccountnbr
contains the accountnumber.
Thets
defines the current timestamp.
ThenbrOfSigaturesRequired
defines the number of signatures boxes in the document.
ThenbrOfSigaturesValid
defines the number of signatures boxes completed.
Thecreditsinfo
defines for each signer the number of credits consumed.
Notes:- The creditsinfo is a JSONArray containing for each signer the signingmethod used and the number of credits consumed. The number of credits consumed is the sum of the
credits
andsubscription
values. Example:
[ { "signerid": "bt_00000000-0000-0000-0000-000000000001", "signingoption": "itsme", "credits": 3, "subscription": 0 } ]
- If the
nbrOfSigaturesRequired
equalsnbrOfSigaturesValid
then al signatures are in place and the document is completely signed. - It is possible in future versions new parameters are added
- The parameters
source_doc
andsigned_doc
have been renamed tosource_docid
andsigned_docid
to be consistent with the naming used in the Documents signed service. The old parameters remain in the parameters list but please update your code.
- The creditsinfo is a JSONArray containing for each signer the signingmethod used and the number of credits consumed. The number of credits consumed is the sum of the
- You can use the
Document.retrieve
andMetadata.retrieve
services to get the signed copy of the document (passing thesigned_docid
value) and any metadata (content of completed fields, more info over the signatures placed on the document). - Use the
Document.remove
service to remove the (signed) document from the platform.
List of available services
Basic services:
Document.upload | POST Upload a document (PDF or Word) to the platform |
FormDesc.upload | POST Upload the Form Descriptor to the platform |
Notifications.upload | POST Upload the Notifications to the platform |
FormDesc.retrieve | GET Retrieve the previously uploaded Form Descriptor. This allows you to detect if any FormDesc changes that were made using the Document Editor (like adding or removing fields). |
Document.retrieve | GET Retrieve a (signed) document from the platform |
Document.exists | GET Does a (signed) document still exists on the platform? |
Document.remove | DELETE Remove a (signed) document from the platform |
Metadata.retrieve | GET Retrieve the metadata from a (signed) document so all fields and signature can be automatically processed in you application. |
Documents.active | GET Retrieve a list of all active documents (all documents visible in the Active Documents tab). |
Documents.signed (API polling) | GET Retrieve a list of docids of signed documents in a defined timeframe. |
Webhooks.retrieve (API polling) | GET Retrieve a list of webhooks indicating a problem with sending an email or SMS in a defined timeframe. |
Credits.retrieve | GET Retrieve more information about your credits. |
Audittrail.retrieve | GET Retrieve the Audit Trail Report of a (signed) document. |
Additional services:
Below the list additional services which might come in handy:Briefcase services
The Briefcase services bundles documents together so they can be signed using one signing link per signer.Briefcase.create | POST Upload a JSONObject defining which documents to sign and other properties. |
Briefcase.retrieve | GET Retrieve a previously uploaded Briefcase tokeninfo JSONObject for consultation. |
Briefcase.remove | DELETE Remove a previously created Briefcase from the platform. |
Email Attachment services
The Email Attachment services allows you to add attachment(s) to an email sent via your account (when sending the signing link(s) to the signer(s)).EmailAttachment.upload | POST Upload a file to be added as attachment to an email sent from your platform. |
EmailAttachment.remove | DELETE Remove a previously uploaded attachment file. |
EditorExpress services
The EditorExpress services allows you to invoke the Editor in your own application so the user can modify the document. Afterwards the modified FormDescriptor can be read using the FormDesc.retrieve service.EditorExpress.create | POST Upload a tokeninfo JSONObject defining which document to show in the editor. |
EditorExpress.retrieve | GET Retrieve a previously uploaded EditorExpress tokeninfo JSONObject for consultation. |
EditorExpress.remove | DELETE Remove a previously uploaded EditorExpress tokeninfo JSONObject from the platform. |
SignExpress services
Add a 'Sign now' button in your application and use the SignExpress service to have an end-to-end flow between your application and OK!Sign.SignExpress.create | POST Upload a tokeninfo JSONObject defining which documents to sign and by which signer (and other properties). |
SignExpress.retrieve | GET Retrieve a previously uploaded SignExpress tokeninfo JSONObject for consultation. |
SignExpress.remove | DELETE Remove a previously uploaded SignExpress tokeninfo JSONObject from the platform. |
Document Upload service
URL |
https://oksign.be/services/rest/v1/document/upload
|
---|---|
Title | Document upload Upload a PDF or Word document that needs to be completed and/or signed. |
Method | POST |
Request Headers |
The x-oksign-authorization header's value is the combination of:
Headers only support US-ASCII characters. If you need to pass filenames with characters outside the US-ASCII range please define the filename in the FormDesc.upload service (see Example 6: Add filename to the Form Descriptor) .
Example:
|
Body |
%PDF-1.5 %µµµµ 1 0 obj <</Type/Catalog/Pages 2 0 R/Lang(nl-BE) /StructTreeRoot 59 0 R/MarkInfo<</Marked true>>>> endobj |
Example:
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason is the documentID of the uploaded document. This docid is needed with other webservices. Example: { |
Error Response | |
Notes |
JSONObject . The field definitions for a document can be copied The field definitions for a document can be copied from your account using the Document Editor. |
Formdesc Upload service
URL |
https://oksign.be/services/rest/v1/formdesc/upload
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | FormDesc upload The FormDescriptor defines the fields to be added to the document. The allowed fields are:
JSONObject . The field definitions for a document can be copied from your account using the Document Editor.Do as follows:
it to this service giving you all freedom to tailer the fields when uploading other (type of) documents if needed (see the examples below). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Method | POST | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-docid is the docid you received when uploading the document Document.upload service.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Body |
Below some examples you can copy/paste and modify as needed for your own situation:
Example 1: Pass a JSONObject with pagenbr , posX and posY for each fieldIf you know the position of each field in the document, you can define each field with its pagenbr , posX , posY parameters.Raw { "reusable": false, "fields": [ { "inputtype": "CanvasSIG", "name": "SIG_FIELD_1", "required": true, "pagenbr": 0, "posX": 119.89, "posY": 712.73, "width": 175, "height": 70, "signerid": "bt_00000000-0000-0000-0000-000000000100", "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} } }, { "inputtype": "CanvasSIG", "name": "SIG_FIELD_2", "required": true, "pagenbr": 0, "posX": 331.56, "posY": 712.73, "width": 175, "height": 70, "signerid": "bt_00000000-0000-0000-0000-000000000200", "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} } }, { "inputtype": "Text", "name": "FIELD_1", "required": true, "pagenbr": 0, "posX": 152.13, "posY": 476.26, "height": 20.67083333333333, "width": 300.1405, "fontsize": "12" } ], "signersinfo": [ { "name": "John Lennon", "mobile": "+32495123456", "actingas": "Singer / Songwriter", "id": "bt_00000000-0000-0000-0000-000000000100", "email": "john.lennon@imagine.com" }, { "name": "", "mobile": "", "actingas": "", "id": "bt_00000000-0000-0000-0000-000000000200", "email": "yoko.ono@imagine.com" } ] }A signersinfo JSONArray allows you to define for each Signature box (CanvasSIG ) field the signer's name, actingas (function), email and mobile number. This way the signer does not need to enter this data and you keep full control of these properties during the signing process.The signerid (bt_00000000-0000-0000-0000-000000000100 in above example) defines which CanvasSIG field corresponds to which entry in the signersinfo JSONArray.Notes:
Example 2: Pass a JSONObject with a marker parameter for each fieldIf you don't know the exact position of the (signature) field(s) (you use a report generator and cannot calculate these values for each field) you can use markers instead (see below). Do as follows:
Raw { "reusable": false, "fields": [ { "marker": "_sb1_", "inputtype": "CanvasSIG", "name": "SIG_FIELD_1", "required": true,Remarks: Keep the ratio between width and height of each CanvasSIG field at 3. Good dimensions are width:150 and height:50.The marker defines the top-left position of the signature box, so keep this into account when defining the marer location on the page. Example 3: Add notifications to the Form DescriptorPreferably use the Notifications.upload service allowing you to (re)send email(s) and/or SMS(s) at any time after uploading the Form Descriptor. Define a notifications JSONObject to inform signers via email and/or SMS that a document is ready to be signed.The notifications JSONObject can contain a smtp and/or sms JSONObject defining the attributes of the email(s) or SMS(s) to send.
Raw { "reusable": false, "notifications": { "smtp": { "sender": "Bill Gates", "to": ["bt_00000000-0000-0000-0000-000000000001"], "cc": [], "subject": "Contract_TEST_14-10-2019.pdf", "body": "<p>Dear,<br/> click the button below to start the signing process.</p>", "reminder_days": 3, "repeat": 3, "language" : "fr", "delay": 0 }, "sms": { "to": ["bt_00000000-0000-0000-0000-000000000001"], "subject": "Please sign the document Contract_0025847 via link:", "reminder_days": 0, "repeat": 0, "delay" : 0, "language" : "nl" } }, "fields": [ { "signerid": "bt_00000000-0000-0000-0000-000000000001", "height": 82.68, "inputtype": "CanvasSIG", "name": "SIG_FIELD_1", "pagenbr": 4, "posX": 51.26, "posY": 390.27, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 204.23 } ], "signersinfo": [ { "mobile": "32495XXXXXX", "name": "Bill Gates", "actingas": "Tester", "id": "bt_00000000-0000-0000-0000-000000000001", "email": "bill.gates@microsoft.xxx" } ] } The smtp JSONObject has following parameters:
The sms JSONObject has following parameters:
Example 4: Add logo to the Form DescriptorTo define the logo to be displayed during the Signing process a logo key/value pair can be defined defining the URL of the logo.Raw { "logo" : "https://www.yourwebsite.com/static/images/yourlogo.png", "reusable": false, "fields": [ { "signerid": "bt_00000000-0000-0000-0000-000000000001", "height": 82.68, "inputtype": "CanvasSIG", "name": "SIG_FIELD_1", "pagenbr": 4, "posX": 51.26, "posY": 390.27, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 204.23 } ], "signersinfo": [ { "mobile": "32495XXXXXX", "name": "Bill Gates", "actingas": "Tester", "id": "bt_00000000-0000-0000-0000-000000000001", "email": "bill.gates@microsoft.xxx" } ] } If the logo parameter is not defined, the logo is displayed as defined in your account via menu Settings --> Company Data --> Name and Logo. If the logo is not defined, the logo is displayed.
Example 5: Add sendtomeonly to the Form DescriptorTo define whether or not the signed document should be send to all signers (or only to the account's email) the sendtomeonly key/value pair can be defined.Raw { "sendtomeonly" : true, "reusable": false, "fields": [ { "signerid": "bt_00000000-0000-0000-0000-000000000001", "height": 82.68, "inputtype": "CanvasSIG", "name": "SIG_FIELD_1", "pagenbr": 4, "posX": 51.26, "posY": 390.27, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 204.23 } ], "signersinfo": [ { "mobile": "32495XXXXXX", "name": "Bill Gates", "actingas": "Tester", "id": "bt_00000000-0000-0000-0000-000000000001", "email": "bill.gates@microsoft.xxx" } ] } Following values are allowed:
Example 6: Add filename to the Form DescriptorIf the filename contains non US-ASCII characters, the x-oksign-filename header can't be used in the Document.upload service as section 3.1 of the ARPA Internet Text Messages spec states that headers are always in US-ASCII encoding.
Use a filename key/value pair in the descriptor.
Raw { "filename" : "Frédéric Malpertûse.pdf", "reusable": false, "fields": [ { "signerid": "bt_00000000-0000-0000-0000-000000000001", "height": 82.68, "inputtype": "CanvasSIG", "name": "SIG_FIELD_1", "pagenbr": 4, "posX": 51.26, "posY": 390.27, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 204.23 } ], "signersinfo": [ { "mobile": "32495XXXXXX", "name": "Bill Gates", "actingas": "Tester", "id": "bt_00000000-0000-0000-0000-000000000001", "email": "bill.gates@microsoft.xxx" } ] } Example 7: Prefilling of fields Prefill fields with data from your application so the signer can verify and/or update these fields before signing the document. Each field can be:
Raw { "reusable": false, "fields": [ { "fontsize": "12", "height": 22.32, "inputtype": "Date", "name": "FIELD_1", "pagenbr": 0, "posX": 165.37, "posY": 200.09, "readonly": false, <== Signer can change field value "required": true, <== Signer needs to complete field "value": "2021-01-15", <== prefilled with a date "width": 95.91 }, { "fontsize": "12", "height": 22.32, "inputtype": "Text", "name": "FIELD_2", "pagenbr": 0, "posX": 162.06, "posY": 243.92, "readonly": false, <== Signer can change field value "required": true, <== Signer needs to complete field "value": "Bill Gates", <== prefilled with a name "width": 300.14 }, { "fontsize": "12", "height": 22.32, "inputtype": "Select", "options": [ { "volvo": "Volvo" }, { "saab": "Saab" }, { "seat": "Seat" } ], "name": "FIELD_3", "pagenbr": 0, "posX": 162.06, "posY": 286.08, "readonly": false, <== Signer can change field value "required": true, <== Signer needs to complete field "value": "volvo", <== prefilled with an option value "width": 300.14, "size": 1 }, { "fontsize": "12", "height": 22.32, "inputtype": "Checkbox", "name": "FIELD_4", "pagenbr": 0, "posX": 163.71, "posY": 332.39, "readonly": true, <== Signer can NOT change field value "required": true, <== Field cannot be empty "value": "OK", <== prefilled with a value (will be passed as value if checked) "width": 22.32 }, { "signerid": "bt_00000000-0000-0000-0000-000000000001", "height": 100.05, "inputtype": "CanvasSIG", "name": "SIG_FIELD_5", "pagenbr": 0, "posX": 163.71, "posY": 384.48, "readonly": false, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 249.7 } ], "signersinfo": [ { "mobile": "", "name": "Signer-1", "actingas": "", "id": "bt_00000000-0000-0000-0000-000000000001", "email": "" } ] } Example 8: Assign a document to a user A document can be assigned to a user (but is optional). Define the email address of the user as the value of the assignto key.
In the example below bill.gates@ms.com is a user defined in your account.
Raw { "assignto": "bill.gates@ms.com", "reusable": false, "fields": [ { "signerid": "bt_00000000-0000-0000-0000-000000000001", "height": 82.68, "inputtype": "CanvasSIG", "name": "SIG_FIELD_1", "pagenbr": 4, "posX": 51.26, "posY": 390.27, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 204.23 } ], "signersinfo": [ { "mobile": "32495XXXXXX", "name": "Bill Gates", "actingas": "Tester", "id": "bt_00000000-0000-0000-0000-000000000001", "email": "bill.gates@microsoft.xxx" } ] } Notes:
Example 9: Add sendtomeemail to the Form DescriptorBy default a signed document (containing all signatures) is send to the account's email address as defined in the Send signed documents to: field via the menu Settings --> Preferences in your account.To define an alternative email address use the sendtomeemail parameter.Raw { "sendtomeemail" : "elon.musk@ms.com", "reusable": false, "fields": [ { "signerid": "bt_00000000-0000-0000-0000-000000000001", "height": 82.68, "inputtype": "CanvasSIG", "name": "SIG_FIELD_1", "pagenbr": 4, "posX": 51.26, "posY": 390.27, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 204.23 } ], "signersinfo": [ { "mobile": "32495XXXXXX", "name": "Bill Gates", "actingas": "Tester", "id": "bt_00000000-0000-0000-0000-000000000001", "email": "bill.gates@microsoft.xxx" } ] } Example 10: Add teammember's (user's) countersignature(s) to the Form Descriptor In previous versions only the account's signature (with signerid bt_00000000-0000-0000-0000-000000000000 ) could be used to automatically countersign the document.As of now all teammembers can be referenced to countersign a document (assuming they have defined their countersignature via the menu Settings->My data->My Signature). Do as follows:
Raw { "reusable": false, "fields": [ { "signerid": "bt_00000000-0000-0000-0000-002484214376", "height": 82.68, "inputtype": "CanvasSIG", "name": "SIG_FIELD_1", "pagenbr": 4, "posX": 51.26, "posY": 390.27, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 204.23 } ], "signersinfo": [ { "mobile": "", "name": "", "actingas": "", "id": "bt_00000000-0000-0000-0000-002484214376", "email": "" } ] }Notes:
Example 11: Add validation rules to Text(Area) fields The content of the Text(Area) fields can be checked with some predefined functions allowing to check the validity of an email address, mobile number, IBAN or Belgian NRN number. The predefined functions are:
Add the function name as a value of the fnname key in the field's definition (example below).
Raw { "reusable": false, "fields": [ { "fontsize": "12", "height": 23.14, "inputtype": "Text", "name": "IBAN", "fnname": "BT_CUSTOMERS.oksign.isValidIBAN<blur>()", "pagenbr": 0, "posX": 203.29, "posY": 197.51, "readonly": false, "required": true, "value": "", "width": 299.98 }, { "fontsize": "12", "height": 23.14, "inputtype": "Text", "name": "MOBILE", "fnname": "BT_CUSTOMERS.oksign.isValidMobile<blur>()", "pagenbr": 0, "posX": 220.65, "posY": 263.62, "readonly": false, "required": true, "value": "", "width": 299.98 }, { "fontsize": "12", "height": 23.14, "inputtype": "Text", "name": "NRN", "fnname": "BT_CUSTOMERS.oksign.isValidNRN<blur>()", "pagenbr": 0, "posX": 280.15, "posY": 316.51, "readonly": false, "required": false, "value": "", "width": 299.98 }, { "fontsize": "12", "height": 23.14, "inputtype": "Text", "name": "EMAIL", "fnname": "BT_CUSTOMERS.oksign.isValidEmail<blur>()", "pagenbr": 0, "posX": 254.53, "posY": 390.88, "readonly": false, "required": true, "value": "", "width": 299.98 }, { "signerid": "bt_00000000-0000-0000-0000-000000000001", "height": 99.99, "inputtype": "CanvasSIG", "name": "SIG_FIELD_1", "pagenbr": 1, "posX": 67.76, "posY": 328.08, "readonly": false, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 250.4 } ], "signersinfo": [ { "mobile": "", "name": "Signer-1", "actingas": "", "id": "bt_00000000-0000-0000-0000-000000000001", "email": "" } ] }Notes:
Example 12: Add Email/SMS workflow Add a workflow JSONObject to the notifications JSONObject to define a sequence number for each recipient (signer) so signatures can be collected in a specific order (example below).
The recipient(s) with the lowest sequence number get(s) an email/sms and each time a document is signed the next email(s) are send to the signer with the next sequence number. This assure a simple yet effective email/sms workflow. Raw { "reusable": false, "fields": [ { "signerid": "bt_00000000-0000-0000-0000-000000000001", "height": 99.22, "inputtype": "CanvasSIG", "name": "SIGFIELD1", "pagenbr": 2, "posX": 86.82, "posY": 224.9, "readonly": false, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 249.7 }, { "signerid": "bt_00000000-0000-0000-0000-000000000002", "height": 99.22, "inputtype": "CanvasSIG", "name": "SIGFIELD2", "pagenbr": 2, "posX": 128.99, "posY": 343.96, "readonly": false, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 249.7 }, { "signerid": "bt_00000000-0000-0000-0000-000000000003", "height": 99.22, "inputtype": "CanvasSIG", "name": "SIGFIELD3", "pagenbr": 2, "posX": 196.79, "posY": 480.39, "readonly": false, "required": true, "signingoptions": { "eid": {}, "pen": {}, "tan": {}, "itsme": {} }, "width": 249.7 } ], "notifications": { "workflow": [ { "id": "bt_00000000-0000-0000-0000-000000000001", "sequence": 1 }, { "id": "bt_00000000-0000-0000-0000-000000000002", "sequence": 2 }, { "id": "bt_00000000-0000-0000-0000-000000000003", "sequence": 3 } ], "smtp": { "sender": "Bill Gates", "to": [ "bt_00000000-0000-0000-0000-000000000001", "bt_00000000-0000-0000-0000-000000000002", "bt_00000000-0000-0000-0000-000000000003" ], "cc": [], "subject": "Contract_TEST_14-10-2019.pdf", "body": "Notes:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. If OK the reason is a JSONArray containing a link for each signer. Each URL is typically send to someone that needs to sign the document or put as a link on a website (if you only have 1 signer). Example (success): { "status": "OK", "reason": [{ "name": "Signer-1", "id": "bt_00000000-0000-0000-0000-000000000001", "url": "http://localhost:8080/oksign/sign/100751/THdtzPcxAp10p9KKlmn1-iQ63nrbHP-414Hk925snJ6CJZHwwC9sOyKt8TAU0-mTBHWye5f2mv7gn6Jn7ZzFNQ" }, { "name": "Signer-2", "id": "bt_00000000-0000-0000-0000-000000000002", "url": "http://localhost:8080/oksign/sign/100751/THdtzPcxAp10p9KKlmn1-iQ63nrbHP-414Hk925snJ6CJZHwwC9sOyKt8TAU0-mTBHWye5f2mv7g5EzxLoP23Z" } ] }Notes:
{ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Error Response | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Notes | Notes:
|
Notifications Upload service
URL |
https://oksign.be/services/rest/v1/notifications/upload
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | Notifications upload Define the content of email(s) and or SMS(s) to be send to signers informing a document or briefcase is ready for signing. Important: This service will remove any pending notifications for the referenced document or briefcase (as referenced by the passed x-oksign-docid parameter).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Method | POST | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-docid is the token you received when creating a document or Briefcase using the Document.upload or Briefcase.create service.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Body |
A JSONObject defining the properties of the email(s)/SMSs to send and to which signer(s).
The JSONObject has following parameters: Raw { "notifications": { "smtp": { "body": "<p>Dear,<br/> Please sign this document.</p>", "cc": [], "delay": 0, "language": "fr", "reminder_days": 1, "repeat": 0, "subject": "Bundle insurances reference AB-8475-985", "to": [ "bt_00000000-0000-0000-0000-000000000001" ] }, "sms": { "delay": 0, "language": "nl", "reminder_days": 1, "repeat": 0, "subject": "Bundle insurances reference AB-8475-985:", "to": [ "bt_00000000-0000-0000-0000-000000000001" ] } }, "signersinfo": [ { "mobile": "32495XXXXXX", "name": "Bill Gates", "actingas": "Tester", "id": "bt_00000000-0000-0000-0000-000000000001", "email": "bill.gates@microsoft.xxx" } ] } The passed JSNObject contains 2 top-level key/value pairs:
The notifications JSONObject contains 2 top-level key/value pairs:The smtp JSONObject has following parameters:
The sms JSONObject has following parameters:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason (optional). Example (success): { "status": "OK" }Example (failure): { |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Error Response | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Notes |
Formdesc Retrieve service
URL |
https://oksign.be/services/rest/v1/formdesc/retrieve
|
|
---|---|---|
Title | Formdesc retrieve Retrieve a document's form descriptor. |
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-docid is the docid you received when uploading the document Document.upload service.
|
|
Body | ||
Success Response |
The response is a JSONObject representing indicating the status (OK, FAILED) and the reason. If the status is OK the reason contains the Form Descriptor (as a JSONObject). Example (success): { "reason": { "fields": [ { "checked": false, "comment": "", "fnname": "", "fontfamily": "Courier", "fontstyle": "normal", "fontweight": "normal", "height": 70, "hidden": false, "id": "BT-202008061922-100001", "inputtype": "CanvasSIG", "letterspacing": "normal", "marker": "_sb1_", "name": "SIG_FIELD_1", "pagenbr": 3, "posX": 56.88, "posY": 460.74997, "readonly": false, "required": true, "signerid": "bt_00000000-0000-0000-0000-000000009805", "signingoptions": { "itsme": {}, "pen": {}, "tan": {} }, "textalign": "left", "width": 175 }, ], "reusable": false, "signerurls": [ { "id": "bt_00000000-0000-0000-0000-000000009805", "name": "GATES, BILL", "url": "https://your.website.com/sign/100123/OFWLU...?lg=fr" }, ] }, "status": "OK" }Example (failure): { |
|
Error Response | ||
Notes |
Document Retrieve service
URL |
https://oksign.be/services/rest/v1/document/retrieve
|
|
---|---|---|
Title | Document retrieve Retrieve a (signed) document from the platform. IMPORTANT:The signed document remains on our platform until it is removed using the Document.remove service.
|
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-docid is the docid you received when uploading the document Document.upload service.
|
|
Body | ||
Success Response |
The response is a PDF document (bytes).
Example (success): %PDF-1.5 %µµµµ 1 0 obj <</Type/Catalog/Pages 2 0 R/Lang(nl-BE) /StructTreeRoot 59 0 R/MarkInfo<</Marked true>>>> endobj |
|
Error Response |
A Status code 400 SC_BAD_REQUEST is thrown in case the passed documentid (x-oksign-docid) in absent or invalid. A Status code 404 SC_NOT_FOUND is thrown in case the requested document is not found on the platform. Post Request is not successful: (400) Invalid format x-oksign-docid. Found: '329259-580F2A2A-E7C6-3770-E7CE-B767701E7291xx'. Expected: A valid format Post Request is not successful: (404) No PDF document (in documents table) found for docid: 813009-187AB32B-A6DF-4298-F8A6-D9ED64DEBD86 |
|
Notes |
Document Exists service
URL |
https://oksign.be/services/rest/v1/document/exists
|
|
---|---|---|
Title | Document exists Does a document exists on the platform? |
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-docid is the docid you received when uploading the document Document.upload service.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. If the status is OK the filename and template (true|false) are mentioned in the reason (as a JONObject). Example (success): {Example (failure): { |
|
Error Response | ||
Notes |
Document Remove service
URL |
https://oksign.be/services/rest/v1/document/remove
|
|
---|---|---|
Title | Document remove Remove a (signed) document from the platform. |
|
Method | DELETE | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-docid is the docid you received when uploading the document Document.upload service.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason (if FAILED). Example (success): {"status": "OK" }Example (failure): { |
|
Error Response | ||
Notes |
Metadata Retrieve service
URL |
https://oksign.be/services/rest/v1/metadata/retrieve
|
|
---|---|---|
Title | Metadata retrieve Retrieve the metadata of a (signed) document. The medata contains more info regarding the signature(s) and the content of the completed fields. |
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-docid is the docid of the signed document (signed_docid).
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. The reason contains the document's metadatason (as a JONObject). Example (success): { "reason": { "response": { "fieldslist": [], "other": { "documentURI": "Haarvergoeding-15u51.pdf", "lastmodified": "2017-11-06T12:07:14+01:00", "leaseperiod_ends": "2017-12-06T00:00:00+01:00", "nbrOfPages": 2, "refslist": [] }, "signatureslist": [] }, "responseHeader": { "fieldslistsize": 0, "othersize": 5, "signatureslistsize": 0 } }, "status": "OK" }Example (failure): { |
|
Error Response | ||
Notes |
Documents active service
URL |
https://oksign.be/services/rest/v1/documents/active
|
||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | Documents active Get a list of docids and other properties of active documents. Active documents are listed in the Active Documents tab in your account. |
||||||||||||||||||||||||||||||||||||
Method | GET | ||||||||||||||||||||||||||||||||||||
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The accept header should be application/json as a response in JSON format is returned.
|
||||||||||||||||||||||||||||||||||||
Body | |||||||||||||||||||||||||||||||||||||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. If the status is OK more info can be found in the reason (as a JSONArray). Example (success): { "reason": [ { "createdate": "2021-08-28T12:32:26+02:00", "creator": "bill.gates@ms.com", "docid": "751589-90FB642F-FBEA-AD61-0BEA-B5247FB09659", "filename": "MAKRO invulformulier - kopie (7) - Signer-1.pdf", "nbrOfSigaturesRequired": 1, "nbrOfSigaturesValid": 1, "orgtoken" : "opdrachtbrief" "reusable" : false, "signed_docid": "563278-7877ACB2-507A-5B02-AB6E-CCF48C77E790", "status": 1, "viaapi": true }, ... ], "status": "OK" }The reason contains a JSONArray of JSONObjects each describing the properties of an active document:
{ "reason": "Unparseable date: \"2017-11-01T12:00:00+0X:00\"", "status": "FAILED" } |
||||||||||||||||||||||||||||||||||||
Error Response | |||||||||||||||||||||||||||||||||||||
Notes | Do not call this request more than once every 3 minutes. If this request is called too often a 429 Too Many Requests response code is returned. |
Documents signed service (via API Polling)
URL |
https://oksign.be/services/rest/v1/documents/signed
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | Documents signed Get a list of docids of signed documents in a defined timeframe that have been uploaded previously via the Document.upload service. |
||||||||||||
Method | GET | ||||||||||||
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-starttime is the start time of the timeframe (ISO-8601 format).
|
||||||||||||
Body | |||||||||||||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. If the status is OK more info can be found in the reason (as a JSONArray). Example (success): { "reason": [ { "accountnbr": 123456, "creditsinfo": [ { "credits": 1, "signerid": "bt_00000000-0000-0000-0000-000000000001", "signingoption": "pen", "subscription": 0 } ], "filename" : "a-filename.pdf", "fields_completed": ["L1-60c2"], "nbrOfSigaturesRequired": 1, "nbrOfSigaturesValid": 1, "orgtoken": "test-production", "signed_docid": "00000-6F179F99-0000-0000-0000-DEC8F816E42B", "signerid": "bt_00000000-0000-0000-0000-000000000001", "source": "SignViaLink", "source_docid": " 00000-BA0A5760-0000-0000-0000-FA7808BA7D8C", "ts": "2021-10-13T16:47:44+02:00" }, { "accountnbr": 123456, "creditsinfo": [ { "credits": 1, "signerid": "bt_00000000-0000-0000-0000-000000000001", "signingoption": "itsme", "subscription": 4 } ], "filename" : "another-filename.pdf", "fields_completed": ["L1-60c2"], "nbrOfSigaturesRequired": 1, "nbrOfSigaturesValid": 1, "orgtoken": "test-production", "signed_docid": "999999-6F179F99-0000-0000-0000-DEC8F816E42B", "signerid": "bt_00000000-0000-0000-0000-000000000001", "source": "SignViaLink", "source_docid": " 999999-BA0A5760-0000-0000-0000-FA7808BA7D8C", "ts": "2021-10-12T16:47:44+02:00" } ], "status": "OK" }Notes:
{ "reason": "Unparseable date: \"2017-11-01T12:00:00+0X:00\"", "status": "FAILED" } |
||||||||||||
Error Response | |||||||||||||
Notes | Do not call this request more than once every 3 minutes and define the x-oksign-starttime and x-oksign-endtime as moving timestamps. Example:
x-oksign-starttime and x-oksign-endtime with the execution time of calling this request so the response only contains the latest information (since the previous request).
Of course you can also execute this request hourly, daily, ... as per your convenience.If this request is called too often a 429 Too Many Requests response code is returned.
|
Webhooks retrieve service (via API Polling)
URL |
https://oksign.be/services/rest/v1/webhooks/retrieve
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | Webhooks retrieve Get a list of SMS or Email webhooks in a defined timeframe. The webhooks are generated in case a bad event happened resulting in a error during the sending of the email or SMS. Only error events are reported. |
||||||||||||
Method | GET | ||||||||||||
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-starttime is the start time of the timeframe (ISO-8601 format).
|
||||||||||||
Body | |||||||||||||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. If the status is OK the detailed webhook info can be found in the reason (as a JSONArray). Example (success): { "reason": [ { "type": "smtp", "event": "deferred", "to": "stefan@gmail.xxx", "source_docid": "565581-335E99F3-350F-51F1-F7C1-386FE7C82E0E", "notificationid": "202001061348-1005A7-F312EF68-792B-D3E4-0841.smtp.int.test.oksign", "reason": "getaddrinfo ENOTFOUND gmail.xxx gmail.xxx:25", "orgtoken": "sales", "accountnbr": 123456, "ts": "2017-11-06T14:57:34+01:00" }, { "type": "sms", "event": "blocked", "to": "3295509235", "source_docid": "565581-335E99F3-350F-51F1-F7C1-386FE7C82E0E", "notificationid": "202001061348-1005A7-F312EF68-792B-D3E4-0841.smtp.int.test.oksign", "reason": "Invalid mobile number", "orgtoken": "hrm", "accountnbr": 123456, "ts": "2017-11-06T14:57:34+01:00" } ], "status": "OK" }The passed parameters are:
{ "reason": "Unparseable date: \"2017-11-01T12:00:00+0X:00\"", "status": "FAILED" } |
||||||||||||
Error Response | |||||||||||||
Notes | Do not call this request more than once every 3 minutes and define the x-oksign-starttime and x-oksign-endtime as moving timestamps. Example:
x-oksign-starttime and x-oksign-endtime with the execution time of calling this request so the response only contains the latest information (since the previous request).
Of course you can also execute this request hourly, daily, ... as per your convenience.If this request is called too often a 429 Too Many Requests response code is returned.
|
Credits retrieve service
URL |
https://oksign.be/services/rest/v1/credits/retrieve
|
|
---|---|---|
Title | Credits retrieve Retrieve info about your credits balance (quantity), when the credits expire (validuntil), the storage capacity (max_account_size) and storage in use (account_size). |
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The accept header should be application/json as a response in JSON format is returned.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. If the status is OK the reason contains the credit info (as a JONObject). Example (success): { "account_size": 16858965, "max_account_size": 1048576000, "paid": true, "quantity": 25, "subscription": "PRE", "validuntil": "2021-08-21T23:59:59+01:00" }Example (failure): { |
|
Error Response | ||
Notes |
Audittrail retrieve service
URL |
https://oksign.be/services/rest/v1/audittrail/retrieve
|
|
---|---|---|
Title | Audit Trail retrieve *** The Audit Trail Report is only available for documents uploaded in your account after 2021-05-05. *** keeps track of what happened with your document. The non-editable Audit Trail report - delivered in PDF format certified by a Betrust signature - ensures that every action on your document is tracked and time-stamped, to provide proof of access, review, and signature. The records also include a hash of each version of the PDF document to prove the records belong to the (signed) document. Consult the Audit Trail Report to know what info is tracked. Note:
|
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-docid is the signed_docid (as of 2023-04-15).
|
|
Body | ||
Success Response |
The response is a PDF document (bytes).
Example (success): %PDF-1.5 %µµµµ 1 0 obj <</Type/Catalog/Pages 2 0 R/Lang(nl-BE) /StructTreeRoot 59 0 R/MarkInfo<</Marked true>>>> endobj |
|
Error Response |
A Status code 400 SC_BAD_REQUEST is thrown in case the passed documentid (x-oksign-docid) in absent or invalid. A Status code 404 SC_NOT_FOUND is thrown in case the requested document is not found on the platform. Post Request is not successful: (400) Invalid format x-oksign-docid. Found: '329259-580F2A2A-E7C6-3770-E7CE-B767701E7291xx'. Expected: A valid format Post Request is not successful: (404) No PDF document (in documents table) found for docid: 813009-187AB32B-A6DF-4298-F8A6-D9ED64DEBD86 |
|
Notes |
Briefcase create service
URL |
https://oksign.be/services/rest/v1/briefcase/create
|
||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | Briefcase create Create a briefcase containing multiple documents that are signed together using one signing link for each signer. Advantages:
|
||||||||||||||||||
Method | POST | ||||||||||||||||||
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The content-type header should be application/json as the body of this request is a serialized JSONObject.
|
||||||||||||||||||
Body |
Upload a JSONObject to the platform defining which document(s) to sign (and other info).
The JSONObject has following parameters: Raw { "list": [ "909543-EF3A6CC0-AD17-933D-429C-BCAFD0B8BE84", "719992-6742F248-331E-927F-8546-AE4B5A3E9AC1" ], "returnurl": "https://www.betrust.be", "callbackurl": "https://www.yourwebsite.be/callback", "webhookurl": "https://www.yourwebsite.be/webhook", "packagename": "Bundle insurances reference AB-8475-985", }
|
||||||||||||||||||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason.
If OK the docid parameter contains the id of the brieefcase and the reason is a JSONObject containing a list of signingurls for each signer defined in the list of documents. The URL can be send to the signer or be used in your (portal) application to have the document signed immediately (Face-2-Face).Example (success): { "docid": "028651-25AAAF19-97B9-8BFD-7C46-05F95D1B6252", "reason": [ { "id": "bt_00000000-0000-0000-0000-000000000001", "name": "Bill Gates", "url": "https://oksign.be/sign/100292/hERAOm..." } ], "status": "OK" }Notes:
{ |
||||||||||||||||||
Error Response | |||||||||||||||||||
Notes |
Briefcase retrieve service
URL |
https://oksign.be/services/rest/v1/briefcase/retrieve
|
|
---|---|---|
Title | SignExpress retrieve Retrieve a previously uploaded Briefcase JSONObject from the platform |
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-docid is the token you received when creating the Briefcase using the Briefcase.create service.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. Example (success): { "reason": { "callbackurl": "https://www.mycompany.com/oksign/callback", "list": [ "491984-B0FDB09A-6A5D-13BF-C890-476051598574" ], "orgtoken": "testststsst", "packagename": "Bundle insurances AB-1234-454", "returnurl": "https://www.mycompany.com", }, "status": "OK" }Example (failure): { |
|
Error Response | ||
Notes |
Briefcase remove service
URL |
https://oksign.be/services/rest/v1/briefcase/remove
|
|
---|---|---|
Title | Briefcase remove Remove a previously created Briefcase from the platform. Note: The documents in the briefcase are not removed and are still available in your account. |
|
Method | DELETE | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-docid is the id you received in the Briefcase.create response.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason (if FAILED). Example (success): {"status": "OK" }Example (failure): { |
|
Error Response | ||
Notes |
SignExpress create service
URL |
https://oksign.be/services/rest/v1/signexpress/create
|
|||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | SignExpress create Add a 'Sign now' button in your application and use the SignExpress service to have an end-to-end flow between your application and OK!Sign. This way documents can be completed/signed from within your application. |
|||||||||||||||||||||
Method | POST | |||||||||||||||||||||
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The content-type header should be application/json as the body of this request is a serialized JSONObject.
|
|||||||||||||||||||||
Body |
Upload a JSONObject to the platform defining which document(s) to sign (and other info).
The JSONObject has following parameters: Raw { "list": [ "108041-88213B3D-05E0-36F4-6F03-980B723A8293", ], "signerinfo": { "actingas": "CEO", "email": "bill.gates@ms.com", "id": "bt_00000000-0000-0000-0000-000000000001", "mobile": "+32495123456", "name": "Bill Gates" }, "returnurl": "https://www.betrust.be", "callbackurl": "https://www.yourwebsite.be/callback", "validityperiod": 3000, "packagename": "Bundle insurances reference AB-8475-985", }
|
|||||||||||||||||||||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason.
If OK the reason is a JSONObject containing the link to the editor and some other info. The URL can be send to the signer or be used in your (portal) application to have the document signed immediately (Face-2-Face). Example (success): { "reason": { "id": "bt_00000000-0000-0000-0000-000000000001", "name": "Bill Gates", "token": "364260-5686ECAD-006B-32C8-8093-830E9CA81584", "url": "https://oksign.be/sign/100292/hERAOm..." }, "status": "OK" }Notes:
{ |
|||||||||||||||||||||
Error Response | ||||||||||||||||||||||
Notes |
SignExpress retrieve service
URL |
https://oksign.be/services/rest/v1/signexpress/retrieve
|
|
---|---|---|
Title | SignExpress retrieve Retrieve a previously uploaded SignExpress tokeninfo JSONObject from the platform |
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-token is the token you received when uploading the SignExpress tokeninfo using the SignExpress.create service.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. Example (success): { "reason": { "callbackurl": "https://www.mycompany.com/oksign/callback", "list": [ "491984-B0FDB09A-6A5D-13BF-C890-476051598574" ], "orgtoken": "testststsst", "packagename": "Bundle insurances AB-1234-454", "returnurl": "https://www.mycompany.com", "signerinfo": { "actingas": "CEO", "email": "bill.gates@ms.com", "id": "bt_00000000-0000-0000-0000-000000000001", "mobile": "+32495123456", "name": "Bill Gates" }, "token": "133998-D720A35D-8CAB-242A-69B0-F596B1569845", "valid_until": "2021-01-14T17:26:53+01:00", "validityperiod": 3000 }, "status": "OK" }Example (failure): { |
|
Error Response | ||
Notes |
SignExpress remove service
URL |
https://oksign.be/services/rest/v1/signexpress/remove
|
|
---|---|---|
Title | SignExpress remove Remove a previously uploaded SignExpress tokeninfo JSONObject from the platform |
|
Method | DELETE | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-token is the token you received in the SignExpress.create response.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason (if FAILED). Example (success): {"status": "OK" }Example (failure): { |
|
Error Response | ||
Notes |
EditorExpress create service
URL |
https://oksign.be/services/rest/v1/editorexpress/create
|
|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | EditorExpress create The EditorExpress create service allows you to call the editor from your own application. The editor acts as a 'scratchpad' allowing your user to define fields interactively. The flow is as follows:
|
|||||||||||||||||||||||||||
Method | POST | |||||||||||||||||||||||||||
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The content-type header should be application/json as the body of this request is a serialized JSONObject.
|
|||||||||||||||||||||||||||
Body |
Upload a JSONObject to the platform defining which document(s) to sign (and other info).
The JSONObject has following parameters: Raw { "list": ["744417-9457921D-3641-6480-D8AE-CD163CF66AEB"], "contacts": [ { "actingas": "FCO", "email": "belinda.gates@ms.com", "mobile": "+32495123456", "name": "Belinda Gates" }, { "actingas": "CEO", "email": "bill.gates@ms.com", "mobile": "+32495123789", "name": "Bill Gates" } ], "returnurl": "https://www.betrust.be", "validityperiod": 300, "showAnonymousSigners": true, "showTeammembers": true, "showSigningOptions": { "eid": true, "itsme": true, "pen": false, "tan": true } }
|
|||||||||||||||||||||||||||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason.
If OK the reason is a JSONObject containing the link to the editor instance and some other info. From within your application the browser can be redirected to this url . When the user leaves the editor the browser is returned to the returnurl as defined in this service.Example (success): { "reason": { "token": "373727-A879E26D-50EC-E67A-CF94-00BB049F7479", "url": "https://oksign.be/edit/100292/u7uv7Qq5QWe..." }, "status": "OK" }Notes:
{ |
|||||||||||||||||||||||||||
Error Response | ||||||||||||||||||||||||||||
Notes |
EditorExpress retrieve service
URL |
https://oksign.be/services/rest/v1/editorexpress/retrieve
|
|
---|---|---|
Title | EditorExpress retrieve Retrieve a previously uploaded EditorExpress tokeninfo JSONObject from the platform |
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-token is the token when uploading the EditorExpress tokeninfo using the EditorExpress.create service.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. Example (success): { "reason": { "list": [ "744417-9457921D-3641-6480-D8AE-CD163CF66AEB" ], "contacts": [ { "actingas": "FCO", "email": "belinda.gates@ms.com", "mobile": "+32495123456", "name": "Belinda Gates" }, { "actingas": "CEO", "email": "bill.gates@ms.com", "mobile": "+32495123789", "name": "Bill Gates" } ], "returnurl": "https://www.betrust.be", "validityperiod": 300 }, "status": "OK" }Example (failure): { |
|
Error Response | ||
Notes |
EditorExpress remove service
URL |
https://oksign.be/services/rest/v1/editorexpress/remove
|
|
---|---|---|
Title | EditorExpress remove Remove a previously uploaded EditorExpress tokeninfo JSONObject from the platform |
|
Method | DELETE | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-token is the token when uploading the EditorExpress tokeninfo using the EditorExpress.create service.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason (if FAILED). Example (success): {"status": "OK" }Example (failure): { |
|
Error Response | ||
Notes |
Email attachment upload service
URL |
https://oksign.be/services/rest/v1/emailattachment/upload
|
---|---|
Title | Email attachment upload Upload a file to be added as attachment to an email send from your account. The attachment is added to the email sent to signer(s) to inform a document is ready to be signed. The correct sequence to use this service is:
notifications-->email object an email is send and the uploaded attachments are added to the email.The attachments are also visible in the Email editor for the document concerned. Example: |
Method | POST |
Request Headers |
The x-oksign-authorization header's value is the combination of:
Document.upload service.Attachment(s) are attached to emails sent from your account to inform signer(s) this document (referenced with the x-oksign-docid ) is ready to be signed.
Headers only support US-ASCII characters. Example:
|
Body |
%PDF-1.5 %µµµµ 1 0 obj <</Type/Catalog/Pages 2 0 R/Lang(nl-BE) /StructTreeRoot 59 0 R/MarkInfo<</Marked true>>>> endobj |
Example:
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason is the ID of the uploaded document. This ID is needed with other webservices. Example: { |
Error Response | |
Notes |
|
Email attachment remove service
URL |
https://oksign.be/services/rest/v1/emailattachment/remove
|
|
---|---|---|
Title | Email attachment remove Remove a previously uploaded file to be used as attachment from your account. |
|
Method | DELETE | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-attachid is the id of the previously uploaded file using the EmailAttachment.upload service.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason (if FAILED). Example (success): {"status": "OK" }Example (failure): { |
|
Error Response | ||
Notes |
Contacts upload service
URL |
https://oksign.be/services/rest/v1/contacts/upload
|
||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | Contacts upload Insert or update contacts in the account's contacts list. Important: The uniqueness (primary key) of each contact is defined by its email AND name fields. This allows you to define multiple contacts with the same email address. |
||||||||||||||||||
Method | POST | ||||||||||||||||||
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The x-oksign-clean defines whether or not the current contact list should be emptied before uploading the contacts.
|
||||||||||||||||||
Body |
A JSONArray containing the contact(s) to be added or updated in the account's contact list.
The JSONArray has following parameters: Raw [ { "actingas": "CEO", "email": "bill.gates@microsoft.com", "group": "", "mobile": "+32488177123", "name": "Bill Gates" }, { "actingas": "COO", "email": "melinda.gates@microsoft.com", "group": "", "mobile": "+32488177123", "name": "Melinda Gates" } ] The passed JSONArray contains a list of contacts. Each contact contains following key/value pairs:
|
||||||||||||||||||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason (optional). Example (success): { "status": "OK", "reason" : 83 } If OK the reason contains the number of contacts added. Example (failure): { "reason": [ "'name' not found for contact: {\"email\":\"bill.gates@microsoft.com\",\"namexxx\":\"Bill Gates\"}", ], "status": "FAILED" } If FAILED the reason contains a list of contacts with errors. Note: Contacts for which an error is detected are skipped during the upload process, the other contacts are uploaded. |
||||||||||||||||||
Error Response | |||||||||||||||||||
Notes |
Contacts retrieve service
URL |
https://oksign.be/services/rest/v1/contacts/retrieve
|
|
---|---|---|
Title | SignExpress retrieve Retrieve a list of the account's contacts. |
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The accept header should be application/json as a response in JSON format is returned.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. The reason contains a JSONArray with the list of contacts. Example (success): Raw { "reason": [ { "actingas": "CEO", "email": "bill.gates@microsoft.com", "group": "", "mobile": "+32488177123", "name": "Bill Gates" }, { "actingas": "COO", "email": "melinda.gates@microsoft.com", "group": "", "mobile": "+32488177123", "name": "Melinda Gates" } ] , "status": "OK" }Example (failure): { |
|
Error Response | ||
Notes |
Contacts remove service
URL |
https://oksign.be/services/rest/v1/contacts/remove
|
|||||||||
---|---|---|---|---|---|---|---|---|---|---|
Title | Contacts remove Remove contacts in the account's contacts list. Important: The uniqueness (primary key) of each contact is defined by its email AND name fields. This allows you to define multiple contacts with the same email address. |
|||||||||
Method | POST | |||||||||
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The content-type header should be application/json as the body is in JSON format:
|
|||||||||
Body |
A JSONArray containing the contact(s) to be removed in the account's contact list.
The JSONArray has following parameters: Raw [ { "email": "bill.gates@microsoft.com", "name": "Bill Gates" }, { "email": "melinda.gates@microsoft.com", "name": "Melinda Gates" } ] The passed JSONArray contains a list of contacts to remove. Each contact contains following key/value pairs:
|
|||||||||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason (optional). Example (success): { "status": "OK", "reason" : 15 } If OK the reason contains the number of contacts removed. Example (failure): { "reason": [ "'name' not found for contact: {\"email\":\"bill.gates@microsoft.com\",\"namexxx\":\"Bill Gates\"}", ], "status": "FAILED" } If FAILED the reason contains a list of errors detected. Note: Contacts for which an errors is detected are not processed. |
|||||||||
Error Response | ||||||||||
Notes |
Email templates retrieve service
URL |
https://oksign.be/services/rest/v1/email-templates/retrieve
|
|
---|---|---|
Title | Email templates retrieve Retrieve a list of all email templates defined in the account. |
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The accept header should be application/json as a response in JSON format is returned.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. If the status is OK the reason contains the list of email templates (as a JSONArray). Example (success): Raw { "reason": [ { "body": "<p>Geachte,...</p>", "id": "000000-F6A3AE5C-84DC-459B-57C2-CB61B5B256AA", "name": "Contract-nl ", "reminder_days": "10", "repeat": "3", "subject": "Uw bestelbon te ondertekenen " }, { "body": "<p>Dear,...</p>", "id": "001234-F6A31234-84DC-1234-57C2-CB61B5B256AA", "name": "Contract-en", "reminder_days": "10", "repeat": "3", "subject": "Your order form ready to sign" } ] } The id is immutable. Once assigned to an email template it will never change.
Example (failure): { "reason": "Invalid x-oksign-authorization pattern. Found: '999999;999999;test'. Expected: A valid pattern", "status": "FAILED" } |
|
Error Response | ||
Notes |
Users retrieve service
URL |
https://oksign.be/services/rest/v1/users/retrieve
|
|
---|---|---|
Title | Users retrieve Retrieve a list of all users. |
|
Method | GET | |
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The accept header should be application/json as a response in JSON format is returned.
|
|
Body | ||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason. If the status is OK the reason contains the list of users (as a JSONArray). Example (success): Raw { "reason": [ { "actingas": "CEO", "email": "bill.gates@microsoft.com", "language": "en", "mobile": "+32495123456", "name": "Bill Gates", "role": "owner", "signerid": "bt_00000000-0000-0000-0000-000000000000", "status": "active", "ts": "2023-11-21T11:18:14+01:00" }, { "actingas": "CEO", "email": "belinda.gates@microsoft.com", "language": "en", "mobile": "+32495123789", "name": "Belinda Gates", "role": "user", "signerid": "bt_00000000-0000-0000-0000-001097449068", "status": "active", "ts": "2023-11-21T11:18:14+01:00" } ], "status": "OK" } The signerid is immutable. Once assigned to a user it will never change.
Example (failure): { "reason": "Invalid x-oksign-authorization pattern. Found: '999999;999999;test'. Expected: A valid pattern", "status": "FAILED" } |
|
Error Response | ||
Notes |
OrgtokenInfo update service
URL |
https://oksign.be/services/rest/v1/orgtokeninfo/update
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | Orgtokeninfo update Update the callbackurl, returnurl and webhookurl values linked to an Organisational token (API key - x-oksign-authorization). |
||||||||||||
Method | POST | ||||||||||||
Request Headers |
The x-oksign-authorization header's value is the combination of:
x-oksign-authorization = 100693;463204-5BC1F362-85AD-34A3-9DB5-DC891D20979E;marketing The content-type header should be application/json as the body is in JSON format:
|
||||||||||||
Body |
A JSONArray containing the callbackurl, returnurl and webhookurl key/value pairs to be updated. These values are linked to the passed Organisational token (API key - x-oksign-authorization).
The JSONArray has following parameters: Raw { "callbackurl": "https://your.website.be/oksign/callback/...", "returnurl": "", "webhookurl": "https://your.website.be/oksign/webhook/..." } The passed JSONArray contains following key/value pairs:
|
||||||||||||
Success Response |
The response is a JSONObject indicating the status (OK, FAILED) and the reason (optional). Example (success): { "status": "OK" } Example (failure): { "reason": [ "Missing key 'callbackurl'" ], "status": "FAILED" } If FAILED the reason contains a list of errors. |
||||||||||||
Error Response | |||||||||||||
Notes |
API libraries
API libraries are provided for different languages. Checkout and use from Github using the links below. All you need is an API access key to get started with them. You can create your access key from API Console, after you sign up for an account with .Note: Maximum allowed timeout is 120 seconds.
Note: Some libraries might be outdated and not have been updated with the latest API changes.