========================= Partner API Documentation ========================= .. contents:: Table of Contents :local: Basics and Principles ===================== The integration mode was created in order to give end users access to SMASHDOCs directly from their partner's system without the need for an additional login or user syncing process. You can download Postman collection with request examples. :download:`Download Postman project ` Overview over SMASHDOCs ----------------------- SMASHDOCs is a modern web application that enables teams to write and collaboratively review documents easier and faster than ever. New documents are always created in **draft mode**. A SMASHDOC is composed of paragraphs, images and tables just like in any other document editor. As soon as users want to **collaborate** or **share** their document, they must start the **review mode** which enables them to invite other users to the document. Once a SMASHDOC is in **review mode**, users with appropriate rights are able to suggest changes, add comments, or as questions. Unlike other solutions, all changes within a SMASHDOC are tracked, which can then be reviewed and accepted or declined. In order to manage a user's permissions in the document, there are four different roles that a user can be in: - **Reader** (read the document and conversations, create bookmarks) - **Commentator** (all **Reader** permissions + create new comments, questions, and comment on other conversations) - **Editor** (all **Commentator** permissions + edit and move sections) - **Approver** (all **Editor** permissions + decide on content). .. _Authentication: Authentication -------------- Data is passed between the partner's backend and the SMASHDOCs backend over an authorized connection. The SMASHDOCs backend is passive; acting only when called upon by the partner system to create, open and list documents. Authentication is based on the use of a JSON Web Token (JWT). The JWT is passed as a Bearer Token in the ``authorization`` field of the headers in each API call. The following fields are required in the data-part of the JWT: +---------+---------+---------------------------------------------------------------------------------+ | FIELD | TYPE | DESCRIPTION | +=========+=========+=================================================================================+ | iat | integer | Issued At Claim: UTC timestamp at the time of issue of JWT auth request. | +---------+---------+---------------------------------------------------------------------------------+ | iss | string | Issuer Claim: user id in the partner system. | +---------+---------+---------------------------------------------------------------------------------+ | jti | string | JWT ID Claim: unique identifier for the JWT. | +---------+---------+---------------------------------------------------------------------------------+ Signing of the JWT can be done with the HS256, HS384 or HS512 method, where the ``client-secret`` is used as secret key. Together with the ``client-id``, that is passed in the ``x-client-id`` header field, the authentication is complete. **Code example: JWT in Python** .. code-block:: python import jwt import uuid import datetime # provided client-secret by SMASHDOCs client_secret = '32284ebdc5b8ea867058155b6ebcd7e0f9b0ed0ce2953b0451d9e6dbc9a68e70' # example # user_id which issues the provisioning request user_id = '5813099d5cb91899eea6da05' # example jwt_payload = { 'iat': int(datetime.datetime.now().timestamp()), 'iss': user_id, 'jti': str(uuid.uuid4()) } token = jwt.encode(payload=jwt_payload, key=client_secret, algorithm="HS256") bearer_token = "Bearer {token}".format(token=token.decode('ascii')) print(bearer_token) Further information about the JWT can be found at https://jwt.io/ . .. important:: If you have received you SMASHDOCS-API credentials before November 2016 and you want to use JWT, please write us an email to support@smashdocs.net. Users, Rights and Roles ----------------------- The partner is required to manage all users, rights and roles within their own system. SMASHDOCs, additionally, makes its document rights and role management available in order for the partner to manage in-document permissions. Because SMASHDOCs is not managing nor syncing permissions between it and the partner system, all user and permission information needs to be passed to the SMASHDOCs API when opening or creating a document. This ensures that user access rights and permissions remain up to date within SMASHDOCs. To reiterate, when opening a document, no external API calls will be made from SMASHDOCs in order to verify document access rights. The responsibility lies solely with the partner to ensure that only allowed users can open a SMASHDOC. API Functions ============= Headers ------- With JWT-based authentication: +-----------------+---------------------------------+----------------------------------------------------+ | KEY | VALUE | USAGE | +=================+=================================+====================================================+ | x-client-id | {**client id**} | all API-calls | +-----------------+---------------------------------+----------------------------------------------------+ | authorization | Bearer {**JWT**} | all API-calls | +-----------------+---------------------------------+----------------------------------------------------+ | content-type | application/json | POST API-calls except /partner/imports/word/upload | +-----------------+---------------------------------+----------------------------------------------------+ | content-type | multipart/form-data | /partner/imports/word/upload | +-----------------+---------------------------------+----------------------------------------------------+ With user / password authentication: +-----------------+---------------------------------+----------------------------------------------------+ | KEY | VALUE | USAGE | +=================+=================================+====================================================+ | content-type | application/json | POST API-calls except /partner/imports/word/upload | +-----------------+---------------------------------+----------------------------------------------------+ | content-type | multipart/form-data | /partner/imports/word/upload | +-----------------+---------------------------------+----------------------------------------------------+ | authorization | {**admin access token**} | all API-calls except /partner/authenticate | +-----------------+---------------------------------+----------------------------------------------------+ Errorcodes ---------- +---------------------------------+---------------------------------+----------------------------------------------------+ | CODE | MEANING | +=================================+=================================+====================================================+ | 401 Authentication required | Authorization is missing or invalid | +---------------------------------+---------------------------------+----------------------------------------------------+ | 402 Payment required | | If the pricing model "freemium" is enabled the API will return a HTTP 402 | | | | to notify the partner, that the limit was hit. | | | | A partner should react to this error with an upgrade pricing model page | +---------------------------------+---------------------------------+----------------------------------------------------+ | 403 Forbidden | Client-ID is missing or insufficient rights | +---------------------------------+---------------------------------+----------------------------------------------------+ | 403 Not Found | Requested resource not found | +---------------------------------+---------------------------------+----------------------------------------------------+ | 412 Precondition failed | Missing or wrong request parameters | +---------------------------------+---------------------------------+----------------------------------------------------+ | 403 Request Entity Too Large | Size of uploaded file is exceeding limit | +---------------------------------+---------------------------------+----------------------------------------------------+ Obtaining information about the user ------------------------------------ *Example:* `GET /partner/users/`_ The partner system can obtain information about the user through this endpoint. To receive this information it`s necessary to paste the user's ID in the link. Obtaining information about available cleanup routines ------------------------------------------------------ *Example:* `GET /partner/routines`_ The partner system can obtain information about available cleanup routines Creating empty Documents ------------------------ *Example:* `POST /partner/documents/create`_ When a user creates a document, the partner system authenticates itself against the SMASHDOCs API and calls the create document API endpoint (POST /partner/documents/create/). The following information must be passed along in the API call: - user - nested object containing information about the user - userId - id of the user in the partner system - email - the user's email address (max. 150 chars) - firstname (max. 150 chars) - lastname (max. 150 chars) - company - the user's company name (max. 150 chars) - language - the user's language can be ``de_DE``, ``en_EN``, ``ru_RU`` or ``fr_CA`` - title - the document title (max. 200 chars) - description (max. 400 chars) - userRole (SMASHDOCs role) - groupId (partner system group to which the document will belong to) Optional fields: - sectionHistory - allowed to see section history (SMASHDOCs right). - documentExportDuplicate - allowed to export a document. - supplemental - information which is stored by SMASHDOCs but never evaluated. This field can be used to save and retrieve partner specific information (max. 400 chars) - status - gives possiblity to create the document in ``draft`` (default) or ``review`` mode. - admin - gives SMASHDOCs admin right for this document to the creator - subtitle (max. 300 chars) - filename (max. 200 chars) - footer - decoration element appeared in the bottom, e.g. in exported word document - sampleId - sdox template id The SMASHDOCs backend stores this data and generates a ``one time password token``. If the user (referenced by user id) is already in the database, the user's information will be overwritten by the new values. If it is the case that a user's name or email have changed, all of these values can be updated. Their user id however cannot be changed. .. hint:: The properties firstname, lastname, company and email address as well as the role can be changed with the open document api call. However the user id is the primary key and cannot be changed. After the document has been created, the ``document access link`` will be returned. The document will be shown in the user's browser, when he is redirected to the ``document access link``. If a document is created in draft mode, it is only visible for the creator. As soon as the document is set to **review mode** by the user or via partner API, it will be visible for all members of the **group** and can be opened by users who belong to the **group**. Opening Documents ----------------- *Example:* `POST /partner/documents/{id}`_ Opening documents follows nearly the same logic as the document creation API call. Again, in order to ensure that user information stays up to date, all relevant user information needs to be sent with the request. The provided user information will then be updated and the current ``document access link`` returned. The partner system should then redirect the user to the ``document access link`` via an HTTP 302 status code. Optional fields: - admin - gives SMASHDOCs admin right for this document to the creator .. hint:: The ``document access link`` expires after 1 minute and can just be used once to open the SMASHDOC. If you need to open a SMASHDOC again, it needs to be opened again via the partner API. Importing Word Documents ------------------------ *Example:* `POST /partner/imports/word/upload`_ Creating a SMASHDOCs document out of a MS Word file (.docx only) works almost similar to the create document api call. Besides providing the metadata of the document and the user information the additional MS Word file is required. The response contains the ``document access link``. In order to send the metadata, user information and MS Word file in one single request, the request needs to be sent as multipart/form-data (content-type) which contains the two fields ``file`` and ``data``: - ``file`` - docx file - ``data`` - json string which contains all fields that are also used in ``/partner/documents/create`` To use the Magic Word import you need to pass in the ``data`` field ``isMagicImport=true``, and ``styleSetKey=contract_1-1-1|contract_1-1-a|contract_1-a-i|contract_1-a-a|numbered-headers-2|numbered-headers`` (see `Obtaining information about magic import styleSetKey`_). In order to apply cleanup routines to the document at import it is necessary to pass the list of routines keys inside ``routines`` field. .. important:: Right now only .docx word files can be processed by the API Pass style mapping ~~~~~~~~~~~~~~~~~~ If a word-file using paragraph styles should be imported, it is possible to pass a style mapping. This style mapping is an object containing the information, which SMASHDOCs section type should be created for a certain Word paragraph style. In the case of Magic Word import - the passed mapping **will be ignored**, instead the mapping which is available for the selected ``styleSetKey`` will be used. The key for a mapping entry is the Word paragraph style. For self-created styles, the exact name of the style has to be used as key. Existing standard word styles are always translated automatically when opening the file in a Word version with a different language. Therefore the Word native paragraph styles come out always in english matching the following list: - heading 1 - heading 2 - heading 3 - heading 4 - heading 5 - heading 6 - caption The value for a mapping entry is an object that describes the target format in SMASHDOCs via the following fields: +-----------------+-------------------------+---------------------------------------------------------------------------------------+ | key | possible value | description | +=================+=========================+=======================================================================================+ | textType | paragraph | normal text, auto-recognizes also lists | + +-------------------------+---------------------------------------------------------------------------------------+ | | paragraph-ol | numbered paragraph | + +-------------------------+---------------------------------------------------------------------------------------+ | | heading | heading | + +-------------------------+---------------------------------------------------------------------------------------+ | | heading-ol | numbered heading | + +-------------------------+---------------------------------------------------------------------------------------+ | | caption | image caption | + +-------------------------+---------------------------------------------------------------------------------------+ | | list-ol | numbered list | + +-------------------------+---------------------------------------------------------------------------------------+ | | list-ul | bullet list | +-----------------+-------------------------+---------------------------------------------------------------------------------------+ | level | integer between 0 and 5 | outline, indent or counting level for paragraph, paragraph-ol, heading and heading-ol | +-----------------+-------------------------+---------------------------------------------------------------------------------------+ **Code example: multipart upload in Python** .. code-block:: python import requests import json # This example uses jwt auth headers. The authentication method however is also supported headers_jwt_auth = { 'x-client-id': '1a01ad73c4c6d0d76605d01a30e6e31fe7f8ba6b4b28dc73342f9acfb43efc61', 'authorization': 'Bearer 1b19c22435a0b5517ac3f0389511d9eb8ab7881c0ce13d69d42fabc28a5a56bb' } data = { "user": { "email": "steven.miller@yourcompany.com", "firstname": "Steven", "lastname": "Miller", "userId": "764ea18872a34337", "language": "de_DE", "company": "yourcompany" }, "title": "my first SMASHDOCs document", "description": "", "groupId": "85c2602653b7c", "userRole": "approver", "isMagicImport": False, "styleSetKey": "contract_1-a-a", "styleMapping": { "List Paragraph": { "textType": "paragraph", "level": 0 }, "heading 1": { "textType": "heading-ol", "level": 0 }, "heading 2": { "textType": "heading-ol", "level": 1 }, "My Individual style": { "textType": "heading", "level": 0 } } files = { 'data': (None, json.dumps(data), 'application/json'), 'file': ('sample.docx', open('sample.docx', 'rb'), 'application/octet-stream'), } base_url = 'https://partner.smashdocs.net/api' result = requests.post('{base_url}/partner/imports/word/upload'.format(base_url), files=files, headers=headers_jwt_auth, verify=False) print(result) Obtaining information about magic import styleSetKey ---------------------------------------------------- *Example:* `GET /partner/imports/word/mapping`_ The partner system can obtain translated names for magic import mapping keys that can be used for `styleSetKey` (see `Importing Word Documents`_) Asynchronous Word import ------------------------ *Example:* `POST /partner/imports/word/background-upload`_ Import of word documents also can be done asynchronously. All functionality is the same with `POST /partner/imports/word/upload`, except response contains only ``job id``. Besides providing the metadata of the document and the user information the additional MS Word file is required. Moreover import can be done with routines and magic import (see Example). To do this include fields ``"isMagicImport": <>``, ``"routines": [<< LIST OF ROUTINE NAMES >>]`` This import will be done separately for each import request and can be later accessed with `GET /partner/documents/background-upload/`_ Response of successful job will contain "documentAccessLink" which can be used to access imported Getting asynchronous Word import results ------------------------ *Example:* `GET /partner/documents/background-upload/`_ This request used to get import results from `POST /partner/imports/word/background-upload`_ response using ``"JobId"``. Response will contain fields: - ``state`` - state of import process can be either ``"SUCCESS"`` or ``"FAILURE"``. - ``userIdSd`` - id of a user that have access to this document. - ``documentId`` - id of an imported document. - ``documentAccessLink`` - link to access imported document If there is no no ``job_id`` with such an id, response will be ``ERROR 404 "There is no Job with such JobId."``. In case of state ``"FAILURE"`` only state will be returned without other fields. (Example: ``{"state": "FAILURE"}``) In case of ``"SUCCESS"`` - response will contain all fields as in `GET /partner/documents/background-upload/`_ Importing XML Documents ----------------------- *Example:* `POST /partner/imports/sdxml/upload`_ SMASHDOCs can be created by uploading a SMASHDOCs XML file (SDXML) and is working similar to importing word documents. (see `Importing Word Documents`_). The SDXML import endpoint takes a zip file containing the SDXML file (sd.xml) as well as the images referenced in the XML (please see the example how to build the zip file). The DTD of the SDXML and more detailed documentation can be found here ``__. The response contains the ``document access link``. In order to send the metadata, user information and the SDXML zip file in one single request, the request needs to be sent as multipart/form-data (content-type) which contains the two fields ``file`` and ``data``: - ``file`` - sd xml zip file - ``data`` - json string which contains all fields that are also used in ``/partner/documents/create`` An example of uploading multipart/form-data can be found also in section `Importing Word Documents`_. Exporting Documents ------------------- Exporting Documents to SDXML ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *Example:* `POST /partner/documents/{id}/export/sdxml`_ A document can be exported to a SDXML-zip-file. This is a zip that contains one xml-file ``sd.xml`` and a folder ``images``. The same structure is accepted in the import xml api call. In the request payload, the field ``userId`` must be set in the request payload. The language for Image captions like "Figure 3" will be taken from the user's language. Getting available word templates ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *Example:* `GET /partner/templates/word`_ An export to word requires a word template. The ``GET /partner/templates/word`` API-endpoint returns a list of available word templates with ``id``, ``name`` and ``description``. Getting available sdox templates ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *Example:* `GET /partner/templates/sdox`_ Template for new document create. The ``GET /partner/templates/sdox`` API-endpoint returns a list of available sdox templates with ``id``, ``name``, ``filename``, ``description`` and ``pd_settings``. Exporting Documents to word ~~~~~~~~~~~~~~~~~~~~~~~~~~~ *Example:* `POST /partner/documents/{id}/export/word`_ Exporting a document to word can be done via the ``/partner/documents/{id}/export/word`` API-endpoint. To execute the export, three fields are required in the request payload. The ``userId`` defines, for which user the export is done. A template can be selected via ``templateId``. Additional options are offered to be set with the ``settings``-object: * ``language`` can be ``de_DE``, ``en_EN``, ``ru_RU`` or ``fr_CA`` * ``imageCaption`` sets, whether image captions should be shown * ``tableCaption`` sets, whether table captions should be shown * ``textToc`` sets, whether a table of contents should be generated * ``imageToc`` sets, whether a list of images should be generated (only with ``imageCaption=true``) * ``tableToc`` sets, whether a table of contents should be generated (only with ``tableCaption=true``) * ``compressedImages`` sets, whether images should be of low-resolution Exporting Documents to html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *Example:* `POST /partner/documents/{id}/export/html`_ A document can be exported to a html To execute the export, three fields are required in the request payload: * ``userId`` field must be set in the request payload. * ``type`` field must be set for selecting html export type, can be: `html` or `html_all_in_one` * ``download`` boolean field must be set for selecting html export mode. if true => `.zip` file with html page will be returned, otherwise a url to the html file that can be opened will be returned Exporting Documents to Parsx XML ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *Example:* `POST /partner/documents/{id}/export/parsx`_ A document can be exported to a Parsx-zip-file. This is a zip that contains one xml-file ``parsx.xml`` and a folder ``images``. The same structure is accepted in the import xml api call. In the request payload, the field ``userId`` must be set in the request payload. The language for Image captions like "Figure 3" will be taken from the user's language. ~ Listing Documents ----------------- *Example:* `GET /partner/documents/list`_ To fetch all documents belonging to a specific group, 3 different variations of the API call exist. They are as follows: - **sending the user id and group id (partner system):** for documents belonging to the group, receive all **draft documents** (documents have not been shared yet) that are created by the given user and all **review documents** (shared documents). - **sending just the group id:** receive just the **review documents** for the given group - **sending just the user id:** receive all **draft documents** from all groups to which the user belongs to (but no shared docs) that have been created by the user. - **sending withDeletionProcess param:** if the value is ``true`` only documents with active deletion process will be received, if the value is ``false`` documents with active deletion process are filtered The user id can be sent either as ``userId`` (that was given when calling create or open document for user) or as ``userIdSD`` (id of user in SMASHDOCS system) Note that the partner system is responsible for the management and creation of groups and their corresponding group id. The SMASHDOCs API only stores the group id upon document creation in order to provide proper document listings. Get Unseen Changes Count ------------------------ *Example:* `GET /partner/documents/unseen/count`_ The count of documents with unseen changes in section content or conversations for a user can be fetched. Returned are counts of: - documents with changes in section content - documents with changes in conversation - documents with any changes These counts are returned for the total amount of documents and itemised for each group. Listing Documents with unseen changes ------------------------------------- *Example:* `GET /partner/documents/unseen/list`_ For documents with unseen changes in section content or conversations for a user, a list can be fetched. The fields in the list are the same as in the Document Listing function shown above. Getting Information for a single Document ----------------------------------------- *Example:* `GET /partner/documents/{id}`_ The properties of a single document can be fetched in order to check for example whether it is archived or to check the creatorId. The fields are the same as in result items of the Document Listing function shown above. In order to receive the fields ``hasOpenedDocument``, ``hasUnreadSctionChanges`` and ``hasUnreadConversationChanges`` filled for a specific user, his id can be sent as a query parameter. Duplicating documents --------------------- *Example:* `POST /partner/documents/{id}/duplicate`_ Documents can be duplicated for a user who will be stored as creator of the document's copy. A document can only be duplicated, if the document is: - in ``review`` mode or, if it is in draft mode, the user is creator of the source document - not archived (see section below) Archiving documents ------------------- *Example:* `POST /partner/documents/{id}/archive`_ *Example:* `POST /partner/documents/{id}/unarchive`_ The SMASHDOCs partner API offers the possiblity to mark a document as archived. The choice of documents shown in the document list will not be influenced by this flag. Deleting documents ------------------------ *Example:* `DELETE /partner/documents/{id}`_ Deletes a SMASHDOCs document by a provided ID. Deleting documents with a deletion process ------------------------ *Example:* `POST /partner/documents/{id}/deletion-process`_ Deletes a SMASHDOCs ``review`` document with a deletion process. The following information must be passed along in the API call: - userId - partner user id Optional attributes: - immediate - if set ``true`` document will be deleted immediately, otherwise in 15 days - message - comment for all document users Cancel deletion process for the document ------------------------ *Example:* `DELETE /partner/documents/{id}/deletion-process`_ Cancels a deletion process for a SMASHDOCs ``review`` document. Optional attributes: - message - comment for all document users Updating document metadata -------------------------- *Example:* `POST /partner/documents/{id}/metadata`_ After creating or importing a document the metadata can also be changed by using this API endpoint. Metadata fileds are e.g. document title, description, filename, .... Tags can also be set as metadata. Please note that tags are always overwritten. Setting a document to ``review`` mode --------------------------------- *Example:* `POST /partner/documents/{id}/review`_ Via this API endpoint, a document can be set to ``review`` mode. This enables other users, besides the creator, to share the document with other users. Examples ======== POST /partner/authenticate -------------------------- Use JWT :ref:`Authentication` instead. :: REQUEST: URL: https://partner.smashdocs.net/api/partner/authenticate METHOD: POST Headers: content-type: application/json Payload: {"email": "examplepartnersu@smashdocs.net", "password": "abcdefghij"} :: RESPONSE: { "userId": "684b6774-4cdd-4434-b4ee-f8c02cad4b05", "adminAccessToken": "85ab1d31bfb4ae3f2d90fb8fafbc0421490f58bee6a" } GET /partner/users/ ------------------------------------ *Description:* `Obtaining information about the user`_ Return information about the user with given user_id_partner. :: REQUEST: URL: https://partner.smashdocs.net/api/partner/users/ METHOD: GET Headers: content-type: application/json :: RESPONSE: { "_id": "764ea18872a34337", "company": "partner", "email": "user@email.com", "is_internal": false, "firstname": "firstname", "lastname": "lastname", "picture_small": "", "picture": "", "picture_mobile": "", "settings": { "lang": "en_EN", "live_redline": false, "tooltips": false, "selection_autocomplete": false, "individual_decide": false, "debug_mode_transformations": false, "auto_collapse_pd_group": false }, "license_info": {}, "last_seen_sd_version": null, "avatar_color": [ 98, 168, 234 ], "system_role": "normal_user" } GET /partner/routines --------------------- *Description:* `Obtaining information about available cleanup routines`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/routines METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiMjY1Y2RlYjItMjg2OC00NGJlLTg1YjctYTVlZDE1YTJmNjQxIiwiaWF0IjoxNDc2MjczODQyfQ.JB3NK40RoW8HdsHQhELSjdDDQ5r94i8ZfEhyoKFfieQ :: RESPONSE: [ { "key": "REMOVE_PORTRAIT", "type": "routine", "name": { "de_DE": "Porträt entfernen", "en_EN": "Remove portrait", "es_ES": "Eliminar retrato", "fr_BE": "Supprimer le portrait", "fr_CA": "Supprimer le portrait", "fr_FR": "Supprimer le portrait", "nl_BE": "Portret verwijderen", "ru_RU": "Убрать портрет" }, "actions": [ { "filters": [ { "type": "orientation", "orientation": "portrait" } ], "processor": { "type": "removeOrientation" } } ] } ] :: POST /partner/documents/create ------------------------------ *Description:* `Creating empty Documents`_ .. important:: Since Version 1.2.3.1 the properties ``url`` and ``userAccessToken`` are no longer returned in the response :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/create METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiOGI1ZWZiNGYtNTg1Ni00NTcxLTk4NGYtMmM1NzNiZmIyMmI1IiwiaWF0IjoxNDc2MjcyOTI0fQ.OHQdEyOQdO_Y-9n-X9RoL_1_TuBsBrvgh3ijRPBSExw Payload: {"user": { "email": "steven.miller@yourcompany.com", "firstname": "Steven", "lastname": "Miller", "userId": "764ea18872a34337", "language": "de_DE", "company": "yourcompany" }, "title": "my first SMASHDOCs document", "subtitle": "", "filename": "very important document", "description": "", "footer": "", "groupId": "85c2602653b7c", "userRole": "approver", "sectionHistory": true, "documentExportDuplicate": true, "supplemental": "partner specific information", "status": "draft" } :: RESPONSE: { "documentAccessLink": "https://partner.smashdocs.net/#/document/8e6875cb-5cd2-4178-8ad4-d77b92173bf9 &otpt=c938609e2bfc3e8049346a7fef96506aab6babc2e918dd9787a1ae7ce70b3fb1", "userIdSD": "b01b8477-01aa-49fe-8cfb-3d3cb00fac1b", "documentId": "8e6875cb-5cd2-4178-8ad4-d77b92173bf9" } POST /partner/documents/{id} ---------------------------- *Description:* `Opening Documents`_ .. important:: Since Version 1.2.3.1 the properties ``url`` and ``userAccessToken`` are no longer returned in the response :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/8e6875cb-5cd2-4178-8ad4-d77b92173bf9 METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiMjY1Y2RlYjItMjg2OC00NGJlLTg1YjctYTVlZDE1YTJmNjQxIiwiaWF0IjoxNDc2MjczODQyfQ.JB3NK40RoW8HdsHQhELSjdDDQ5r94i8ZfEhyoKFfieQ Payload: {"user": { "email": "steven.miller@yourcompany.com", "firstname": "Steven", "lastname": "Miller", "userId": "764ea18872a34337", "language": "de_DE", "company": "yourcompany" }, "userRole": "approver", "sectionHistory": true, "documentExportDuplicate": true } :: RESPONSE: { "documentAccessLink": "https://partner.smashdocs.net/#/document/8e6875cb-5cd2-4178-8ad4-d77b92173bf9 &otpt=c938609e2bfc3e8049346a7fef96506aab6babc2e918dd9787a1ae7ce70b3fb1", "userIdSD": "b01b8477-01aa-49fe-8cfb-3d3cb00fac1b", "documentId": "8e6875cb-5cd2-4178-8ad4-d77b92173bf9" } POST /partner/documents/{id}/metadata ------------------------------------- *Description:* `Updating document metadata`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/8e6875cb-5cd2-4178-8ad4-d77b92173bf9/metadata METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiZDlhYTk4YmYtZjYzZS00MmJmLWFhMDgtNTI2YmNhYTAxNjNlIiwiaWF0IjoxNDc2MjczODQ2fQ.VkxUzVOiPI2eV9Ir-O8ZykZpbHOWVMr2GT4ZiyrWG2w Payload: { "title": "new document title", "description": "new document description", "subtitle": "document subtitle", "filename": "document filename", "footer": "document footer", "tags": ["tag1", "tag2"], "supplemental": "partner specific information" } :: RESPONSE: { } POST /partner/documents/{id}/export/sdxml ----------------------------------------- *Description:* `Exporting Documents to SDXML`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/8e6875cb-5cd2-4178-8ad4-d77b92173bf9/export/sdxml METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiMjY1Y2RlYjItMjg2OC00NGJlLTg1YjctYTVlZDE1YTJmNjQxIiwiaWF0IjoxNDc2MjczODQyfQ.JB3NK40RoW8HdsHQhELSjdDDQ5r94i8ZfEhyoKFfieQ Payload: { "userId": "764ea18872a34337" } :: RESPONSE: << SDXML - FILE >> POST /partner/documents/{id}/export/parsx ----------------------------------------- *Description:* `Exporting Documents to Parsx XML`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/8e6875cb-5cd2-4178-8ad4-d77b92173bf9/export/parsx METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiMjY1Y2RlYjItMjg2OC00NGJlLTg1YjctYTVlZDE1YTJmNjQxIiwiaWF0IjoxNDc2MjczODQyfQ.JB3NK40RoW8HdsHQhELSjdDDQ5r94i8ZfEhyoKFfieQ Payload: { "userId": "764ea18872a34337" } :: RESPONSE: << parsx-zip - FILE >> POST /partner/documents/{id}/export/html ----------------------------------------- *Description:* `Exporting Documents to HTML`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/8e6875cb-5cd2-4178-8ad4-d77b92173bf9/export/html METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiMjY1Y2RlYjItMjg2OC00NGJlLTg1YjctYTVlZDE1YTJmNjQxIiwiaWF0IjoxNDc2MjczODQyfQ.JB3NK40RoW8HdsHQhELSjdDDQ5r94i8ZfEhyoKFfieQ Payload: { "userId": "764ea18872a34337", "download": true, "type": "html" } :: RESPONSE: << html-zip - FILE >> :: OR for the case when zip is not needed :: Payload: { "userId": "764ea18872a34337", "download": false, "type": "html_all_in_one" } :: RESPONSE: { "url": "assets/cc4b818d-8a5f-4640-9898-7b8e4f38d18f/public/url_downloads/5e41fdb5-ae52-47de-8dfb-931da98897b2/index.html" } GET /partner/templates/word --------------------------- *Description:* `Getting available word templates`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/templates/word METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiMjY1Y2RlYjItMjg2OC00NGJlLTg1YjctYTVlZDE1YTJmNjQxIiwiaWF0IjoxNDc2MjczODQyfQ.JB3NK40RoW8HdsHQhELSjdDDQ5r94i8ZfEhyoKFfieQ :: RESPONSE: [ { "id": "f6298fb4-299a-4959-9e0d-969c7312037f" "name": "Standard", "description": "Standard word template", }, { "id": "7c919d7f-7447-403c-8ba3-e62a77949b22" "name": "Contract", "description": "word template for contracts", } ] GET /partner/templates/sdox --------------------------- *Description:* `Getting available sdox templates`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/templates/sdox METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiMjY1Y2RlYjItMjg2OC00NGJlLTg1YjctYTVlZDE1YTJmNjQxIiwiaWF0IjoxNDc2MjczODQyfQ.JB3NK40RoW8HdsHQhELSjdDDQ5r94i8ZfEhyoKFfieQ :: RESPONSE: [ { "id": "d6119f93-0fba-4b99-a608-944de444b48a", "name": "Template", "filename": "file to start test", "description": "Description!", "pdSettings": { "pdSubset": [], "defaultPdKey": "quick_heading_1" }, "inlineStyleSubset": [], "exportSubset": [] }, { "id": "6e88ae3b-717e-4ec9-9f53-17ac47b056bf", "name": "Second", "filename": "all special spaces", "description": "Description!", "pdSettings": { "pdSubset": [ "text_1", "text_2", ... ], "defaultPdKey": "text_1" }, "inlineStyleSubset": [ "smaller", "drafting_note", "file" ], "exportSubset": [ ... { "type": html | html_all_in_one | word, pdf_cloudconvert | indesign_srz | xml_srz | indesign_pagina | files | pdf_srz | pdf_pagina | pdf_all_in_one | sdox | parsx_xml | epub | wordpress | annotationReport | images, "templates": [ "7c919d7f-7447-403c-8ba3-e62a77949b22", "f6298fb4-299a-4959-9e0d-969c7312037f", "b01b8477-01aa-49fe-8cfb-3d3cb00fac1b" ] }, ... ] } ] POST /partner/documents/{id}/export/word ---------------------------------------- *Description:* `Exporting Documents to word`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/8e6875cb-5cd2-4178-8ad4-d77b92173bf9/export/word METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiMjY1Y2RlYjItMjg2OC00NGJlLTg1YjctYTVlZDE1YTJmNjQxIiwiaWF0IjoxNDc2MjczODQyfQ.JB3NK40RoW8HdsHQhELSjdDDQ5r94i8ZfEhyoKFfieQ Payload: { "userId": "764ea18872a34337", "templateId": "f6298fb4-299a-4959-9e0d-969c7312037f", "settings": { "textToc": true, "imageToc": true, "tableToc": true, "imageCaption": true, "tableCaption": true, "language": "en_EN", "compressedImages": true } } :: RESPONSE: << word - FILE >> GET /partner/documents/list --------------------------- *Description:* `Listing Documents`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/list?groupId=85c2602653b7c&withDeletionProcess=false METHOD: GET Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiZDlhYTk4YmYtZjYzZS00MmJmLWFhMDgtNTI2YmNhYTAxNjNlIiwiaWF0IjoxNDc2MjczODQ2fQ.VkxUzVOiPI2eV9Ir-O8ZykZpbHOWVMr2GT4ZiyrWG2w :: RESPONSE: [ { "id": "68eb95cb-2c86-4472-b4a7-5fb5fc93a9f9", "title": "test2", "subtitle": "document subtitle", "description": "document description", "tags": ["tag1", "tag2"], "supplemental": "partner specific information" "creatorIdSD": "b89d898d-c51a-4912-909f-e652b511d023", "creatorId": "764ea18872a34337", "status": "review", "createdDate": 1481014475, "modificationDate": 1581003123, "hasUnreadSectionChanges": false, "hasUnreadConversationChanges": false, "hasOpenedDocument": false, "archived": false, "groupId": "group9" } ] GET /partner/documents/unseen/count ----------------------------------- *Description:* `Get Unseen Changes Count`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/unseen/count?userId=764ea18872a34337 METHOD: GET Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiNDQyNjNlMWYtYzY2NS00NDYyLWE5MjctYTBjYWM5MDFjOTAyIiwiaWF0IjoxNDc2Mjc0MzM1fQ.tslWwKIpRR4mPpkY_r1R09V6QSdzTsnQSinH3CcjKfM :: RESPONSE: { "numWithAnyChange": 2, "numWithConversationChange": 1, "numWithSectionChange": 1 "groups": [ { "numWithAnyChange": 1, "numWithConversationChange": 0, "numWithSectionChange": 1, "groupId": "group8" }, { "numWithAnyChange": 1, "numWithConversationChange": 1, "numWithSectionChange": 0, "groupId": "group9" } ], } GET /partner/documents/unseen/list ---------------------------------- *Description:* `Listing Documents with unseen changes`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/unseen/list?userId=764ea18872a34337 METHOD: GET Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiMDM0Y2YxYzgtODcyZi00MjZhLTk1NGEtZmE4ZGE3ZWJkNmNlIiwiaWF0IjoxNDc2Mjc0NTg0fQ.1aktbLdwbRSR-4dVPN31hRFZlV0hf_AaGVCIEJZOcLQ :: RESPONSE: [ { "id": "68eb95cb-2c86-4472-b4a7-5fb5fc93a9f9", "title": "test2", "subtitle": "document subtitle", "description": "document description", "tags": ["tag1", "tag2"], "supplemental": "partner specific information" "creatorIdSD": "b89d898d-c51a-4912-909f-e652b511d023", "creatorId": "764ea18872a34337", "status": "review", "createdDate": 1481014475, "modificationDate": 1581003123, "hasUnreadSectionChanges": false, "hasUnreadConversationChanges": false, "hasOpenedDocument": false, "archived": false, "groupId": "group9" }, { "id": "b75b6641-a191-407e-a899-505d6aa5b01b", "title": "test1", "subtitle": "document subtitle", "description": "document description", "tags": ["tag1", "tag2"], "supplemental": "partner specific information" "creatorIdSD": "b89d898d-c51a-4912-909f-e652b511d023", "creatorId": "764ea18872a34337", "status": "review", "createdDate": 1481014475, "modificationDate": 1581003123, "hasUnreadSectionChanges": false, "hasUnreadConversationChanges": false, "hasOpenedDocument": false, "archived": false, "groupId": "group8" } ] POST /partner/documents/{id}/duplicate -------------------------------------- *Description:* `Duplicating Documents`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/2089a1dd-4b17-4694-a21c-e85f292003f4/duplicate METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiOWJhMWQ4NTQtOGU4OS00YjU2LWI4YWQtMGUyNzgwNzU4OTQyIiwiaWF0IjoxNDc2Mjc0NjYxfQ.Db2O2-s1hv3fpldQKz46ZRkjrlsJoVAIZPHyaCm6pz8 Payload: { "title": "copy of document", "description": "how to duplicate a document", "creatorUserId": "764ea18872a34337" } :: RESPONSE: { "documentId": "8b3c409f-24c3-440f-8ad6-cc2dd316f7ab" } POST /partner/documents/{id}/archive ------------------------------------ *Description:* `Archiving documents`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/8e6875cb-5cd2-4178-8ad4-d77b92173bf9/archive METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiNWQ5YjhmZjMtOGQ0ZC00NTY0LTg1ZjUtZWY4NzVlNzdiMzFiIiwiaWF0IjoxNDc2Mjc0NzA2fQ.tojNGwRD3n-kvz3UmSUASQRFzdz6z2niRtq8pFZZlC8 :: RESPONSE: no response POST /partner/documents/{id}/unarchive -------------------------------------- *Description:* `Archiving documents`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/8e6875cb-5cd2-4178-8ad4-d77b92173bf9/unarchive METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiYjQ2MThmYWEtZjIwYi00YjJjLTk4MDUtYzY1MDQ1ZDRhYTY3IiwiaWF0IjoxNDc2Mjc0NzMyfQ.iAJnIDT7wvW17QSTErGea0_GyU8o_SGKK60GroLRu_k :: RESPONSE: no response DELETE /partner/documents/{id} ------------------------------ *Description:* `Deleting documents`_ Deletes the document. Success is indicated by HTTP 200. :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/68eb95cb-2c86-4472-b4a7-5fb5fc93a9f9 METHOD: DELETE Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiYzJmZWUxN2YtNzQ2Yy00YjdlLTliYWMtMWFlYjMwYjBjNjRiIiwiaWF0IjoxNDc2Mjc0ODIyfQ.dSXh7GRr6HRmZv6xn4hxlHF39em5qiYVRn2-A0EZ1Pc :: RESPONSE: { } POST /partner/documents/{id}/deletion-process ------------------------------ *Description:* `Deleting documents with a deletion process`_ Create deletion process and deletes the document. Success is indicated by HTTP 200. :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/68eb95cb-2c86-4472-b4a7-5fb5fc93a9f9/deletion-process METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiYzJmZWUxN2YtNzQ2Yy00YjdlLTliYWMtMWFlYjMwYjBjNjRiIiwiaWF0IjoxNDc2Mjc0ODIyfQ.dSXh7GRr6HRmZv6xn4hxlHF39em5qiYVRn2-A0EZ1Pc Payload: { "userId": "684b6774-4cdd-4434-b4ee-f8c02cad4b05", "immediate": true, "message": "This document should be deleted", } :: RESPONSE: { } DELETE /partner/documents/{id}/deletion-process ------------------------------ *Description:* `Cancel deletion process for the document`_ Cancels a deletion process for a SMASHDOCs ``review`` document. Success is indicated by HTTP 200. :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/68eb95cb-2c86-4472-b4a7-5fb5fc93a9f9/deletion-process METHOD: DELETE Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiYzJmZWUxN2YtNzQ2Yy00YjdlLTliYWMtMWFlYjMwYjBjNjRiIiwiaWF0IjoxNDc2Mjc0ODIyfQ.dSXh7GRr6HRmZv6xn4hxlHF39em5qiYVRn2-A0EZ1Pc Payload: { "message": "We need to keep this document", } :: RESPONSE: { } POST /partner/documents/{id}/review ----------------------------------- *Description:* `Setting a document to review mode`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/8e6875cb-5cd2-4178-8ad4-d77b92173bf9/review METHOD: POST Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiYjQ2MThmYWEtZjIwYi00YjJjLTk4MDUtYzY1MDQ1ZDRhYTY3IiwiaWF0IjoxNDc2Mjc0NzMyfQ.iAJnIDT7wvW17QSTErGea0_GyU8o_SGKK60GroLRu_k :: RESPONSE: no response GET /partner/documents/{id} --------------------------- *Description:* `Getting Information for a single Document`_ .. hint:: The properties ``hasOpenedDocument``, ``hasUnreadConversationChanges`` and ``hasUnreadSectionChanges`` are dependent of a user. By adding the query parameter ``?userId=`` it is possible to get the status of a document for a specific user :: REQUEST: URL: https://partner.smashdocs.net/api/partner/documents/68eb95cb-2c86-4472-b4a7-5fb5fc93a9f9 METHOD: GET Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiYzJmZWUxN2YtNzQ2Yy00YjdlLTliYWMtMWFlYjMwYjBjNjRiIiwiaWF0IjoxNDc2Mjc0ODIyfQ.dSXh7GRr6HRmZv6xn4hxlHF39em5qiYVRn2-A0EZ1Pc :: RESPONSE: { "id": "68eb95cb-2c86-4472-b4a7-5fb5fc93a9f9", "title": "test2", "subtitle": "document subtitle", "filename": "document filename", "description": "document description", "footer": "document footer", "tags": ["tag1", "tag2"], "supplemental": "partner specific information" "creatorIdSD": "b89d898d-c51a-4912-909f-e652b511d023", "creatorId": "764ea18872a34337", "status": "review", "createdDate": 1481014475, "modificationDate": 1581003123, "hasUnreadSectionChanges": false, "hasUnreadConversationChanges": false, "hasOpenedDocument": false, "archived": false, "groupId": "group9", "sampleId": "d7214c95-caf0-447f-93d6-0abcb6fc4f87" } POST /partner/imports/word/upload --------------------------------- *Description:* `Importing Word Documents`_ .. hint:: Please find a code example for multipart/form-data uploads here: ``__ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/imports/word/upload METHOD: POST Headers: content-type: multipart/form-data x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiNTRhZjI4MTAtMzk1Mi00ZjFmLWE2N2YtODI4OWNiYzE0NGQ0IiwiaWF0IjoxNDc2Mjc0ODMzfQ.1hnj2xqZjDwOvFrLZo5VexA6U7qf4NOZWRAwq7EhzSk Form Data: "file": << DOCX - FILE >> "data": << JSON metadata and user information >> { "user": { "email": "steven.miller@yourcompany.com", "firstname": "Steven", "lastname": "Miller", "userId": "764ea18872a34337", "language": "de_DE", "company": "yourcompany" }, "isMagicImport": true, "styleSetKey": "contract_1-1-1", "routines": ["REPLACE_ALL_BLANK_LINES", "DELETE_UNNECESSARY_SPACES"], "title": "my first SMASHDOCs document", "subtitle": "", "filename": "very important word document", "footer": "", "description": "", "groupId": "85c2602653b7c", "userRole": "approver", "sectionHistory": true, "documentExportDuplicate": true, "status": "draft", "sampleId": "d7214c95-caf0-447f-93d6-0abcb6fc4f87" } :: RESPONSE: { "documentAccessLink": "https://partner.smashdocs.net/#/document/8e6875cb-5cd2-4178-8ad4-d77b92173bf9 &otpt=c938609e2bfc3e8049346a7fef96506aab6babc2e918dd9787a1ae7ce70b3fb1", "userIdSD": "b01b8477-01aa-49fe-8cfb-3d3cb00fac1b", "documentId": "8e6875cb-5cd2-4178-8ad4-d77b92173bf9" } GET /partner/imports/word/mapping --------------------------------- *Description:* `Obtaining information about magic import styleSetKey`_ :: REQUEST: URL: https://partner.smashdocs.net/api/partner/imports/word/mapping METHOD: GET Headers: content-type: application/json x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiYzJmZWUxN2YtNzQ2Yy00YjdlLTliYWMtMWFlYjMwYjBjNjRiIiwiaWF0IjoxNDc2Mjc0ODIyfQ.dSXh7GRr6HRmZv6xn4hxlHF39em5qiYVRn2-A0EZ1Pc :: RESPONSE: [ { "key": "contract_1-1-1", "name": { "de_DE": "Vertrag 1.1.1", "en_EN": "Contract 1.1.1", "es_ES": "Contrato 1.1.1", "fr_BE": "Contrat 1.1.1", "fr_CA": "Contrat 1.1.1", "fr_FR": "Contrat 1.1.1", "nl_BE": "Contract 1.1.1", "ru_RU": "Контракт 1.1.1" } }, { "key": "contract_1-1-a", "name": { "de_DE": "Vertrag 1.1.a", "en_EN": "Contract 1.1.a", "es_ES": "Contrato 1.1.a", "fr_BE": "Contrat 1.1.a", "fr_CA": "Contrat 1.1.a", "fr_FR": "Contrat 1.1.a", "nl_BE": "Contract 1.1.a", "ru_RU": "Контракт 1.1.a" } } ] POST /partner/imports/word/background-upload ---------------------------------- *Description:* `Asynchronous Word import`_ :: REQUEST: URL: https://partner-api.smashdocs.net/partner/imports/word/background-upload METHOD: POST Headers: content-type: multipart/form-data x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiNTRhZjI4MTAtMzk1Mi00ZjFmLWE2N2YtODI4OWNiYzE0NGQ0IiwiaWF0IjoxNDc2Mjc0ODMzfQ.1hnj2xqZjDwOvFrLZo5VexA6U7qf4NOZWRAwq7EhzSk Form Data: "file": << DOCX - FILE >> "data": << JSON metadata and user information >> { "user": { "email": "steven.miller@yourcompany.com", "firstname": "Steven", "lastname": "Miller", "userId": "764ea18872a34337", "company": "yourcompany" }, "title": "my first SMASHDOCs document", "description": "", "groupId": "85c2602653b7c", "userRole": "approver", "sectionHistory": true, "documentExportDuplicate": true, "isMagicImport": false, "routines": [ << LIST OF ROUTINE NAMES >> ], "status": "draft" } :: RESPONSE: { "jobId": "c51e6a13-a24e-4e76-bffa-87741a69129a" } GET /partner/documents/background-upload/ ---------------------------------- *Description:* `Asynchronous Word import`_ :: REQUEST: URL: https://partner-api.smashdocs.net/partner/documents/background-upload/c51e6a13-a24e-4e76-bffa-87741a69129a METHOD: POST Headers: content-type: multipart/form-data x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiNTRhZjI4MTAtMzk1Mi00ZjFmLWE2N2YtODI4OWNiYzE0NGQ0IiwiaWF0IjoxNDc2Mjc0ODMzfQ.1hnj2xqZjDwOvFrLZo5VexA6U7qf4NOZWRAwq7EhzSk :: RESPONSE: { "state": "SUCCESS", "documentId": "b3f73b8e-221c-45b0-8919-05fbd995d5f9", "userIdSD": "c915702b-c917-4338-a9c4-ff0c32477ee0", "documentAccessLink": "https://localdev.smashdocs.net/document/b3f73b8e-221c-45b0-8919-05fbd995d5f9?otpt=1f152971d2b3c142c0a3c396de0093ea619f8f23606b61f89150a1db304d34f4" } POST /partner/imports/sdxml/upload ---------------------------------- *Description:* `Importing XML Documents`_ .. hint:: Please find a code example for multipart/form-data uploads here: ``__ :: ZIP file specification: - sd.xml (the xml file references the images like "image1.jpg") + images (the base dir for images) | - image1.jpg | - image2.jpeg | - image3.png | - image4.gif :: REQUEST: URL: https://partner.smashdocs.net/api/partner/imports/sdxml/upload METHOD: POST Headers: content-type: multipart/form-data x-client-id: 60158fa4fcdf3b5b0645b1a5ee2135cdfb6f0bb1bb authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3NjRlYTE4ODcyYTM0MzM3IiwianRpIjoiNTRhZjI4MTAtMzk1Mi00ZjFmLWE2N2YtODI4OWNiYzE0NGQ0IiwiaWF0IjoxNDc2Mjc0ODMzfQ.1hnj2xqZjDwOvFrLZo5VexA6U7qf4NOZWRAwq7EhzSk Form Data: "file": << XML Zip - FILE >> "data": << JSON metadata and user information >> { "user": { "email": "steven.miller@yourcompany.com", "firstname": "Steven", "lastname": "Miller", "userId": "764ea18872a34337", "language": "de_DE", "company": "yourcompany" }, "title": "my first SMASHDOCs document", "subtitle": "", "filename": "very important sdox document", "description": "", "footer": "", "groupId": "85c2602653b7c", "userRole": "approver", "sectionHistory": true, "documentExportDuplicate": true, "status": "draft", "sampleId": "d7214c95-caf0-447f-93d6-0abcb6fc4f87" } :: RESPONSE: { "documentAccessLink": "https://partner.smashdocs.net/#/document/8e6875cb-5cd2-4178-8ad4-d77b92173bf9 &otpt=c938609e2bfc3e8049346a7fef96506aab6babc2e918dd9787a1ae7ce70b3fb1", "userIdSD": "b01b8477-01aa-49fe-8cfb-3d3cb00fac1b", "documentId": "8e6875cb-5cd2-4178-8ad4-d77b92173bf9" }