Access your file cabinets and documents in the file cabinets via the integrated default web service DocuWare Platform API.
The list below shows the available endpoints for the default REST web service "DocuWare Platform API".
Information: Some endpoints can execute multiple operations
For example, the endpoint "documentAnnotations" places a stamp on a free or a fixed position or adds a text annotation. The path/endpoint is the same for these three functions with “documentAnnotations”. The difference is the HTTP body. However, DocuWare can only automatically pre-populate one HTTP body. For the “documentAnnotations” example, the HTTP body for the “Add stamp to an automatically defined position” function is filled in by default. If you want to use a different function with “documentAnnotations”, you have to manually replace and adjust the HTTP body. The corresponding templates can be found at the bottom of the list of endpoints.
The tag "Default" in the list of endpoints indicates which HTTP Body is pre-filled automatically.
Check this overview to find the operations that share the same path/endpoint:
documentAnnotations
POST /FileCabinets/{TrayId/FileCabinetId}/Operations/ProcessDocumentAction?docId={DocId}
Add stamp to an automatically defined position - default
Add stamp to a fixed position
Add text annotation to a fixed position
processDocumentAction
PUT /FileCabinets/{TrayId/FileCabinetId}/Documents/{DocId}/Annotation
Merge layers - default
Append a document
userRoles
PUT /Organization/UserRoles?UserId={UserId}
Add user to a role - default
Remove user from a role
userGroups
PUT /Organization/UserGroups?UserId={UserId}
Add user to a group - default
Remove user from a role
To pass the ID/GUID of a user, simply write the username into a global variable of type "User" and pass the variable in the HTTP request. The system will automatically provide the appropriate GUID.
List of endpoints
Get total amount of documents in a file cabinet or document tray
Description: DialogId (optional): The identifier of the used search dialog.
FieldName (optional): The name of the field whose values are grouped and counted.Default: yes
Operation: countResult
Command: POST
Route/Path:
/DocuWare/Platform/FileCabinets/ {TrayId/FileCabinetId}/Query/CountExpression?dialogId={DialogId}&fieldName= {FieldName}
Search by dialog
Description: DialogId (optional): The identifier of the used search dialog.
Default: yes
Operation: dialogExpression
Command: POST
Route/Path:
/DocuWare/Platform/FileCabinets/ {TrayId/FileCabinetId}/Query/CountExpression?dialogId={DialogId}&fieldName= {FieldName}HTTP body (sample):
{ "Condition":[ {"DBName":"COMPANY", "Value":["Peter's Engineering"]},{"DBName":"CONTACT", "Value":["EMPTY()"]},{"DBName":"DocuWareFulltext", "Value":["Solar Panels"]}], "Operation":"And"}
Create a new database entry in a document tray or a file cabinet
Default: yes
Operation: documents
Command: POST
Route/Path: /FileCabinets/{TrayId/FileCabinetId}/Documents
HTTP body (sample):
{ "Fields": [ { "FieldName": "COMPANY", "Item": "Peter's Engineering" }, { "FieldName": "CONTACT", "Item": "Peter Sanders" }, { "FieldName": "DOCUMENT_DATE", "Item": "2020-01-01" }, { "FieldName": "COST_CENTER", "Item": { "$type": "DocumentIndexFieldKeywords", "Keyword": [ "A", "B", "C" ] } } ] }
Get information of a document
Default: yes
Operation: document
Command: GET
Route/Path: /FileCabinets/{TrayId/FileCabinetId}/Documents/{DocId}
Delete a document
Default: yes
Operation: documentDelete
Command: DELETE
Route/Path: /FileCabinets/{TrayId/FileCabinetId}/Documents/{DocId}
Delete a section of a document
Description: The only section of a document is deleted it will automatically be converted to a database entry.
Default: yes
Operation: sectionDelete
Command: DELETE
Route/Path: /FileCabinets/{TrayId/FileCabinetId}/Sections/{SectionId}
Add a stamp at an automatically defined position
Description: Add stamp on best position.
Default: yes
Operation: documentAnnotations
Command: POST
Route/Path: /FileCabinets/{TrayId/FileCabinetId}/Documents/{DocId}/Annotation
HTTP-body (sample):
{ "Annotations": [ { "PageNumber": 0, "SectionNumber": 0, "AnnotationsPlacement": { "Items": [ { "$type": "StampPlacement", "StampId": "73d54f34-1b80-4b43-81ec-f0d31176d990", "Layer": 1, "Field": [ { "Name": "<#1>", "TypedValue": { "Item": "*Test007*" }, "Value": "Jenkins" }, { "Name": "<#2>", "TypedValue": { "Item": "*Test007*" }, "Value": "Approved" } ], "Password": null } ] } } ] }
Add a stamp on fixed position
Operation: documentAnnotations
Command: POST
Route/Path: FileCabinets/{TrayId/FileCabinetId}/Documents/{DocId}/Annotation
HTTP body (sample):
{ "Annotations": [ { "PageNumber": 0, "SectionNumber": 0, "AnnotationsPlacement": { "Items": [ { "$type": "StampPlacement", "Location": { "X": "100", "Y": "100" }, "StampId": "6ab67774-074d-4d93-99c5-5bc46262b84c", "Layer": 1, "Field": [ { "Name": "<#1>", "TypedValue": { "Item": "September" }, "Value": "Sep." } ], "Password": null } ] } } ] }
Add text annotation
Operation: documentAnnotations
Command: POST
Route/Path: FileCabinets/{TrayId/FileCabinetId}/Documents/{DocId}/Annotation
HTTP body (sample):
{ "Annotations": [ { "PageNumber": 0, "SectionNumber": 0, "AnnotationsPlacement": { "Items": [ { "$type": "Annotation", "Layer": [ { "Id": "1", "Items": [ { "$type": "TextEntry", "Font": { "FontName": "Lucida Console", "Bold": true, "Italic": true, "Underlined": false, "StrikeThrough": false, "FontSize": 200, "Spacing": 0 }, "Value": "Test annotation", "Location": { "Left": 100, "Top": 100, "Width": 1500, "Height": 500 }, "Color": "Black", "Rotation": 0, "Transparent": false, "StrokeWidth": 50 } ] } ] } ] } } ] }
Transfer a document
Description: Transfer document from a source file cabinet or document tray to the specified file cabinet or document tray
Content type has to be set to application/vnd.docuware.platform.documentstransferinfo+json
Default: yes
Operation: transfer
Command: POST
Route/Path: /FileCabinets/ {TrayId/FileCabinetId} /Task/Transfer
HTTP body (sample):
{ "SourceFileCabinetId": "ae156510-ffa8-48b1-a3ec-baec3180669c", "Documents": [ { "Id": 123456, "Fields": null } ], "KeepSource": true, "FillIntellix": false,"UseDefaultDialog": true}
Replace a file of a document
Description: Replace the file of a document with the document within the workflow.
Default: yes
Operation: sectionData
Command: POST
Route/Path: /FileCabinets/{TrayId/FileCabinetId}/Sections/{SectionId}/Data
Append a new file
Description: Append a the current document to another document in a file cabinet or document tray
Document can be appened in original format or as PDF without annotations or stamps.
If the target is a DB entry it will automatically be converted to a document.
Default: yes
Operation: sections
Command: POST
Route/Path: /FileCabinets/{TrayId/FileCabinetId}/Sections?DocId={DocId}
Unclip a document
Description: Automate separation of files, for example when clipped documents are stored in the file cabinet, they can be transferred to the document tray, unclipped there, and stored back to the file cabinet again.
In the Request route, specifiy the tray GUID
In the Request queries, add the Document ID
Default: yes
Operation: unclipDocument
Command: POST
Route/Path: /FileCabinets/{TrayId/FileCabinetId}/Operations/ContentDivide?docId={docId}
Merge layers
Description: Merge the annotation layers with the document. This will create new PDF and replace the old one.
Default: yes
Operation: processDocumentAction
Command: PUT
Route/Path:
/FileCabinets/{TrayId/FileCabinetId}/Operations/ProcessDocumentAction?docId={DocId}HTTP body (sample):
{ "DocumentAction": "MergeAnnotations","DocumentActionParameters":{"$type":"MergeAnnotationsParameters","SectionNumber":0}}
Append a document
Description: DialogId (optional): The identifier of the used search dialog. FieldName (optional): The name of the field whose values are grouped and counted.
Operation: processDocumentAction
Command: PUT
Route/Path:
/FileCabinets/{TrayId/FileCabinetId}/Operations/ProcessDocumentAction?docId={DocId}HTTP body (sample):
{ "DocumentAction": "Append", "DocumentActionParameters": { "$type": "AppendActionParameters", "RemoveSourceDocuments": false, "DocumentsInFront": [ ], "DocumentsAtBack": [ { "SourceCabinetId": "ae156510-ffa8-48b1-a3ec-baec3180669c", "Documents": [ 123456 ] } ] } }
Create user
Description: Content type has to be set to application/vnd.docuware.platform.createorganizationuser+json
Default: yes
Operation: createUser
Command: POST
Route/Path: /Organization/UserInfo
HTTP body (sample):
{ "EMail": "firstname.lastname@domain.com", "Name": "MyUserName", "DBName": "MYUSERNA", "Password": "eLK%4s*Z", "NetworkID": "Domain\\MyUserName" }
Modify user properties
Default: yes
Operation: modifyUser
Command: PATCH
Route/Path: /Organization/UserInfo
Get all users of the organization
Default: yes
Operation: users
Command: GET
Route/Path: /Organization/Users?Active={true|false}&Name={UserName}
Get all users of a group
Description: GroupID (required): The identifier of the group.
Default: yes
Operation: usersByGroup
Command: GET
Route/Path: /Organization/GroupUsers?groupId={GroupId}
Get all users of a role
Description: RoleID (required): The identifier of the group.
IncludeGroupUsers (optional): Boolean - default: 'false'Default: yes
Operation: usersByRole
Command: GET
Route/Path:
/Organization/UserRoles?UserId={UserId}&Active={true|false}&Name={RoleName}&Type={Standard|Default|Administrator}
Get information of a user
Description: Gt the properties of a specific user such as active state or out of office state.
UserID (required):
The identifier of the user.
Default: yes
Operation: userById
Command: GET
Route/Path: /Organization/UserByID?userId={UserId}
Get all roles of a user
Description:
UserID (required): The identifier of the user.Active (optional): Boolean - default: empty
Name (optional): The name of the role
Type (optional): {Standard|Default|Administrator}
Default: yes
Operation: userRoles
Command: GET
Route/Path: /Organization/UserRoles?UserId={UserId}
Add a user to role
Description: UserID (required): The identifier of the user.
Default: yes
Operation: userRoles
Command: PUT
Route/Path: Organization/UserRoles?UserId={UserId}
HTTP body (sample):
{ "Ids": [ "2d89fc45-a3c4-49c6-971b-ebc696a67d78" ], "OperationType": "Add" }
Remove user from role
Description: UserID (required): The identifier of the user.
Operation: userRoles
Command: PUT
Route/Path: Organization/UserRoles?UserId={UserId}
HTTP body (sample):
{ "Ids": [ "2d89fc45-a3c4-49c6-971b-ebc696a67d78" ], "OperationType": "Remove" }
Get all groups of a user
Description:
UserID (required): The identifier of the user.Active (optional): Boolean - default: empty
Name (optional): The name of the group
Default: yes
Operation: userGroups
Command: GET
Route/Path: /Organization/UserGroups?UserId={UserId}
Add a user to a group
Description: UserID (required): The identifier of the user.
Default: yes
Operation: userGroups
Command: PUT
Route/Path: /Organization/UserGroups?UserId={UserId}
HTTP body (sample):
{ "Ids": [ "2d89fc45-a3c4-49c6-971b-ebc696a67d78" ], "OperationType": "Add" }
Remove user from a group
Description: UserID (required): The identifier of the user.
Default: yes
Operation: userGroups
Command: PUT
Route/Path: /Organization/UserGroups?UserId={UserId}
HTTP body (sample):
{ "Ids": [ "2d89fc45-a3c4-49c6-971b-ebc696a67d78" ], "OperationType": "Remove" }
Get all roles from the organization
Description:
Active (optional): Boolean - default: emptyName (optional): The name of the role
Type (optional): {Standard|Default|Administrator}
Operation: roles
Command: GET
Route/Path: /Organization/Roles? Active={true|false}&Name={RoleName}&Type={Standard|Default|Administrator}
Get information of a role
Description:
Get the information of a role such as active stateRoleID (required): The identifier of the role.
Default: yes
Operation: role
Command: GET
Route/Path: /Organization/Role?roleId={RoleId}
Get all groups from the organization
Description:
Active (optional): Boolean - default: emptyName (optional): the name of the group
Default: yes
Operation: groups
Command: GET
Route/Path: /Organization/Groups?&Active={true|false}&Name={GroupName}
Get information of a group
Description:
Get the information of a group such as active state.GroupID (required): The identifier of the group.
Default: yes
Operation: group
Command: GET
Route/Path: /Organization/Group?groupId={GroupId}
Create a new group
Description: Automate the creation of DocuWare groups, for example when new project files are stored, a group with the project name can be created and an index value profile can be assigned to this group.
Properties required:id
name
active
Default: yes
Operation: createGroup
Command: POST
Route/Path: /Organization/Groups
HTTP body (sample):
{ "Ids": [ "group-1234" ], "name": "Accounting Team", "Active": "true" }
Sample use case for setting a stamp with endpoint "documentAnnotations"
After an invoice has been processed in the accounting software, you want to automatically set a "Paid" stamp on the invoice in DocuWare.
To do this, create an Autoindex job which changes the index entry of the invoice to "paid". The change of the index entry of the invoice triggers a workflow, whose web service activity automatically puts the "Paid" stamp on the invoice document.
Note that the "Paid" stamp must be configured and assigned to the user which is specified for the workflow to run automatic activities.