Connect API

Connect API


Via the Connect API, third-party systems can use primedocs document generation on the server side via the primedocs Connect interface.

As a result, the generated document is returned to the caller.

Authentication and call

To call the Connect APIs, such a client must be registered in primedocs.config, see primedocs.config

After registration, an AccessToken can be requested from the IdS. The actual call can then be made against the Connect/File endpoint of the WebApi using the AccessToken.

This PowerShell example shows the reference of the AccessToken and the call of the endpoint:

# Configuration $datasourceId = "b78c3707-d7c7-4fc7-b97f-87d70f63c1ac" $tokenUrl = "https://customerserver.local/ids/connect/token" $connectUrl = "https://customerserver.local/webapi/api/v3/$datasourceId/connect/file" $clientID = "CustomApiClient" $clientSecret = "CustomClient_Secret_123" $scope = "pd_ConnectWebApi" $tokenRequestHeaders = @{ "Content-Type" = "application/x-www-form-urlencoded" } $tokenRequestBody = @{ client_id = $clientID client_secret = $clientSecret grant_type = "client_credentials" scope = $scope } # Request the access token try { $tokenResponse = Invoke-RestMethod -Uri $tokenUrl -Method POST -Headers $tokenRequestHeaders -Body $tokenRequestBody } catch { Write-Error "Error making the request: $_" exit 1; } if (-not $tokenResponse.access_token) { Write-Error "Failed to obtain an access token!" exit 1 } # Access token information Write-Host "Access Token: $($tokenResponse.access_token)" $accessToken = $tokenResponse.access_token # Prepare headers for request $apiRequestHeaders = @{ "Authorization" = "Bearer $accessToken" "Content-Type" = "application/xml; charset=utf-8" } $xmlBody = @" <primedocsConnect> <Template Id="30b55516-80b5-41d7-801b-b31d6da376ac" /> <Author><Profile Id="191d8f76-16e5-43fb-a6df-03b234b9d32a" /></Author> <Forms> <Value Key="Subject">From Sample Script</Value> <Value Key="Notes">Sample Note</Value> </Forms> <Data> <Value Key="InvoiceNumber">1234</Value> </Data> </primedocsConnect> "@ Write-Host "Invoke Connect..." try { $filePath = "C:\temp\test.docx" $response = Invoke-RestMethod -Uri $connectUrl -Method POST -Headers $apiRequestHeaders -Body $xmlBody -OutFile $filePath Write-Host "Connect result file saved at: $($filePath)" } catch { Write-Error "Error making the request: $_" exit 1; }

Swagger / Open API

The current Connect API Open API version 4.0.20171 looks like this. You can visualize this description using the Swagger Editor, for example.

