ICF 1.5.20.26

DocuSign connector

The DocuSign connector lets you manage DocuSign service accounts and synchronize accounts between DocuSign and the IDM managed user repository.

This chapter describes how to install and configure the DocuSign connector, and how to perform basic tests to ensure that it’s running correctly.

Only applicable to connector version 1.5.20.21 and lower.

For a complete example that includes the configuration required to synchronize users with this connector, refer to Synchronize data between IDM and DocuSign.

Before you start

The instructions in this guide assume that you have a DocuSign administrator account, and that you have added an Integrator Key, as described in the DocuSign Documentation. Before you configure the connector, log in to your administrator account and note the following information:

  • Secret Key

  • API Account ID

  • Integration Key

  • Account Base URI

  • Hourly Limit

  • Burst Limit

Install the DocuSign connector

If you are looking for the Advanced Identity Cloud application for this connector, refer to:

You can download any connector from Backstage, but some are included in the default deployment for Advanced Identity Cloud, IDM, or RCS. When using an included connector, you can skip installing it and move directly to configuration.

Connector included in default deployment
Connector IDM RCS

No

No

Download the connector .jar file from Backstage.

  • If you are running the connector locally, place it in the /path/to/openidm/connectors directory, for example:

    mv ~/Downloads/docusign-connector-1.5.20.26.jar /path/to/openidm/connectors/
  • If you are using a remote connector server (RCS), place it in the /path/to/openicf/connectors directory on the RCS.

Configure the DocuSign connector

Create a connector configuration using the IDM admin UI:

  1. From the navigation bar, click Configure > Connectors.

  2. On the Connectors page, click New Connector.

  3. On the New Connector page, type a Connector Name.

  4. From the Connector Type drop-down list, select DocuSign Connector - 1.5.20.26.

  5. Complete the Base Connector Details.

    For a list of all configuration properties, refer to DocuSign Connector Configuration
  6. Click Save.

When your connector is configured correctly, the connector displays as Active in the admin UI.

Refer to this procedure to create a connector configuration over REST.

Alternatively, configure the connector with a configuration file. IDM provides a sample connector configuration file in the /path/to/openidm/samples/example-configurations/provisioners directory. Copy this sample file (provisioner.openicf-docusign.json) to your project’s conf directory.

The following excerpt shows sample configuration properties:

"configurationProperties": {
    "serviceUri" : "_CHANGEME_",
    "clientId" : "_CHANGEME_",
    "clientSecret" : "_CHANGEME_",
    "account" : "_CHANGEME_",
    "hourRateLimit" : "_CHANGEME_",
    "burstRateLimit" : "_CHANGEME_",
    ...
}
serviceUri

The Docusign API hostname, in the most of the cases labeled Account Base URI, for example https://demo.docusign.net.

clientId

The Docusign Application Integration Key. You can locate this ID under Integrations > Apps and Keys > Apps and Integration Keys when you log in to your DocuSign account

clientSecret

The Docusign Application Secret Key. You can locate this ID under Integrations > Apps and Keys > Apps and Integration Keys > Actions > Edit > Authentication when you log in to your DocuSign account.

account

The API Account ID. You can locate this account ID under Integrations > Apps and Keys > My Account Information when you log in to your DocuSign account.

hourRateLimit

The Hourly Limit. You can locate this value under Integrations > API Usage Center > API Limit when you log in to your DocuSign account.

burstRateLimit

The Burst Limit. You can locate this value under Integrations > API Usage Center > API Limit when you log in to your DocuSign account.

When your connector is configured correctly, the connector displays as Active in the UI.

If throttling problems continue, this guide may be helpful:

Test the DocuSign connector

Test that the configuration is correct by running the following command:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request POST \
"http://localhost:8080/openidm/system/docusign?_action=test"
{
  "name": "docusign",
  "enabled": true,
  "config": "config/provisioner.openicf/docusign",
  "connectorRef": {
    "bundleVersion": "[1.5.0.0,1.6.0.0)",
    "bundleName": "org.forgerock.openicf.connectors.docusign-connector",
    "connectorName": "org.forgerock.openicf.connectors.docusign.DocuSignConnector"
  },
  "displayName": "DocuSign Connector",
  "objectTypes": [
    "userSignature",
    "signingGroup",
    "__GROUP__",
    "__ALL__",
    "contact",
    "permissionProfile",
    "__ACCOUNT__"
  ],
  "ok": true
}

If the command returns "ok": true, your connector was configured correctly, and can authenticate to the DocuSign server.

DocuSign remote connector

If you want to run this connector outside of PingOne Advanced Identity Cloud or IDM, you can configure the DocuSign connector as a remote connector. Java Connectors installed remotely on a Java Connector Server function identically to those bundled locally within PingOne Advanced Identity Cloud or installed locally on IDM.

You can download the DocuSign connector from here.

Refer to Remote connectors for configuring the DocuSign remote connector.

Configure Connection Pooling

The DocuSign connector supports connection pooling, which can substantially improve the performance of the connector. The basic connection pooling configuration is described in Connection pooling configuration.

Use the DocuSign Connector

You can use the DocuSign connector to perform the following actions on a DocuSign account.

Users

Create a DocuSign User

This example creates a user with the minimum required attributes.

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Content-Type: application/json" \
--request POST \
--data '{
  "userName": "Carlos Garcia",
  "email": "cgarcia@example.com"
}' \
"http://localhost:8080/openidm/system/docusign/__ACCOUNT__?_action=create"
{
  "_id": "10a0c285-1976-4fb0-8955-875d281e50fd",
  "permissionProfileId": "",
  "createdDateTime": "2024-02-09T16:29:20.9270000Z",
  "__GROUP__": [
    "12580253"
  ],
  "sendActivationOnInvalidLogin": "false",
  "lastName": "Garcia",
  "isAdmin": "False",
  "jobTitle": "",
  "uri": "/users/10a0c285-1976-4fb0-8955-875d281e50fd",
  "permissionProfileName": "",
  "enableConnectForUser": "false",
  "email": "cgarcia@example.com",
  "userStatus": "ActivationSent",
  "workAddress": {
    "address1": "",
    "address2": "",
    "city": "",
    "stateOrProvince": "",
    "postalCode": "",
    "phone": "",
    "country": ""
  },
  "initialsImageUri": "/users/10a0c285-1976-4fb0-8955-875d281e50fd/signatures/9ca8008b-31cd-42a3-89f6-6a9ccd88f25f/initials_image",
  "userId": "10a0c285-1976-4fb0-8955-875d281e50fd",
  "firstName": "Carlos",
  "__NAME__": "Carlos Garcia",
  "userSettings": {
    "canManageAccount": "false",
    "accountManagementGranular": {
      "canManageUsers": "false",
      "canManageAdmins": "false",
      "canManageSharing": "false",
      "canManageEnvelopeTransfer": "false",
      "canManageAccountSettings": "false",
      "canManageReporting": "false",
      "canManageAccountSecuritySettings": "false",
      "canManageSigningGroups": "false",
      "canManageDocumentRetention": "false",
      "canManageConnect": "false",
      "canViewUsers": "false",
      "canManageGroupsButNotUsers": "false",
      "canManageStamps": "false",
      "canManageJointAgreements": "false"
    },
    "canSendEnvelope": "false",
    "canSendAPIRequests": "false",
    "apiAccountWideAccess": "false",
    "enableVaulting": "false",
    "vaultingMode": "none",
    "enableTransactionPoint": "true",
    "enableSequentialSigningAPI": "true",
    "enableSequentialSigningUI": "true",
    "enableDSPro": "false",
    "powerFormMode": "user",
    "allowPowerFormsAdminToAccessAllPowerFormEnvelope": "false",
    "canEditSharedAddressbook": "use_private_and_shared",
    "manageClickwrapsMode": "none",
    "enableSignOnPaperOverride": "false",
    "enableSignerAttachments": "true",
    "allowSendOnBehalfOf": "false",
    "canManageTemplates": "none",
    "allowEnvelopeTransferTo": "false",
    "allowRecipientLanguageSelection": "true",
    "apiCanExportAC": "false",
    "bulkSend": "false",
    "canChargeAccount": "true",
    "canManageDistributor": "false",
    "canSignEnvelope": "true",
    "newSendUI": "false",
    "recipientViewedNotification": "false",
    "templateActiveCreation": "false",
    "templateApplyNotify": "true",
    "templateAutoMatching": "true",
    "templateMatchingSensitivity": "80",
    "templatePageLevelMatching": "false",
    "transactionPointSiteNameURL": "",
    "transactionPointUserName": "",
    "timezoneOffset": "tz_66_pacific",
    "timezoneMask": "",
    "timezoneDST": "",
    "modifiedBy": "",
    "modifiedPage": "update membership settings by acm sync job",
    "modifiedDate": "2/9/2024 5:02:47 pm",
    "adminOnly": "false",
    "selfSignedRecipientEmailDocument": "include_link",
    "signerEmailNotifications": {
      "envelopeActivation": "true",
      "envelopeComplete": "true",
      "carbonCopyNotification": "true",
      "certifiedDeliveryNotification": "true",
      "envelopeDeclined": "true",
      "envelopeVoided": "true",
      "envelopeCorrected": "true",
      "reassignedSigner": "true",
      "purgeDocuments": "true",
      "faxReceived": "true",
      "documentMarkupActivation": "true",
      "agentNotification": "true",
      "offlineSigningFailed": "true",
      "whenSigningGroupMember": "true",
      "commentsReceiveAll": "true",
      "commentsOnlyPrivateAndMention": "true"
    },
    "senderEmailNotifications": {
      "envelopeComplete": "true",
      "changedSigner": "true",
      "senderEnvelopeDeclined": "true",
      "withdrawnConsent": "true",
      "recipientViewed": "true",
      "deliveryFailed": "true",
      "offlineSigningFailed": "true",
      "purgeDocuments": "true",
      "commentsReceiveAll": "true",
      "commentsOnlyPrivateAndMention": "true",
      "powerformResponsesLimitNotificationEmail": "true",
      "clickwrapResponsesLimitNotificationEmail": "true"
    },
    "localePolicy": {
      "cultureName": "en",
      "nameFormat": "first_middle_last",
      "initialFormat": "first1last1",
      "addressFormat": "en_us",
      "dateFormat": "mdyyyy",
      "timeFormat": "none",
      "calendarType": "gregorian",
      "timeZone": "tz_66_pacific",
      "currencyPositiveFormat": "csym_1_comma_234_comma_567_period_89",
      "currencyNegativeFormat": "opar_csym_1_comma_234_comma_567_period_89_cpar",
      "effectiveNameFormat": "first_middle_last",
      "effectiveInitialFormat": "first1last1",
      "effectiveAddressFormat": "en_us",
      "effectiveDateFormat": "longformat",
      "effectiveTimeFormat": "hhmm",
      "effectiveCalendarType": "gregorian",
      "effectiveTimeZone": "tz_66_pacific",
      "effectiveCurrencyPositiveFormat": "csym_1_comma_234_comma_567_period_89",
      "effectiveCurrencyNegativeFormat": "opar_csym_1_comma_234_comma_567_period_89_cpar",
      "currencyCode": "usd",
      "effectiveCurrencyCode": "usd",
      "signDateFormat": "mdyyyy",
      "signTimeFormat": "none"
    },
    "locale": "en",
    "canLockEnvelopes": "true",
    "canUseScratchpad": "true",
    "canCreateWorkspaces": "false",
    "isWorkspaceParticipant": "false",
    "allowEmailChange": "true",
    "allowPasswordChange": "true",
    "federatedStatus": "none",
    "allowSupplementalDocuments": "true",
    "supplementalDocumentsMustView": "true",
    "supplementalDocumentsMustAccept": "true",
    "supplementalDocumentsMustRead": "true",
    "canManageOrganization": "false",
    "expressSendOnly": "false",
    "supplementalDocumentIncludeInDownload": "false",
    "disableDocumentUpload": "false",
    "disableOtherActions": "false",
    "useAccountServerForPasswordChange": "true",
    "isCommentsParticipant": "false",
    "useAccountServerForEmailChange": "true",
    "allowEsealRecipients": "false",
    "sealIdentifiers": [],
    "agreedToComments": "false",
    "canUseSmartContracts": "false",
    "canSendEnvelopesViaSMS": "false",
    "webForms": "none",
    "allowedOrchestrationAccess": "none"
  },
  "userType": "CompanyUser",
  "userName": "Carlos Garcia",
  "groupList": [
    {
      "groupId": "12580253",
      "groupName": "Everyone",
      "groupType": "everyoneGroup"
    }
  ]
}

When you create a new user, you must specify at least the userName and email. The value of the userName attribute determines how the remaining name attributes (firstName, lastName, and so on) are set in the new DocuSign user entry.

If you create the user with a single word as the value of the userName attribute, for example, cgarcia, the user’s userName and lastName attributes in DocuSign are both set to cgarcia.

If you create the user with multiple words as the value of the userName attribute, for example, Carlos Garcia), the user’s userName attribute is set to Carlos Garcia, their firstName attribute is set to Carlos, and their lastName attribute is set to Garcia.

Only the first three words of the userName attribute are parsed, into the firstName, middleName, and lastName attributes. Any additional words are ignored.

curl \
--header "Content-Type: application/json" \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Accept-API-Version: resource=1.0" \
--request POST \
--data '{
  "userName": "Carlos Garcia",
  "email": "cgarcia@example.com",
  "password": "Passw0rd",
  "forgottenPasswordInfo": {
    "forgottenPasswordQuestion1": "my question",
    "forgottenPasswordAnswer1": "my answer"
  }
}' \
"http://localhost:8080/openidm/system/docusign/__ACCOUNT__?_action=create"

Create a DocuSign Full User

This example creates a Docusign Full User.

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Content-Type: application/json" \
--request POST \
--data '{
  "userType": "CompanyUser",
  "lastName": "User3",
  "email": "showing3@example.com",
  "permissionProfileId": "",
  "permissionProfileName": "",
  "sendActivationOnInvalidLogin": "false",
  "userName": "showing3",
  "groupList": [
    {
      "groupId": "14261467"
    }
  ],
  "firstName": "showing3",
  "isAdmin": "False",
  "enableConnectForUser": "false",
  "jobTitle": "hired",
  "userSettings":
    {
      "canManageAccount": "false",
      "accountManagementGranular": {
        "canManageUsers": "false",
        "canManageAdmins": "false",
        "canManageSharing": "false",
        "canManageEnvelopeTransfer": "false",
        "canManageAccountSettings": "false",
        "canManageReporting": "false",
        "canManageAccountSecuritySettings": "false",
        "canManageSigningGroups": "false",
        "canManageDocumentRetention": "false",
        "canManageConnect": "false",
        "canViewUsers": "false",
        "canManageGroupsButNotUsers": "false",
        "canManageStamps": "false",
        "canManageJointAgreements": "false"
      },
      "canSendEnvelope": "false",
      "canSendAPIRequests": "false",
      "apiAccountWideAccess": "false",
      "enableVaulting": "false",
      "vaultingMode": "none",
      "enableTransactionPoint": "true",
      "enableSequentialSigningAPI": "true",
      "enableSequentialSigningUI": "true",
      "enableDSPro": "false",
      "powerFormMode": "user",
      "allowPowerFormsAdminToAccessAllPowerFormEnvelope": "false",
      "canEditSharedAddressbook": "use_private_and_shared",
      "manageClickwrapsMode": "none",
      "enableSignOnPaperOverride": "false",
      "enableSignerAttachments": "true",
      "allowSendOnBehalfOf": "false",
      "canManageTemplates": "none",
      "allowEnvelopeTransferTo": "false",
      "allowRecipientLanguageSelection": "true",
      "apiCanExportAC": "false",
      "bulkSend": "false",
      "canChargeAccount": "true",
      "canManageDistributor": "false",
      "canSignEnvelope": "true",
      "newSendUI": "false",
      "recipientViewedNotification": "false",
      "templateActiveCreation": "false",
      "templateApplyNotify": "true",
      "templateAutoMatching": "true",
      "templateMatchingSensitivity": "80",
      "templatePageLevelMatching": "false",
      "transactionPointSiteNameURL": "",
      "transactionPointUserName": "",
      "timezoneOffset": "tz_66_pacific",
      "timezoneMask": "",
      "timezoneDST": "",
      "modifiedBy": "",
      "modifiedPage": "",
      "modifiedDate": "1/9/2024 4:04:55 pm",
      "adminOnly": "false",
      "selfSignedRecipientEmailDocument": "include_link",
      "signerEmailNotifications": {
        "envelopeActivation": "true",
        "envelopeComplete": "true",
        "carbonCopyNotification": "true",
        "certifiedDeliveryNotification": "true",
        "envelopeDeclined": "true",
        "envelopeVoided": "true",
        "envelopeCorrected": "true",
        "reassignedSigner": "true",
        "purgeDocuments": "true",
        "faxReceived": "true",
        "documentMarkupActivation": "true",
        "agentNotification": "true",
        "offlineSigningFailed": "true",
        "whenSigningGroupMember": "true",
        "commentsReceiveAll": "true",
        "commentsOnlyPrivateAndMention": "true"
      },
      "senderEmailNotifications": {
        "envelopeComplete": "true",
        "changedSigner": "true",
        "senderEnvelopeDeclined": "true",
        "withdrawnConsent": "true",
        "recipientViewed": "true",
        "deliveryFailed": "true",
        "offlineSigningFailed": "true",
        "purgeDocuments": "true",
        "commentsReceiveAll": "true",
        "commentsOnlyPrivateAndMention": "true",
        "powerformResponsesLimitNotificationEmail": "true",
        "clickwrapResponsesLimitNotificationEmail": "true"
      },
      "localePolicy": {
        "cultureName": "en",
        "nameFormat": "first_middle_last",
        "initialFormat": "first1last1",
        "addressFormat": "en_us",
        "dateFormat": "mdyyyy",
        "timeFormat": "none",
        "calendarType": "gregorian",
        "timeZone": "tz_66_pacific",
        "currencyPositiveFormat": "csym_1_comma_234_comma_567_period_89",
        "currencyNegativeFormat": "opar_csym_1_comma_234_comma_567_period_89_cpar",
        "effectiveNameFormat": "first_middle_last",
        "effectiveInitialFormat": "first1last1",
        "effectiveAddressFormat": "en_us",
        "effectiveDateFormat": "longformat",
        "effectiveTimeFormat": "hhmm",
        "effectiveCalendarType": "gregorian",
        "effectiveTimeZone": "tz_66_pacific",
        "effectiveCurrencyPositiveFormat": "csym_1_comma_234_comma_567_period_89",
        "effectiveCurrencyNegativeFormat": "opar_csym_1_comma_234_comma_567_period_89_cpar",
        "currencyCode": "usd",
        "effectiveCurrencyCode": "usd",
        "signDateFormat": "mdyyyy",
        "signTimeFormat": "none"
      },
      "locale": "en",
      "canLockEnvelopes": "true",
      "canUseScratchpad": "true",
      "canCreateWorkspaces": "false",
      "isWorkspaceParticipant": "false",
      "allowEmailChange": "true",
      "allowPasswordChange": "true",
      "federatedStatus": "none",
      "allowSupplementalDocuments": "true",
      "supplementalDocumentsMustView": "true",
      "supplementalDocumentsMustAccept": "true",
      "supplementalDocumentsMustRead": "true",
      "canManageOrganization": "false",
      "expressSendOnly": "false",
      "supplementalDocumentIncludeInDownload": "false",
      "disableDocumentUpload": "false",
      "disableOtherActions": "false",
      "useAccountServerForPasswordChange": "true",
      "isCommentsParticipant": "false",
      "useAccountServerForEmailChange": "true",
      "allowEsealRecipients": "false",
      "sealIdentifiers": [],
      "agreedToComments": "false",
      "canUseSmartContracts": "false",
      "canSendEnvelopesViaSMS": "false",
      "webForms": "none",
      "allowedOrchestrationAccess": "none"
    }
}' \
"http://localhost:8080/openidm/system/docusign/__ACCOUNT__?_action=create"
{
  "_id": "10a0c285-1976-4fb0-8955-875d281e50fd",
  "permissionProfileId": "",
  "signatureImageUri": "/users/10a0c285-1976-4fb0-8955-875d281e50fd/signatures/9ca8008b-31cd-42a3-89f6-6a9ccd88f25f/signature_image",
  "createdDateTime": "2024-02-09T16:29:20.9270000Z",
  "__GROUP__": [
    "12580253",
    "14261467"
  ],
  "sendActivationOnInvalidLogin": "false",
  "lastName": "updated",
  "isAdmin": "False",
  "jobTitle": "hired",
  "uri": "/users/10a0c285-1976-4fb0-8955-875d281e50fd",
  "permissionProfileName": "",
  "enableConnectForUser": "false",
  "email": "showing3@example.com",
  "userStatus": "ActivationSent",
  "workAddress": {
    "address1": "",
    "address2": "",
    "city": "",
    "stateOrProvince": "",
    "postalCode": "",
    "phone": "",
    "country": ""
  },
  "initialsImageUri": "/users/10a0c285-1976-4fb0-8955-875d281e50fd/signatures/9ca8008b-31cd-42a3-89f6-6a9ccd88f25f/initials_image",
  "userId": "10a0c285-1976-4fb0-8955-875d281e50fd",
  "firstName": "showing3",
  "__NAME__": "showing3 updated",
  "userSettings": {
    "canManageAccount": "false",
    "accountManagementGranular": {
      "canManageUsers": "false",
      "canManageAdmins": "false",
      "canManageSharing": "false",
      "canManageEnvelopeTransfer": "false",
      "canManageAccountSettings": "false",
      "canManageReporting": "false",
      "canManageAccountSecuritySettings": "false",
      "canManageSigningGroups": "false",
      "canManageDocumentRetention": "false",
      "canManageConnect": "false",
      "canViewUsers": "false",
      "canManageGroupsButNotUsers": "false",
      "canManageStamps": "false",
      "canManageJointAgreements": "false"
    },
    "canSendEnvelope": "false",
    "canSendAPIRequests": "false",
    "apiAccountWideAccess": "false",
    "enableVaulting": "false",
    "vaultingMode": "none",
    "enableTransactionPoint": "true",
    "enableSequentialSigningAPI": "true",
    "enableSequentialSigningUI": "true",
    "enableDSPro": "false",
    "powerFormMode": "user",
    "allowPowerFormsAdminToAccessAllPowerFormEnvelope": "false",
    "canEditSharedAddressbook": "use_private_and_shared",
    "manageClickwrapsMode": "none",
    "enableSignOnPaperOverride": "false",
    "enableSignerAttachments": "true",
    "allowSendOnBehalfOf": "false",
    "canManageTemplates": "none",
    "allowEnvelopeTransferTo": "false",
    "allowRecipientLanguageSelection": "true",
    "apiCanExportAC": "false",
    "bulkSend": "false",
    "canChargeAccount": "true",
    "canManageDistributor": "false",
    "canSignEnvelope": "true",
    "newSendUI": "false",
    "recipientViewedNotification": "false",
    "templateActiveCreation": "false",
    "templateApplyNotify": "true",
    "templateAutoMatching": "true",
    "templateMatchingSensitivity": "80",
    "templatePageLevelMatching": "false",
    "transactionPointSiteNameURL": "",
    "transactionPointUserName": "",
    "timezoneOffset": "tz_66_pacific",
    "timezoneMask": "",
    "timezoneDST": "",
    "modifiedBy": "",
    "modifiedPage": "update membership settings by acm sync job",
    "modifiedDate": "2/9/2024 5:02:47 pm",
    "adminOnly": "false",
    "selfSignedRecipientEmailDocument": "include_link",
    "signerEmailNotifications": {
      "envelopeActivation": "true",
      "envelopeComplete": "true",
      "carbonCopyNotification": "true",
      "certifiedDeliveryNotification": "true",
      "envelopeDeclined": "true",
      "envelopeVoided": "true",
      "envelopeCorrected": "true",
      "reassignedSigner": "true",
      "purgeDocuments": "true",
      "faxReceived": "true",
      "documentMarkupActivation": "true",
      "agentNotification": "true",
      "offlineSigningFailed": "true",
      "whenSigningGroupMember": "true",
      "commentsReceiveAll": "true",
      "commentsOnlyPrivateAndMention": "true"
    },
    "senderEmailNotifications": {
      "envelopeComplete": "true",
      "changedSigner": "true",
      "senderEnvelopeDeclined": "true",
      "withdrawnConsent": "true",
      "recipientViewed": "true",
      "deliveryFailed": "true",
      "offlineSigningFailed": "true",
      "purgeDocuments": "true",
      "commentsReceiveAll": "true",
      "commentsOnlyPrivateAndMention": "true",
      "powerformResponsesLimitNotificationEmail": "true",
      "clickwrapResponsesLimitNotificationEmail": "true"
    },
    "localePolicy": {
      "cultureName": "en",
      "nameFormat": "first_middle_last",
      "initialFormat": "first1last1",
      "addressFormat": "en_us",
      "dateFormat": "mdyyyy",
      "timeFormat": "none",
      "calendarType": "gregorian",
      "timeZone": "tz_66_pacific",
      "currencyPositiveFormat": "csym_1_comma_234_comma_567_period_89",
      "currencyNegativeFormat": "opar_csym_1_comma_234_comma_567_period_89_cpar",
      "effectiveNameFormat": "first_middle_last",
      "effectiveInitialFormat": "first1last1",
      "effectiveAddressFormat": "en_us",
      "effectiveDateFormat": "longformat",
      "effectiveTimeFormat": "hhmm",
      "effectiveCalendarType": "gregorian",
      "effectiveTimeZone": "tz_66_pacific",
      "effectiveCurrencyPositiveFormat": "csym_1_comma_234_comma_567_period_89",
      "effectiveCurrencyNegativeFormat": "opar_csym_1_comma_234_comma_567_period_89_cpar",
      "currencyCode": "usd",
      "effectiveCurrencyCode": "usd",
      "signDateFormat": "mdyyyy",
      "signTimeFormat": "none"
    },
    "locale": "en",
    "canLockEnvelopes": "true",
    "canUseScratchpad": "true",
    "canCreateWorkspaces": "false",
    "isWorkspaceParticipant": "false",
    "allowEmailChange": "true",
    "allowPasswordChange": "true",
    "federatedStatus": "none",
    "allowSupplementalDocuments": "true",
    "supplementalDocumentsMustView": "true",
    "supplementalDocumentsMustAccept": "true",
    "supplementalDocumentsMustRead": "true",
    "canManageOrganization": "false",
    "expressSendOnly": "false",
    "supplementalDocumentIncludeInDownload": "false",
    "disableDocumentUpload": "false",
    "disableOtherActions": "false",
    "useAccountServerForPasswordChange": "true",
    "isCommentsParticipant": "false",
    "useAccountServerForEmailChange": "true",
    "allowEsealRecipients": "false",
    "sealIdentifiers": [],
    "agreedToComments": "false",
    "canUseSmartContracts": "false",
    "canSendEnvelopesViaSMS": "false",
    "webForms": "none",
    "allowedOrchestrationAccess": "none"
  },
  "userType": "CompanyUser",
  "userName": "showing3 updated",
  "groupList": [
    {
      "groupId": "12580253",
      "groupName": "Everyone",
      "groupType": "everyoneGroup"
    },
    {
      "groupId": "14261467",
      "groupName": "GLHFVAV_docusign_group",
      "groupType": "customGroup"
    }
  ]
}

Query DocuSign User

This example queries all DocuSign users:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/__ACCOUNT__?_queryFilter=True"
{
  "result": [
    {
      "_id": "bb590b6d-8774-49c4-89fd-821115b8fc00",
      ...
      "userName": "A_20240206164614656_DOCUSINGTEST",
      "createdDateTime": "2024-02-06T19:46:15.4770000Z",
      "userId": "bb590b6d-8774-49c4-89fd-821115b8fc00",
      "permissionProfileName": "",
      "userStatus": "Active",
      "uri": "/users/bb590b6d-8774-49c4-89fd-821115b8fc00"
    },
    {
      "_id": "410d0a11-1923-4e78-b543-1898de76c728",
      ...
      "userName": "A_20240206164614656_DOCUSINGTEST",
      "createdDateTime": "2024-02-08T19:57:28.1270000Z",
      "userId": "410d0a11-1923-4e78-b543-1898de76c728",
      "permissionProfileName": "DocuSign Viewer",
      "userStatus": "Closed",
      "uri": "/users/410d0a11-1923-4e78-b543-1898de76c728"
    },
    ...
    {
      "_id": "451664c9-6425-4595-b823-9493063734fe",
      ...
      "userName": "A_20240206170333281_DOCUSINGTEST",
      "createdDateTime": "2024-02-21T15:03:56.2000000Z",
      "userId": "451664c9-6425-4595-b823-9493063734fe",
      "permissionProfileName": "",
      "userStatus": "ActivationSent",
      "uri": "/users/451664c9-6425-4595-b823-9493063734fe"
    }
  ],
  "resultCount": 50,
  "pagedResultsCookie": "4xj8Qq7Gkd",
  "totalPagedResultsPolicy": "NONE",
  "totalPagedResults": -1,
  "remainingPagedResults": -1
}

userStatus can be filtered by a comma-separated list of the following:

  • ActivationRequired

  • ActivationSent

  • Active

  • Closed

  • Disabled

  • Some filters won’t work properly unless an userStatus is specified.

  • The maximum page size is 100.

Query IDs DocuSign User

This example queries all DocuSign users by their IDs:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/__ACCOUNT__?_queryId=query-all-ids"
{
  "result": [
    {
      "_id": "bc9f0464-808a-4703-b4c2-c1e6a77f0c3a"
    },
    {
      "_id": "dc1c6940-1de7-4434-a91e-1407424cac91"
    },
    {
      "_id": "94be4fed-cfd7-47d5-9fcc-813405084f17"
    }
  ],
  "resultCount": 3,
  "pagedResultsCookie": "fXE265UhNb",
  "totalPagedResultsPolicy": "NONE",
  "totalPagedResults": -1,
  "remainingPagedResults": -1
}

Get DocuSign User

The following command queries a specific user by its ID:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/__ACCOUNT__/dc1c6940-1de7-4434-a91e-1407424cac91"
{
  "_id": "83947d26-2e69-40a5-892c-7a7a2600d530",
  "userId": "83947d26-2e69-40a5-892c-7a7a2600d530",
  "permissionProfileName": "",
  "createdDateTime": "2024-02-07T12:54:17.3000000Z",
  "email": "IQNREMU@foo.bar",
  "userSettings": {
    "canManageAccount": "false",
    "accountManagementGranular": {
      "canManageUsers": "false",
      "canManageAdmins": "false",
      "canManageSharing": "false",
      "canManageEnvelopeTransfer": "false",
      "canManageAccountSettings": "false",
      "canManageReporting": "false",
      "canManageAccountSecuritySettings": "false",
      "canManageSigningGroups": "false",
      "canManageDocumentRetention": "false",
      "canManageConnect": "false",
      "canViewUsers": "false",
      "canManageGroupsButNotUsers": "false",
      "canManageStamps": "false",
      "canManageJointAgreements": "false"
    },
    "canSendEnvelope": "false",
    "canSendAPIRequests": "false",
    "apiAccountWideAccess": "false",
    "enableVaulting": "false",
    "vaultingMode": "none",
    "enableTransactionPoint": "true",
    "enableSequentialSigningAPI": "true",
    "enableSequentialSigningUI": "true",
    "enableDSPro": "false",
    "powerFormMode": "user",
    "allowPowerFormsAdminToAccessAllPowerFormEnvelope": "false",
    "canEditSharedAddressbook": "use_private_and_shared",
    "manageClickwrapsMode": "none",
    "enableSignOnPaperOverride": "false",
    "enableSignerAttachments": "true",
    "allowSendOnBehalfOf": "false",
    "canManageTemplates": "none",
    "allowEnvelopeTransferTo": "false",
    "allowRecipientLanguageSelection": "true",
    "apiCanExportAC": "false",
    "bulkSend": "false",
    "canChargeAccount": "true",
    "canManageDistributor": "false",
    "canSignEnvelope": "true",
    "newSendUI": "false",
    "recipientViewedNotification": "false",
    "templateActiveCreation": "false",
    "templateApplyNotify": "true",
    "templateAutoMatching": "true",
    "templateMatchingSensitivity": "80",
    "templatePageLevelMatching": "false",
    "transactionPointSiteNameURL": "",
    "transactionPointUserName": "",
    "timezoneOffset": "tz_66_pacific",
    "timezoneMask": "",
    "timezoneDST": "",
    "modifiedBy": "",
    "modifiedPage": "update membership settings by acm sync job",
    "modifiedDate": "2/7/2024 1:02:42 pm",
    "adminOnly": "false",
    "selfSignedRecipientEmailDocument": "include_link",
    "signerEmailNotifications": {
      "envelopeActivation": "true",
      "envelopeComplete": "true",
      "carbonCopyNotification": "true",
      "certifiedDeliveryNotification": "true",
      "envelopeDeclined": "true",
      "envelopeVoided": "true",
      "envelopeCorrected": "true",
      "reassignedSigner": "true",
      "purgeDocuments": "true",
      "faxReceived": "true",
      "documentMarkupActivation": "true",
      "agentNotification": "true",
      "offlineSigningFailed": "true",
      "whenSigningGroupMember": "true",
      "commentsReceiveAll": "true",
      "commentsOnlyPrivateAndMention": "true"
    },
    "senderEmailNotifications": {
      "envelopeComplete": "true",
      "changedSigner": "true",
      "senderEnvelopeDeclined": "true",
      "withdrawnConsent": "true",
      "recipientViewed": "true",
      "deliveryFailed": "true",
      "offlineSigningFailed": "true",
      "purgeDocuments": "true",
      "commentsReceiveAll": "true",
      "commentsOnlyPrivateAndMention": "true",
      "powerformResponsesLimitNotificationEmail": "true",
      "clickwrapResponsesLimitNotificationEmail": "true"
    },
    "localePolicy": {
      "cultureName": "en",
      "nameFormat": "first_middle_last",
      "initialFormat": "first1last1",
      "addressFormat": "en_us",
      "dateFormat": "mdyyyy",
      "timeFormat": "none",
      "calendarType": "gregorian",
      "timeZone": "tz_66_pacific",
      "currencyPositiveFormat": "csym_1_comma_234_comma_567_period_89",
      "currencyNegativeFormat": "opar_csym_1_comma_234_comma_567_period_89_cpar",
      "effectiveNameFormat": "first_middle_last",
      "effectiveInitialFormat": "first1last1",
      "effectiveAddressFormat": "en_us",
      "effectiveDateFormat": "longformat",
      "effectiveTimeFormat": "hhmm",
      "effectiveCalendarType": "gregorian",
      "effectiveTimeZone": "tz_66_pacific",
      "effectiveCurrencyPositiveFormat": "csym_1_comma_234_comma_567_period_89",
      "effectiveCurrencyNegativeFormat": "opar_csym_1_comma_234_comma_567_period_89_cpar",
      "currencyCode": "usd",
      "effectiveCurrencyCode": "usd",
      "signDateFormat": "mdyyyy",
      "signTimeFormat": "none"
    },
    "locale": "en",
    "canLockEnvelopes": "true",
    "canUseScratchpad": "true",
    "canCreateWorkspaces": "false",
    "isWorkspaceParticipant": "false",
    "allowEmailChange": "true",
    "allowPasswordChange": "true",
    "federatedStatus": "none",
    "allowSupplementalDocuments": "true",
    "supplementalDocumentsMustView": "true",
    "supplementalDocumentsMustAccept": "true",
    "supplementalDocumentsMustRead": "true",
    "canManageOrganization": "false",
    "expressSendOnly": "false",
    "supplementalDocumentIncludeInDownload": "false",
    "disableDocumentUpload": "false",
    "disableOtherActions": "false",
    "useAccountServerForPasswordChange": "true",
    "isCommentsParticipant": "false",
    "useAccountServerForEmailChange": "true",
    "allowEsealRecipients": "false",
    "sealIdentifiers": [],
    "agreedToComments": "false",
    "canUseSmartContracts": "false",
    "canSendEnvelopesViaSMS": "false",
    "webForms": "none",
    "allowedOrchestrationAccess": "none"
  },
  "uri": "/users/83947d26-2e69-40a5-892c-7a7a2600d530",
  "enableConnectForUser": "false",
  "__GROUP__": [
    "12580253"
  ],
  "jobTitle": "",
  "userStatus": "ActivationSent",
  "firstName": "IQNREMU",
  "sendActivationOnInvalidLogin": "false",
  "signatureImageUri": "/users/83947d26-2e69-40a5-892c-7a7a2600d530/signatures/9ca8008b-31cd-42a3-89f6-6a9ccd88f25f/signature_image",
  "userType": "CompanyUser",
  "userName": "IQNREMU_DOCUSINGTEST",
  "workAddress": {
    "address1": "",
    "address2": "",
    "city": "",
    "stateOrProvince": "",
    "postalCode": "",
    "phone": "",
    "country": ""
  },
  "initialsImageUri": "/users/83947d26-2e69-40a5-892c-7a7a2600d530/signatures/9ca8008b-31cd-42a3-89f6-6a9ccd88f25f/initials_image",
  "permissionProfileId": "",
  "lastName": "DOCUSINGTEST",
  "groupList": [
    {
      "groupId": "12580253",
      "groupName": "Everyone",
      "groupType": "everyoneGroup"
    }
  ],
  "__NAME__": "IQNREMU_DOCUSINGTEST",
  "isAdmin": "False"
}

Update a DocuSign User

Sometimes, Docusign returns a successful response with an "updated user", but this is not always the case. It is recommended to check the user with a Get operation after a modification.

After creation, a user’s email address is read-only and you cannot modify it using the connector.

Close a DocuSign User

You cannot use the DocuSign connector to delete a user from the DocuSign repository. However, you can use a DELETE request to set the userStatus attribute of the user to Closed.

The following example closes a DocuSign user:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request DELETE \
"http://localhost:8080/openidm/system/docusign/__ACCOUNT__/dc1c6940-1de7-4434-a91e-1407424cac91"
{
  "_id": "83947d26-2e69-40a5-892c-7a7a2600d530",
  "userId": "83947d26-2e69-40a5-892c-7a7a2600d530",
  "permissionProfileName": "",
  "createdDateTime": "2024-02-07T12:54:17.3000000Z",
  "email": "IQNREMU@foo.bar",
  "userSettings": {
    "canManageAccount": "false",
    ...
    "allowedOrchestrationAccess": "none"
  },
  "uri": "/users/83947d26-2e69-40a5-892c-7a7a2600d530",
  "enableConnectForUser": "false",
  "__GROUP__": [
    "12580253"
  ],
  "jobTitle": "",
  "userStatus": "Closed",
  "firstName": "IQNREMU",
  "sendActivationOnInvalidLogin": "false",
  "signatureImageUri": "/users/83947d26-2e69-40a5-892c-7a7a2600d530/signatures/9ca8008b-31cd-42a3-89f6-6a9ccd88f25f/signature_image",
  "userType": "CompanyUser",
  "userName": "IQNREMU_DOCUSINGTEST",
  "workAddress": {
    "address1": "",
    "address2": "",
    "city": "",
    "stateOrProvince": "",
    "postalCode": "",
    "phone": "",
    "country": ""
  },
  "initialsImageUri": "/users/83947d26-2e69-40a5-892c-7a7a2600d530/signatures/9ca8008b-31cd-42a3-89f6-6a9ccd88f25f/initials_image",
  "permissionProfileId": "",
  "lastName": "DOCUSINGTEST",
  "groupList": [
    {
      "groupId": "12580253",
      "groupName": "Everyone",
      "groupType": "everyoneGroup"
    }
  ],
  "__NAME__": "IQNREMU_DOCUSINGTEST",
  "isAdmin": "False"
}

A Closed account:

  • Remains in the DocuSign repository.

  • Can still be queried by its ID.

  • Cannot be updated.

GROUPS

Create a DocuSign Group

This example creates a DocuSign group:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Content-Type: application/json" \
--request POST \
--data '{
  "groupName": "testing group 4",
  "permissionProfileId": "1597"
}' \
"http://localhost:8080/openidm/system/docusign/__GROUP__?_action=create"
{
  "_id": "14756690",
  "groupName": "testing group 4",
  "usersCount": "0",
  "__NAME__": "testing group 4",
  "groupId": "14756690",
  "groupType": "customGroup",
  "permissionProfileId": "1597"
}

Get a DocuSign Group

This example gets a DocuSign Group by its ID:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/__GROUP__/14756690"
{
  "_id": "14756690",
  "groupName": "testing group 4",
  "usersCount": "0",
  "__NAME__": "testing group 4",
  "groupId": "14756690",
  "groupType": "customGroup",
  "permissionProfileId": "1597"
}

Query DocuSign Groups

This example queries all DocuSign groups:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/__GROUP__?_queryFilter=True"
{
  "result": [
    {
      "_id": "14189207",
      "groupName": "ABZAECX_docusign_group",
      "__NAME__": "ABZAECX_docusign_group",
      "groupType": "customGroup",
      "groupId": "14189207",
      "usersCount": "0"
    },
    {
      "_id": "12580252",
      "groupName": "Administrators",
      "__NAME__": "Administrators",
      "groupType": "adminGroup",
      "groupId": "12580252",
      "usersCount": "2"
    },
    ...
    {
      "_id": "14188985",
      "groupName": "AOMJYHH_docusign_group",
      "__NAME__": "AOMJYHH_docusign_group",
      "groupType": "customGroup",
      "groupId": "14188985",
       "usersCount": "0"
    }
  ],
  "resultCount": 17,
  "pagedResultsCookie": "9eoQJIWWyP",
  "totalPagedResultsPolicy": "NONE",
  "totalPagedResults": -1,
  "remainingPagedResults": -1
}

List All ID’s of DocuSign Groups

This example queries all DocuSign groups by their IDs:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/__GROUP__?_queryId=query-all-ids"
{
  "result": [
    {
      "_id": "14189207"
    },
    {
      "_id": "12580252"
    },
    ...
    {
      "_id": "14189460"
    }
  ],
  "resultCount": 17,
  "pagedResultsCookie": "9eoQJIWWyP",
  "totalPagedResultsPolicy": "NONE",
  "totalPagedResults": -1,
  "remainingPagedResults": -1
}

Update a DocuSign Group

This example updates a DocuSign Group by its ID:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Content-Type: application/json" \
--header "If-Match: *" \
--request PUT \
--data '{
  "groupName": "newGroupName",
  "permissionProfileId": "3108"
}' \
"http://localhost:8080/openidm/system/docusign/__GROUP__/14756690"
{
  "_id": "14756690",
  "groupType": "customGroup",
  "groupId": "14756690",
  "groupName": "newGroupName",
  "__NAME__": "newGroupName",
  "usersCount": "0",
  "permissionProfileId": "3108"
}

Delete a DocuSign Group

This example deletes a DocuSign Group by its ID:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request DELETE \
"http://localhost:8080/openidm/system/docusign/__GROUP__/14756690"
{
  "_id": "14756690",
  "groupType": "customGroup",
  "groupId": "14261434",
  "groupName": "newGroupName",
  "__NAME__": "newGroupName",
  "usersCount": "0",
  "permissionProfileId": "3108"
}

The response of the example is the group data before deletion.

SIGNING GROUPS

Create a DocuSign Signing Group

This example creates a DocuSign Signing Group:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Content-Type: application/json" \
--request POST \
--data '{
  "groupEmail": "example@mail.com",
  "groupType": "sharedSigningGroup",
  "groupName": "SigningGroup Name"
}' \
"http://localhost:8080/openidm/system/docusign/signingGroup?_action=create"
{
  "_id": "950719",
  "groupEmail": "example@mail.com",
  "createdBy": "Carlos Garcia",
  "created": "2024-02-25T23:54:47.0000000Z",
  "modifiedBy": "Carlos Garcia",
  "signingGroupId": "950719",
  "groupName": "SigningGroup Name",
  "groupType": "sharedSigningGroup",
  "__NAME__": "SigningGroup Name",
  "modified": "2024-02-25T23:54:47.0000000Z"
}

The only valid value for groupType is sharedSigningGroup.

Get a DocuSign Signing Group

This example gets a DocuSign Signing Group by its ID:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/signingGroup/946554"
{
  "_id": "946554",
  "createdBy": "Carlos Garcia",
  "created": "2024-02-07T15:26:28.0000000Z",
  "modifiedBy": "Carlos Garcia",
  "signingGroupId": "946554",
  "groupName": "EZGHHNE_DOCUSINGSigningGroup",
  "groupType": "sharedSigningGroup",
  "__NAME__": "EZGHHNE_DOCUSINGSigningGroup",
  "modified": "2024-02-07T15:26:28.0000000Z"
}

Query DocuSign Signing Groups

This example queries all DocuSign Signing Groups:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/signingGroup?_queryFilter=True"
{
  "result": [
    {
      "_id": "946554",
      "createdBy": "Carlos Garcia",
      "created": "2024-02-07T15:26:28.0000000Z",
      "modifiedBy": "Carlos Garcia",
      "signingGroupId": "946554",
      "groupName": "EZGHHNE_DOCUSINGSigningGroup",
      "groupType": "sharedSigningGroup",
      "__NAME__": "EZGHHNE_DOCUSINGSigningGroup",
      "modified": "2024-02-07T15:26:28.0000000Z"
    },
    {
      "_id": "946555",
      "createdBy": "Carlos Garcia",
      "created": "2024-02-07T15:26:28.0000000Z",
      "modifiedBy": "Carlos Garcia",
      "signingGroupId": "946555",
      "groupName": "LPEFDWL_DOCUSINGSigningGroup",
      "groupType": "sharedSigningGroup",
      "__NAME__": "LPEFDWL_DOCUSINGSigningGroup",
      "modified": "2024-02-07T15:26:28.0000000Z"
    },
    ...
    {
      "_id": "946556",
      "createdBy": "Carlos Garcia",
      "created": "2024-02-07T15:26:29.0000000Z",
      "modifiedBy": "Carlos Garcia",
      "signingGroupId": "946556",
      "groupName": "HQYGJAA_DOCUSINGSigningGroup",
      "groupType": "sharedSigningGroup",
      "__NAME__": "HQYGJAA_DOCUSINGSigningGroup",
      "modified": "2024-02-07T15:26:29.0000000Z"
    }
  ],
  "resultCount": 159,
  "pagedResultsCookie": "FgIJ0KDqSv",
  "totalPagedResultsPolicy": "NONE",
  "totalPagedResults": -1,
  "remainingPagedResults": -1
}

Querying a non-existent Signing Group will lead to a 409 response.

Update a DocuSign Signing Group

This example updates a DocuSign Signing Group by its ID:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Content-Type: application/json" \
--header "If-Match: *" \
--request PUT \
--data '{
  "groupEmail": "example@mail.com",
  "groupType": "sharedSigningGroup",
  "groupName": "New group name"
}' \
"http://localhost:8080/openidm/system/docusign/signingGroup/946554"
{
  "_id": "946554",
  "groupEmail": "example@mail.com",
  "createdBy": "Carlos Garcia",
  "created": "2024-02-07T15:26:28.0000000Z",
  "modifiedBy": "Carlos Garcia",
  "signingGroupId": "946554",
  "groupName": "New group name",
  "groupType": "sharedSigningGroup",
  "__NAME__": "SigningGroup Test 6 changed",
  "modified": "2024-02-26T02:21:02.0000000Z"
}

Delete a DocuSign Signing Group

This example deletes a DocuSign Signing Group by its ID:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request DELETE \
"http://localhost:8080/openidm/system/docusign/signingGroup/946554"
{
  "_id": "946554",
  "groupEmail": "example@mail.com",
  "createdBy": "Carlos Garcia",
  "created": "2024-02-07T15:26:28.0000000Z",
  "modifiedBy": "Carlos Garcia",
  "signingGroupId": "946554",
  "groupName": "New group name",
  "groupType": "sharedSigningGroup",
  "__NAME__": "SigningGroup Test 6 changed",
  "modified": "2024-02-26T02:21:02.0000000Z"
}

CONTACTS

Create a DocuSign Contact

This example creates a DocuSign Contact:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Content-Type: application/json" \
--request POST \
--data '{
  "shared": "False",
  "organization": "contact co",
  "emails": [
    "contacttesting5@mail15.com"
  ],
  "contactPhoneNumbers": [
    {
      "phoneNumber": "+12223331177",
      "phoneType": "mobile"   (1)
    },
    {
      "phoneNumber": "+12213332255",
      "phoneType": "home"  (1)
    }
  ],
  "name": "contact testing5"
}' \
"http://localhost:8080/openidm/system/docusign/contact?_action=create"
{
  "_id": "04468c26-ce0e-4484-9057-86881ed2d329",
  "shared": "False",
  "organization": "contact co",
  "contactId": "04468c26-ce0e-4484-9057-86881ed2d329",
  "__NAME__": "contact testing5",
  "emails": [
    "contacttesting5@mail15.com"
  ],
  "contactPhoneNumbers": [
    {
      "phoneNumber": "+12223331177",
      "phoneType": "mobile"
    },
    {
      "phoneNumber": "+12213332255",
      "phoneType": "home"
    }
  ],
  "name": "contact testing5"
}
1 phoneType valid values are:
  • home

  • mobile

  • work

  • other

  • fax

Get a DocuSign Contact

This example gets a DocuSign Contact by its ID:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/contact/dac27654-b3aa-4b25-b1fb-dd2b34091809"
{
  "_id": "dac27654-b3aa-4b25-b1fb-dd2b34091809",
  "shared": "False",
  "contactId": "dac27654-b3aa-4b25-b1fb-dd2b34091809",
  "__NAME__": "A_20240220153034606_DOCUSINGContact",
  "contactPhoneNumbers": [
    {
      "phoneNumber": "+122234976",
      "phoneType": "mobile"
    },
    {
      "phoneNumber": "+122564976",
      "phoneType": "home"
    }
  ],
  "organization": "contact co",
  "emails": [
    "A_20240220153034606@foo.bar"
  ],
  "name": "A_20240220153034606_DOCUSINGContact"
}

Query DocuSign Contacts

This example queries all DocuSign contacts:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/contact?_queryFilter=True"
{
  "result": [
    {
      "_id": "4702c98b-e781-4528-bf76-dcba838bdf64",
      "shared": "False",
      "contactId": "4702c98b-e781-4528-bf76-dcba838bdf64",
      "__NAME__": "A_20240219163557433_DOCUSINGContact",
      "organization": "contact co",
      "emails": [
        "A_20240219163557433@foo.bar"
      ],
      "name": "A_20240219163557433_DOCUSINGContact"
    },
    {
      "_id": "dac27654-b3aa-4b25-b1fb-dd2b34091809",
      "shared": "False",
      "contactId": "dac27654-b3aa-4b25-b1fb-dd2b34091809",
      "__NAME__": "A_20240220153034606_DOCUSINGContact",
      "organization": "contact co",
      "emails": [
        "A_20240220153034606@foo.bar"
      ],
      "name": "A_20240220153034606_DOCUSINGContact"
    },
    ...
    {
      "_id": "84d3fc99-f566-433f-b291-974e3daed207",
      "shared": "False",
      "contactId": "84d3fc99-f566-433f-b291-974e3daed207",
      "__NAME__": "A_20240220181425723_DOCUSINGContact",
      "organization": "contact co",
      "emails": [
        "A_20240220181425723@foo.bar"
      ],
      "name": "A_20240220181425723_DOCUSINGContact"
    }
  ],
  "resultCount": 20,
  "pagedResultsCookie": "Zu0tReY0z1",
  "totalPagedResultsPolicy": "NONE",
  "totalPagedResults": -1,
  "remainingPagedResults": -1
}

Update a DocuSign Contact

This example updates a DocuSign Contact by its ID:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Content-Type: application/json" \
--header "If-Match: *" \
--request PUT \
--data '{
  "shared": "False",
  "contactPhoneNumbers": [
    {
      "phoneNumber": "+122234888",
      "phoneType": "mobile"
    },
    {
      "phoneNumber": "+122564999",
      "phoneType": "home"
    }
  ],
  "organization": "New Org",
  "emails": [
    "newemail@foo.bar"
  ],
  "name": "New Contact Name"
}' \
"http://localhost:8080/openidm/system/docusign/contact/dac27654-b3aa-4b25-b1fb-dd2b34091809"
{
  "_id": "dac27654-b3aa-4b25-b1fb-dd2b34091809",
  "shared": "False",
  "contactId": "dac27654-b3aa-4b25-b1fb-dd2b34091809",
  "__NAME__": "New Contact Name",
  "contactPhoneNumbers": [
    {
      "phoneNumber": "+122234888",
      "phoneType": "mobile"
    },
    {
      "phoneNumber": "+122564999",
      "phoneType": "home"
    }
  ],
  "organization": "New Org",
  "emails": [
    "newemail@foo.bar"
  ],
  "name": "New Contact Name"
}

Delete a DocuSign Contact

This example deletes a DocuSign Contact by its ID:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request DELETE \
"http://localhost:8080/openidm/system/docusign/contact/dac27654-b3aa-4b25-b1fb-dd2b34091809"
{
  "_id": "dac27654-b3aa-4b25-b1fb-dd2b34091809",
  "shared": "False",
  "contactId": "dac27654-b3aa-4b25-b1fb-dd2b34091809",
  "__NAME__": "New Contact Name",
  "contactPhoneNumbers": [
    {
      "phoneNumber": "+122234888",
      "phoneType": "mobile"
    },
    {
      "phoneNumber": "+122564999",
      "phoneType": "home"
    }
  ],
  "organization": "New Org",
  "emails": [
    "newemail@foo.bar"
  ],
  "name": "New Contact Name"
}

PERMISSION PROFILE

Get a DocuSign Permission Profile

This example gets a DocuSign Permission Profile by its ID:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/permissionProfile/17560262"
{
  "_id": "17560262",
  "permissionProfileId": "17560262",
  "modifiedByUsername": "",
  "settings": {
    "allowAccountManagement": "false",
    "useNewDocuSignExperienceInterface": "optional",
    "canCreateWorkspaces": "true",
    "allowBulkSending": "false",
    "allowEnvelopeSending": "true",
    "allowESealRecipients": "false",
    "allowSignerAttachments": "true",
    "allowTaggingInSendAndCorrect": "true",
    "allowWetSigningOverride": "true",
    "allowedAddressBookAccess": "usePersonalAndShared",
    "allowedClickwrapsAccess": "none",
    "allowedTemplateAccess": "use",
    "enableRecipientViewingNotifications": "true",
    "enableSequentialSigningInterface": "true",
    "receiveCompletedSelfSignedDocumentsAsEmailLinks": "false",
    "signingUiVersion": "v2",
    "useNewSendingInterface": "true",
    "allowSupplementalDocuments": "true",
    "supplementalDocumentsMustView": "true",
    "supplementalDocumentsMustAccept": "true",
    "supplementalDocumentsMustRead": "true",
    "disableDocumentUpload": "false",
    "disableOtherActions": "false",
    "allowAutoTagging": "false",
    "enableKeyTermsSuggestionsByDocumentType": "false",
    "allowApiAccess": "false",
    "allowApiAccessToAccount": "false",
    "allowApiSendingOnBehalfOfOthers": "false",
    "allowApiSequentialSigning": "true",
    "enableApiRequestLogging": "false",
    "allowTransactions": "false",
    "canCreateTransaction": "false",
    "canDeleteTransaction": "false",
    "canDeleteDocumentsInTransaction": "false",
    "allowDocuSignDesktopClient": "false",
    "allowSendersToSetRecipientEmailLanguage": "true",
    "allowVaulting": "false",
    "allowedToBeEnvelopeTransferRecipient": "false",
    "enableTransactionPointIntegration": "false",
    "powerFormRole": "user",
    "allowPowerFormsAdminToAccessAllPowerFormEnvelopes": "false",
    "vaultingMode": "none",
    "canSendEnvelopesViaSMS": "true",
    "webForms": "none",
    "allowedOrchestrationAccess": "none"
  },
  "__NAME__": "DocuSign Sender",
  "permissionProfileName": "DocuSign Sender",
  "modifiedDateTime": "2023-12-22T14:38:29.6070000Z"
}

Query DocuSign Permission Profiles

This example queries all DocuSign Permission Profiles:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--request GET \
"http://localhost:8080/openidm/system/docusign/permissionProfile?_queryFilter=True"
{
  "result": [
    {
      "_id": "17560261",
      "permissionProfileId": "17560261",
      "modifiedByUsername": "",
      "__NAME__": "Account Administrator",
      "permissionProfileName": "Account Administrator",
      "modifiedDateTime": "2023-12-22T14:38:29.6030000Z"
    },
    {
      "_id": "17560262",
      "permissionProfileId": "17560262",
      "modifiedByUsername": "",
      "__NAME__": "DocuSign Sender",
      "permissionProfileName": "DocuSign Sender",
      "modifiedDateTime": "2023-12-22T14:38:29.6070000Z"
    },
    {
      "_id": "17560263",
      "permissionProfileId": "17560263",
      "modifiedByUsername": "",
      "__NAME__": "DocuSign Viewer",
      "permissionProfileName": "DocuSign Viewer",
      "modifiedDateTime": "2023-12-22T14:38:29.6100000Z"
    },
    {
      "_id": "20022036",
      "permissionProfileId": "20022036",
      "modifiedByUsername": "Carlos Garcia",
      "__NAME__": "API Admin",
      "permissionProfileName": "API Admin",
      "modifiedDateTime": "2024-02-07T15:38:03.1770000Z"
    }
  ],
  "resultCount": 4,
  "pagedResultsCookie": null,
  "totalPagedResultsPolicy": "NONE",
  "totalPagedResults": -1,
  "remainingPagedResults": -1
}

OpenICF Interfaces Implemented by the DocuSign Connector

The DocuSign Connector implements the following OpenICF interfaces. For additional details, see ICF interfaces:

Create

Creates an object and its uid.

Delete

Deletes an object, referenced by its uid.

Schema

Describes the object types, operations, and options that the connector supports.

Script on Connector

Enables an application to run a script in the context of the connector.

Any script that runs on the connector has the following characteristics:

  • The script runs in the same execution environment as the connector and has access to all the classes to which the connector has access.

  • The script has access to a connector variable that is equivalent to an initialized instance of the connector. At a minimum, the script can access the connector configuration.

  • The script has access to any script arguments passed in by the application.

Search

Searches the target resource for all objects that match the specified object class and filter.

Test

Tests the connector configuration.

Testing a configuration checks all elements of the environment that are referred to by the configuration are available. For example, the connector might make a physical connection to a host that is specified in the configuration to verify that it exists and that the credentials that are specified in the configuration are valid.

This operation might need to connect to a resource, and, as such, might take some time. Do not invoke this operation too often, such as before every provisioning operation. The test operation is not intended to check that the connector is alive (that is, that its physical connection to the resource has not timed out).

You can invoke the test operation before a connector configuration has been validated.

Update

Updates (modifies or replaces) objects on a target resource.

DocuSign Connector Configuration

The DocuSign Connector has the following configurable properties:

Basic Configuration Properties

Property Type Default Encrypted(1) Required(2)

serviceUri

String

null

Yes

The service endpoint URI.

account

String

account

Yes

Description is not available

login

String

null

Yes

The service login name.

hourRateLimit

String

null

Yes

Description is not available

burstRateLimit

String

null

Yes

Description is not available

password

GuardedString

null

Yes

No

The service user password.

authenticationMethod

String

OAUTH

Yes

Defines which method is to be used to authenticate on the remote server. Options are BASIC (username/password), OAUTH (Client id/secret) or TOKEN (static token).

tokenEndpoint

String

null

No

When using OAUTH as authentication method, this property defines the endpoint where a new access token should be queried for (https://myserver.com/oauth2/token).

clientId

String

null

Yes

The client identifier for OAuth2.

clientSecret

GuardedString

null

Yes

No

Secure client secret for OAuth2.

authToken

GuardedString

null

Yes

No

Static authentication token.

acceptSelfSignedCertificates

boolean

false

Yes

To be used for debug/test purposes. To be avoided in production.

disableHostNameVerifier

boolean

false

Yes

To be used for debug/test purposes. To be avoided in production.

disableHttpCompression

boolean

false

Yes

Content compression is enabled by default. Set this property to true to disable it.

clientCertAlias

String

null

Yes

If TLS Mutual Auth is needed, set this to the certificate alias from the keystore.

clientCertPassword

GuardedString

null

Yes

Yes

If TLS Mutual Auth is needed and the client certificate (private key) password is different from the keystore password, set this to the client private key password.

maximumConnections

Integer

10

Yes

Defines the max size of the HTTP connection pool used.

httpProxyHost

String

null

Yes

Defines the Hostname if an HTTP proxy is used between the connector and the service.

httpProxyPort

Integer

null

Yes

Defines the Port if an HTTP proxy is used between the connector and the service.

httpProxyUsername

String

null

Yes

Defines Proxy Username if an HTTP proxy is used between the connector and the service.

httpProxyPassword

GuardedString

null

Yes

Yes

Defines Proxy Password if an HTTP proxy is used between the connector and the service.

connectionTimeout

int

30

No

Defines a timeout for the underlying HTTP connection in seconds.

refreshToken

GuardedString

null

No

Used by the refresh_token grant type.

grantType

String

null

No

The OAuth2 grant type to use (client_credentials or refresh_token).

scope

String

null

No

The OAuth2 scope to use.

authorizationTokenPrefix

String

Bearer

No

The prefix to be used in the Authorization HTTP header for Token authentication.

useBasicAuthForOauthTokenNeg

boolean

true

Yes

The Authentication method for refresh token (Basic Authentication or Sending the ClientId and Client Secret in the Header).

(1) Whether the property value is considered confidential, and is therefore encrypted in IDM.

(2) A list of operations in this column indicates that the property is required for those operations.