{ "openapi": "3.0.1", "info": { "title": "primedocs WebApi", "version": "v3" }, "servers": [ { "url": "/webapi" } ], "paths": { "/api/v3/{datasourceId}/Connect/File": { "post": { "tags": [ "Connect" ], "parameters": [ { "name": "proposedFileName", "in": "query", "schema": { "type": "string" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success" } } } } }, "components": { "schemas": { "AdminGroupInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true }, "primarySid": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AdminOrganizationUnitDetailInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true }, "parentId": { "type": "string", "format": "uuid", "nullable": true } }, "additionalProperties": false }, "AdminOrganizationUnitEditV3": { "type": "object", "properties": { "title": { "type": "string", "nullable": true }, "organizationUnitParentId": { "type": "string", "format": "uuid", "nullable": true }, "fieldChanges": { "type": "array", "items": { "$ref": "#/components/schemas/FieldEdit" }, "nullable": true } }, "additionalProperties": false }, "AdminOrganizationUnitInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AdminProfileDetailInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true }, "organizationUnitId": { "type": "string", "format": "uuid", "nullable": true }, "organizationUnitTitle": { "type": "string", "nullable": true }, "profileShares": { "type": "array", "items": { "$ref": "#/components/schemas/AdminProfileShareV3" }, "nullable": true } }, "additionalProperties": false }, "AdminProfileInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true }, "organizationUnitId": { "type": "string", "format": "uuid", "nullable": true }, "organizationUnitTitle": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AdminProfileShareEditV3": { "type": "object", "properties": { "userId": { "type": "string", "format": "uuid", "nullable": true }, "groupId": { "type": "string", "format": "uuid", "nullable": true }, "appUserGroupId": { "type": "string", "format": "uuid", "nullable": true }, "profilePermissionLevel": { "type": "integer", "format": "int32" }, "signaturePermissionLevel": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "AdminProfileShareV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "userId": { "type": "string", "format": "uuid", "nullable": true }, "groupId": { "type": "string", "format": "uuid", "nullable": true }, "appUserGroupId": { "type": "string", "format": "uuid", "nullable": true }, "profilePermissionLevel": { "type": "integer", "format": "int32" }, "signaturePermissionLevel": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "AdminProfileUpdateEditV3": { "type": "object", "properties": { "title": { "type": "string", "nullable": true }, "organizationUnitId": { "type": "string", "format": "uuid" }, "fieldChanges": { "type": "array", "items": { "$ref": "#/components/schemas/FieldEdit" }, "nullable": true } }, "additionalProperties": false }, "AdminUserDetailInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "primarySid": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "profiles": { "type": "array", "items": { "$ref": "#/components/schemas/AdminProfileInfoV3" }, "nullable": true } }, "additionalProperties": false }, "AdminUserInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "primarySID": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AdminUserUpdateEditV3": { "type": "object", "properties": { "title": { "type": "string", "nullable": true }, "fieldChanges": { "type": "array", "items": { "$ref": "#/components/schemas/FieldEdit" }, "nullable": true } }, "additionalProperties": false }, "EmailMessageTypeV3": { "enum": [ 0, 1, 2 ], "type": "integer", "format": "int32" }, "FieldEdit": { "type": "object", "properties": { "field": { "type": "string", "nullable": true }, "text": { "type": "string", "nullable": true }, "imageAsBase64": { "type": "string", "nullable": true }, "lcid": { "type": "integer", "format": "int32" }, "purge": { "type": "boolean" } }, "additionalProperties": false }, "FlatFieldInfoV2": { "type": "object", "properties": { "field": { "type": "string", "nullable": true }, "text": { "type": "string", "nullable": true }, "inheritance": { "type": "string", "nullable": true }, "isImage": { "type": "boolean" }, "lcid": { "type": "integer", "format": "int32" }, "profileId": { "type": "string", "format": "uuid", "nullable": true }, "_links": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/LinkV2" }, "nullable": true, "readOnly": true } }, "additionalProperties": false }, "LinkV2": { "type": "object", "properties": { "href": { "type": "string", "nullable": true }, "type": { "type": "string", "nullable": true }, "id": { "type": "string", "nullable": true } }, "additionalProperties": false }, "PagedResponse`1<AdminGroupInfo[]v3>": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AdminGroupInfoV3" }, "nullable": true }, "pagingDetails": { "$ref": "#/components/schemas/PagingDetails" } }, "additionalProperties": false }, "PagedResponse`1<AdminOrganizationUnitInfo[]v3>": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AdminOrganizationUnitInfoV3" }, "nullable": true }, "pagingDetails": { "$ref": "#/components/schemas/PagingDetails" } }, "additionalProperties": false }, "PagedResponse`1<AdminUserInfo[]v3>": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AdminUserInfoV3" }, "nullable": true }, "pagingDetails": { "$ref": "#/components/schemas/PagingDetails" } }, "additionalProperties": false }, "PagedResponse`1<SharedProfileInfo[]v2>": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/SharedProfileInfoV2" }, "nullable": true }, "pagingDetails": { "$ref": "#/components/schemas/PagingDetails" } }, "additionalProperties": false }, "PagingDetails": { "type": "object", "properties": { "pageSize": { "type": "integer", "format": "int32" }, "page": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "SearchInputFieldsResponseModel": { "type": "object", "properties": { "dataProviderDisplayName": { "type": "string", "nullable": true }, "searchParametersConfigurationXmlSerialized": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SharedProfileInfoV2": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true }, "hasProfileImage": { "type": "boolean" }, "_links": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/LinkV2" }, "nullable": true, "readOnly": true }, "organizationUnitId": { "type": "string", "format": "uuid" }, "organizationUnit": { "type": "string", "nullable": true }, "isDefault": { "type": "boolean" }, "organizationUnitPath": { "type": "string", "nullable": true }, "localizedFlatFields": { "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/FlatFieldInfoV2" } }, "nullable": true }, "isForeignProfile": { "type": "boolean" }, "isPinned": { "type": "boolean" }, "organizationUnitThemes": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true } }, "additionalProperties": false }, "SignatureContentV3": { "type": "object", "properties": { "content": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SignatureV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string", "nullable": true } }, "additionalProperties": false } }, "securitySchemes": { "oauth2": { "type": "oauth2", "flows": { "implicit": { "authorizationUrl": "https://{tenantinstance}/ids/connect/authorize", "scopes": { "oo_WebApi": "Web API" } } } } } }, "security": [ { "oauth2": [ "oo_WebApi" ] } ] }

PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland