Skip to navigation

Example extension app use cases

View as Markdown

Explore some example extension app use cases and learn how extension apps can help streamline your agreement processes.

Implementing use cases

For any of these use cases, create the appropriate extension app by specifying the corresponding extension in the extension section of the app’s manifest file. An extension is a group of actions that support a type of external functionality. See Extensions and extension points for details. In an extension app’s manifest file, the connection object defines the necessary parameters to access APIs of an external platform. Additionally, actions and capabilities represent the specific functions performed within your extension app, such as verifying an email address. These actions define the endpoints of the external platform that are called during your Docusign workflows.

To start developing an extension app based on one of these examples, you’ll need an extension app manifest. We’ve provided a sample manifest for each use case. Feel free to upload this manifest to the Developer Console immediately to experience the ease of creating an extension app.

Note: Remember to replace the sample manifest elements with your own. View the App manifest reference for a complete list of the elements in the manifest and their descriptions.

Bank account verification is an in-agreement extension that enables you to check that a bank account exists and is active. The verification is processed in real time through the signing experience in Docusign eSignature.

This extension significantly benefits financial institutions that handle the disbursement of funds to a client, or organizations that need direct debit authorization for client transactions. For example, consider a loan company, Fontara Loan, that is about to disburse a loan to a client. Fontara Loan needs to verify that a client’s bank account is valid before wiring the funds to the client. Bank account verification is crucial to ensure the loan disbursement is received by a valid bank account.

Note the properties of the connections object for this use case in the sample manifest file shown. They include authentication details like the clientId, clientSecret, and authorizationUrl, while the actions object contains the URI of the endpoint used to verify the bank account.

View the reference implementation for this extension on GitHub: Data Verification Reference Implementation.

Sample manifest
{
"name": "Bank Account Verification App",
"description": {
"short": "Bank account verification app for Fontara Loan",
"long": "This app is designed to allow employees to verify that a client's banking information is valid before loan disbursement."
},
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABFUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzq6vcAAAAWdFJOUwAQIDBAT1BfYG9wf4CPkJ+gr7/P3+/xrKm8AAADAElEQVRo3u2Z25arIAxAQSnjrYKI/v+nnlkFW60mhNB5Oat5bHEHkhBCEOIrX/kKVaRujfN+/ZVldmZQ8qPw8UE+ijf6M0rUtKyQGF08+R6mh3X8VH+Jf6jo2fzGryTxPyx85d582urqYY6qVq2dD39ODDu1O+sspjkFjGzsfkTuIuT99bFroXBsduu455nn9aVTaAy/7Ghy+E/vzio1Vsexs2Twl4EyfGDzfUX+gMW35I/ksA2lTGnz78DYO4awknsJnxCtTRl/XbuEA5ZC/rrgbpgCf2Tzf3cmwUBe8vnriqWlGKFVCR+bXs92gNkn7yGxxTyfH0JkkbgHNJtvFb4En44CnC9EyN4LkHjDMFXAFwpjWN4C9vxtCdNlSkxHcZovOtjNGjMflS9kCKQbaCFTxt8wIxhDt0J+jHUPukAW8mFOCLC5lA9bYsh2wTU/OqEDfPz2e2+y+TFQzx+6iy3YI0uC+DHcHVBM1KfsbTL5ogLCaDkdNT1Sc8J8UEH44OyVSw0I/4oE/QxqQPkZCiANOD9HwbWGBB9S4C/riQsNKX4FZOVrBWcNKb6ogZzjgBTypiHJj0nN0VLFSUOaD6aKDtxVOw0Efhw+ACemF5gGCj/mHJV14Nhj6wDlw5wQRo1IarD4tRa0xIidOJbKR2oHjRaulsgXcNkSK5oOnVmS3yCunPDS0VL4MYYMsgXh4tcS+JFxw8wHV782yY8Jx2NdDUb9froBQAV0dPPMV+ATTZSBfwunXSJlmMFS8/jVmrxEFlzEn9PDrzBu5dwSDn2aidQM6dkOSDRD4rnD0NCvxDveyNOw8dN9GjlzNGx8yh56NgXv9KagyepTZrc1a0YfNMdMz0cGT+4zvTT45LVWPdvcPqOPxWmOz3l9svF1ys9g9m13bxhjbnppDg8U+uKBwuxHdIzcOB2qrdm0qg5PLJVuzfF5x/Geov74kehxAhFULEPJg2CVWkUZPhzkFqZPSnxCpLZXj6Wj/uiLrBqMmx+B6b0z7UfhX/nK/y7/ACvsl6TSMherAAAAAElFTkSuQmCC",
"mediaType": "image/apng"
},
"screenshots": [],
"publisher": {
"name": "Fontara Loan",
"email": "fontaraloan@email.fontaraloan.com"
},
"termsOfServiceUrl": "https://www.fontaraloan.com/tos",
"privacyUrl": "https://www.fontaraloan.com/privacy",
"supportUrl": "https://www.fontaraloan.com/support",
"connections": [
{
"name": "authentication",
"description": "Secure connection to Fontara Loan proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [],
"clientId": "4af0f888-xxxx-xxxx-xxxx-586f0cb5f2b2",
"clientSecret": "6cb7023b-xxxx-xxxx-xxxx-d1c4a56d1001",
"customConfig": {
"tokenUrl": "https://example.app/api/oauth/token",
"authorizationUrl": "https://example.app/api/oauth/code",
"authorizationParams": {
"access_type": "offline",
"prompt": "consent"
},
"authorizationMethod": "header"
}
}
}
],
"extensions": [
{
"name": "Fontara Loan Bank Account Verification Extension",
"description": "Used to verify a bank account",
"template": "Verify.Version3.BankAccount",
"actionReferences": [ "Fontara Loan Bank Account Verification Action" ]
}
],
"actions": [
{
"name": "Fontara Loan Bank Account Verification Action",
"description": "Call to verify a bank account",
"template": "Verify.Version3.BankAccount",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/verify/bankAccountOwner"
}
}
],
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}

Bank account owner verification is an in-agreement extension that enables you to verify that a bank account belongs to a specific individual. The verification is processed in real time through the signing experience in Docusign eSignature.

This extension significantly benefits financial institutions that handle the disbursement of funds to a client or organizations that need direct debit authorization for client transactions. For example, consider a loan company, Fontara Loan, that is about to disburse a loan to a client. Fontara Loan needs to verify that a client’s bank account belongs to the client before wiring the funds to the client. Bank account owner verification is crucial to avoid identity theft or fraud.

Note the properties of the connections object for this use case in the sample manifest file shown. They include authentication details such as the clientId, clientSecret, and authorizationUrl, while the actions object contains the URI of the endpoint used to verify the bank account owner.

View the reference implementation for this extension on GitHub: Data Verification Reference Implementation.

Sample manifest
{
"name": "Account Owner Verification App",
"description": {
"short": "Bank account owner verification app for Fontara Loan",
"long": "This app is designed to allow employees to verify that a client's bank account belongs to the client before loan disbursement."
},
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABFUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzq6vcAAAAWdFJOUwAQIDBAT1BfYG9wf4CPkJ+gr7/P3+/xrKm8AAADAElEQVRo3u2Z25arIAxAQSnjrYKI/v+nnlkFW60mhNB5Oat5bHEHkhBCEOIrX/kKVaRujfN+/ZVldmZQ8qPw8UE+ijf6M0rUtKyQGF08+R6mh3X8VH+Jf6jo2fzGryTxPyx85d582urqYY6qVq2dD39ODDu1O+sspjkFjGzsfkTuIuT99bFroXBsduu455nn9aVTaAy/7Ghy+E/vzio1Vsexs2Twl4EyfGDzfUX+gMW35I/ksA2lTGnz78DYO4awknsJnxCtTRl/XbuEA5ZC/rrgbpgCf2Tzf3cmwUBe8vnriqWlGKFVCR+bXs92gNkn7yGxxTyfH0JkkbgHNJtvFb4En44CnC9EyN4LkHjDMFXAFwpjWN4C9vxtCdNlSkxHcZovOtjNGjMflS9kCKQbaCFTxt8wIxhDt0J+jHUPukAW8mFOCLC5lA9bYsh2wTU/OqEDfPz2e2+y+TFQzx+6iy3YI0uC+DHcHVBM1KfsbTL5ogLCaDkdNT1Sc8J8UEH44OyVSw0I/4oE/QxqQPkZCiANOD9HwbWGBB9S4C/riQsNKX4FZOVrBWcNKb6ogZzjgBTypiHJj0nN0VLFSUOaD6aKDtxVOw0Efhw+ACemF5gGCj/mHJV14Nhj6wDlw5wQRo1IarD4tRa0xIidOJbKR2oHjRaulsgXcNkSK5oOnVmS3yCunPDS0VL4MYYMsgXh4tcS+JFxw8wHV782yY8Jx2NdDUb9froBQAV0dPPMV+ATTZSBfwunXSJlmMFS8/jVmrxEFlzEn9PDrzBu5dwSDn2aidQM6dkOSDRD4rnD0NCvxDveyNOw8dN9GjlzNGx8yh56NgXv9KagyepTZrc1a0YfNMdMz0cGT+4zvTT45LVWPdvcPqOPxWmOz3l9svF1ys9g9m13bxhjbnppDg8U+uKBwuxHdIzcOB2qrdm0qg5PLJVuzfF5x/Geov74kehxAhFULEPJg2CVWkUZPhzkFqZPSnxCpLZXj6Wj/uiLrBqMmx+B6b0z7UfhX/nK/y7/ACvsl6TSMherAAAAAElFTkSuQmCC",
"mediaType": "image/apng"
},
"screenshots": [],
"publisher": {
"name": "Fontara Loan",
"email": "fontaraloan@email.fontaraloan.com"
},
"termsOfServiceUrl": "https://www.fontaraloan.com/tos",
"privacyUrl": "https://www.fontaraloan.com/privacy",
"supportUrl": "https://www.fontaraloan.com/support",
"connections": [
{
"name": "authentication",
"description": "Secure connection to Fontara Loan proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [],
"clientId": "4af0f888-xxxx-xxxx-xxxx-586f0cb5f2b2",
"clientSecret": "6cb7023b-xxxx-xxxx-xxxx-d1c4a56d1001",
"customConfig": {
"tokenUrl": "https://example.app/api/oauth/token",
"authorizationUrl": "https://example.app/api/oauth/code",
"authorizationParams": {
"access_type": "offline",
"prompt": "consent"
},
"authorizationMethod": "header"
}
}
}
],
"extensions": [
{
"name": "Fontara Loan Bank Account Owner Verification Extension",
"description": "Used to verify a bank account owner",
"template": "Verify.Version1.BankAccountOwner",
"actionReferences": [ "Fontara Loan Bank Account Verification Action" ]
}
],
"actions": [
{
"name": "Fontara Loan Bank Account Verification Action",
"description": "Call to verify a bank account owner",
"template": "Verify.Version1.BankAccountOwner",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/verify/bankAccountOwner"
}
}
],
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}

Business FEIN verification is an in-agreement extension that enables you to check that a business’s federal Employer Identification number (FEIN) is active and matches the information on record with the IRS. The verification is processed in real time through the signing experience in Docusign eSignature.

This extension significantly benefits financial institutions that handle business debit accounts and credit lines, as well as other businesses looking to facilitate professional partnerships with other businesses. For example, consider a loan company, Fontara Loan, that is about to disburse a loan to a business, Fontara Sports. Fontara Loan needs to verify that Fontara Sport’s FEIN is valid and matches the information registered with the IRS. Business FEIN verification is crucial to ensure that Fontara Loan is dealing with a legitimate and identified business entity.

Note the properties of the connections object for this use case in the sample manifest file shown. They include authentication details such as the clientId, clientSecret, and authorizationUrl, while the actions object contains the URI of the endpoint used to verify the FEIN.

View the reference implementation for this extension on GitHub: Data Verification Reference Implementation.

Sample manifest
{
"name": "Business FEIN Verification App",
"description": {
"short": "Business FEIN verification app for Fontara Loan",
"long": "This app is designed to allow employees to verify that a business's FEIN is valid before loan disbursement."
},
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABFUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzq6vcAAAAWdFJOUwAQIDBAT1BfYG9wf4CPkJ+gr7/P3+/xrKm8AAADAElEQVRo3u2Z25arIAxAQSnjrYKI/v+nnlkFW60mhNB5Oat5bHEHkhBCEOIrX/kKVaRujfN+/ZVldmZQ8qPw8UE+ijf6M0rUtKyQGF08+R6mh3X8VH+Jf6jo2fzGryTxPyx85d582urqYY6qVq2dD39ODDu1O+sspjkFjGzsfkTuIuT99bFroXBsduu455nn9aVTaAy/7Ghy+E/vzio1Vsexs2Twl4EyfGDzfUX+gMW35I/ksA2lTGnz78DYO4awknsJnxCtTRl/XbuEA5ZC/rrgbpgCf2Tzf3cmwUBe8vnriqWlGKFVCR+bXs92gNkn7yGxxTyfH0JkkbgHNJtvFb4En44CnC9EyN4LkHjDMFXAFwpjWN4C9vxtCdNlSkxHcZovOtjNGjMflS9kCKQbaCFTxt8wIxhDt0J+jHUPukAW8mFOCLC5lA9bYsh2wTU/OqEDfPz2e2+y+TFQzx+6iy3YI0uC+DHcHVBM1KfsbTL5ogLCaDkdNT1Sc8J8UEH44OyVSw0I/4oE/QxqQPkZCiANOD9HwbWGBB9S4C/riQsNKX4FZOVrBWcNKb6ogZzjgBTypiHJj0nN0VLFSUOaD6aKDtxVOw0Efhw+ACemF5gGCj/mHJV14Nhj6wDlw5wQRo1IarD4tRa0xIidOJbKR2oHjRaulsgXcNkSK5oOnVmS3yCunPDS0VL4MYYMsgXh4tcS+JFxw8wHV782yY8Jx2NdDUb9froBQAV0dPPMV+ATTZSBfwunXSJlmMFS8/jVmrxEFlzEn9PDrzBu5dwSDn2aidQM6dkOSDRD4rnD0NCvxDveyNOw8dN9GjlzNGx8yh56NgXv9KagyepTZrc1a0YfNMdMz0cGT+4zvTT45LVWPdvcPqOPxWmOz3l9svF1ys9g9m13bxhjbnppDg8U+uKBwuxHdIzcOB2qrdm0qg5PLJVuzfF5x/Geov74kehxAhFULEPJg2CVWkUZPhzkFqZPSnxCpLZXj6Wj/uiLrBqMmx+B6b0z7UfhX/nK/y7/ACvsl6TSMherAAAAAElFTkSuQmCC",
"mediaType": "image/apng"
},
"screenshots": [],
"publisher": {
"name": "Fontara Loan",
"email": "fontaraloan@email.fontaraloan.com"
},
"termsOfServiceUrl": "https://www.fontaraloan.com/tos",
"privacyUrl": "https://www.fontaraloan.com/privacy",
"supportUrl": "https://www.fontaraloan.com/support",
"connections": [
{
"name": "authentication",
"description": "Secure connection to Fontara Loan proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [],
"clientId": "4af0f888-xxxx-xxxx-xxxx-586f0cb5f2b2",
"clientSecret": "6cb7023b-xxxx-xxxx-xxxx-d1c4a56d1001",
"customConfig": {
"tokenUrl": "https://example.app/api/oauth/token",
"authorizationUrl": "https://example.app/api/oauth/code",
"authorizationParams": {
"access_type": "offline",
"prompt": "consent"
},
"authorizationMethod": "header"
}
}
}
],
"extensions": [
{
"name": "Fontara Loan Business FEIN Verification Extension",
"description": "Used to verify a business FEIN",
"template": "Verify.Version1.BusinessEntity",
"actionReferences": [ "Fontara Loan Business FEIN Verification Action" ]
}
],
"actions": [
{
"name": "Fontara Loan Business FEIN Verification Action",
"description": "Call to verify a business's FEIN",
"template": "Verify.Version1.BusinessEntity",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/verify/businessFEIN"
}
}
],
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}

Connected fields extension apps enable you to perform custom data verification for values within an eSignature envelope. The external system’s response can also provide suggested values for fields, which Docusign autofills, enabling the signer to use them if desired. The verification and autofill is processed in real-time through the signing experience in Docusign eSignature.

This extension significantly benefits companies that require accurate and verified data in agreements, such as forms, contracts, or applications. For example, consider a loan company, Fontara Loan, that processes numerous applications daily and must ensure all submitted information is correct before proceeding. Implementing automated data verification within their eSignature workflow can prevent errors, ensure compliance, and enhance efficiency by verifying inputs in real-time before the documents are finalized.

Note the properties of the connections object for this use case in the sample manifest file. They include authentication details such as the clientId, clientSecret, and authorizationUrl, while the actions object contains the URIs of the endpoints used to verify the data and obtain the models of the system of record.

View the reference implementation for this extension on GitHub: Connected Fields Reference Implementation.

Sample manifest
{
"name": "Connected Fields App",
"description": {
"short": "App for Connected Fields",
"long": "This app is designed to allow users to use connected fields extensions"
},
"termsOfServiceUrl": "www.fontaraloan.com/tos",
"privacyUrl": "www.fontaraloan.com/privacy",
"supportUrl": "www.fontaraloan.com/support",
"publisher": {
"name": "Fontara Loan",
"email": "FontaraLoan@email.fontaraloan.com",
"phone": "123-123-1234",
"website": "www.fontaraloan.com"
},
"connections": [
{
"name": "authentication",
"description": "Secure connection to the connected fields proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"clientId": "4af0f888-xxxx-xxxx-xxxx-586f0cb5f2b2",
"clientSecret": "6cb7023b-xxxx-xxxx-xxxx-d1c4a56d1001",
"scopes": [],
"customConfig": {
"authorizationMethod": "header",
"authorizationParams": {
"prompt": "consent",
"access_type": "offline"
},
"authorizationUrl": "https://example.app/api/oauth/authorize",
"requiredScopes": [],
"scopeSeparator": " ",
"tokenUrl": "https://example.app/api/oauth/token",
"refreshScopes": []
}
}
}
],
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALtSURBVHgB7duPbdQwGAXwByzACN8IjOARYAOYgG7g2wA2ipiAEa5MUDYoiRqEFeG/8Wc77vtJn9Sq0anynV/e5XIAERER0Wv0DnOy65h1fq3zG9TUtvjP+9z33wXUxFf8W3x3/j4RpEjWecL/n4BtFpAawcur/DkwDyAV7xFf/G0MSMU3xBf/CaTCbTyhYf4r8DUe5n8DgnDjYf4rEqSddJn/ClIbD/NfSUrjYf4rschffOZ/JbHGs4D5r0YQbjzf8RIzzH8FgvBJ9+d+nG8HMP9PiDWe7W+yH+vbIQZULNR4tgWX/TgD5n91FuGT7kfnWOZ/ZbHGczscz/yvSBBvPEfM/0oEaY3HZcD8ryKn8biY/5WkNp4j5n8FFumN54j5f1Ju43EZMP9PEeQ3Hhfz/wRBfuM5Yv4XKm08R8z/QqWNx2XA/C9iUd54XA+Rx+k9dwx4R/aZxnO0YNzFT93FTQnONZ6jnHuCWk/qLm5GcL7xuAzGXfwbBlOr8bhGzf/cXdxEjcZztGC8xc/dxU1YhP/p4bLSQ2MXq6vZeHrT2MWqBHUbT0+X28WCuo2np8vt4ktmpYfggrv4clnpIbjgLrZg4+mGjacjARtPNwI2nm5KvqvVYhbkE0zWeHpO7ufBggkbT88xSDdl4+k5uZ8HT9d4es+CdDbyWJdrPCNMav7P9L6lizP3Awnmed/ShYE/s2ME87xv6ab0ftCZrtR2tS10Sf7PcqW2u5L8t7hY4xmVQX7+s/FUlJv/AjaeqnLyX8DGU11q/rPxKDBIz382HgWp+W/BxqMiJf/ZeBTF8l/AxqPGIJz/AjYeVaH8Z+NpIJT/bDwN+LLd98Sw8VRkEF5kNh5lJd8HY+OpKBYzbDzKcu7CuIMn3aoM0hf/so3nLcb1IePYL+s8gqpKzf8bSEVK/rPxKDF4JY1n1HNALP8f1/kEUhPK/6mu8Yy6A37A32rYeBoRvDScOyZuPG8wPlnn8/7zDUREREQ0gT/egZVMV2HdKAAAAABJRU5ErkJggg==",
"mediaType": "image/png"
},
"screenshots": [],
"extensions": [
{
"name": "My Connected Fields Extension",
"description": "Used to verify and autofill agreements with custom data models",
"template": "ConnectedFields.Version1.ConnectedFields",
"actionReferences": [
"My Verify Action",
"My GetTypeNames Action",
"My GetTypeDefinitions Action"
]
}
],
"actions": [
{
"name": "My Verify Action",
"description": "This is a description of my verify action",
"template": "ConnectedFields.Version1.Verify",
"connectionsReference": "authentication",
"params": {
"uri": "https://third-party-url.example/api/connectedfields/verify"
}
},
{
"name": "My GetTypeNames Action",
"description": "This is a description of my GetTypeNames action",
"template": "DataIO.Version6.GetTypeNames",
"connectionsReference": "authentication",
"params": {
"uri": "https://third-party-url.example/api/connectedfields/getTypeNames"
}
},
{
"name": "My GetTypeDefinitions Action",
"description": "This is a description of my GetTypeDefinitions action",
"template": "DataIO.Version6.GetTypeDefinitions",
"connectionsReference": "authentication",
"params": {
"uri": "https://third-party-url.example/api/connectedfields/getTypeDefinitions"
}
}
],
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}

The data IO extension offers valuable functionality for data management and analytics. This extension can significantly benefit companies that handle and maintain large amounts of data for business intelligence and analytics purposes, CRM systems, or research and development purposes. Data IO enables automatic updates and efficient data retrieval of an organization’s record systems, removing the need for organizations to manually sync the data changes done during the Docusign signing process and enabling organizations to populate document fields with pre-existing customer data.

For this use case, Fontara CRM offers a CRM solution that customers use to manage their customer relationships. They want to make it easy for their customers who also use Docusign to get the data out of and back into their CRM system of record to streamline agreement processes, significantly enhancing the efficiency and effectiveness of their day-to-day operations.

The actions of the data IO extension are as follows:

  • GetTypeNames: This action integrates with the record system to read the types in the record system. The types are then used to get specific records from the system of record, and then read, create, and update records via this extension. The action parameter is empty because the action returns all of the types in which the create, update, and read actions are supported by the record system.
  • GetTypeDefinitions: This action retrieves all the possible type properties in the record system’s objects. This example will return all the properties in the active, inactive, and leads objects. Your existing schemas should be converted into Concerto’s JSON data model format. See Data model for more information on mapping your definitions to Concerto types.
  • CreateRecord: This action creates a record in the record system. This example will create a new record for a client, John Doe.
  • PatchRecord: This action updates a record in the record system. This example will update a client’s email address.
  • SearchRecords: This action searches for a record in the record system. This example will search for a lead with the name Jane Smith.

This use case and sample manifest demonstrate the input and output operations of a data IO extension app. You also have the option to execute the data input operation individually. See the Data IO extension contract reference for a complete list of each action’s parameters and examples of response stubs.

View the reference implementation for this extension on GitHub: Data IO Reference Implementation.

Sample manifest
{
"name": "Fontara CRM Data IO App",
"description": {
"short": "App for Fontara CRM Data IO",
"long": "This app is designed to automate data IO procedures for Fontara CRM's product."
},
"icon": {
"data": "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",
"mediaType": "image/apng"
},
"screenshots": [],
"publisher": {
"name": "Fontara CRM",
"email": "FontaraCRM@email.fontaracrm.com",
"phone": "123-123-1234",
"website": "www.fontaracrm.com"
},
"termsOfServiceUrl": "www.fontaracrm.com/tos",
"privacyUrl": "www.fontaracrm.com/privacy",
"supportUrl": "www.fontaracrm.com/support",
"connections": [
{
"name": "authentication",
"description": "Secure connection to Fontara CRM proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [],
"clientId": "4af0f888-xxxx-xxxx-xxxx-586f0cb5f2b2",
"clientSecret": "6cb7023b-xxxx-xxxx-xxxx-d1c4a56d1001",
"customConfig": {
"tokenUrl": "https://example.app/api/oauth/token",
"authorizationUrl": "https://example.app/api/oauth/authorize",
"authorizationParams": {
"access_type": "offline",
"prompt": "consent"
},
"authorizationMethod": "header",
"scopeSeparator": " ",
"requiredScopes": []
}
}
}
],
"extensions": [
{
"name": "Fontara CRM Data IO Extension",
"description": "Used in data IO app",
"template": "DataIO.Version6.DataInputOutput",
"actionReferences": ["GetTypeNames Action",
"GetTypeDefinitions Action",
"CreateRecord Action",
"PatchRecord Action",
"SearchRecords Action"]
}
],
"actions": [
{
"name": "CreateRecord Action",
"description": "Used to create records in data IO app",
"template": "DataIO.Version6.CreateRecord",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/dataio/createRecord"
}
},
{
"name": "PatchRecord Action",
"description": "Used to update an existing record in data IO app",
"template": "DataIO.Version6.PatchRecord",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/dataio/patchRecord"
}
},
{
"name": "SearchRecords Action",
"description": "Used to search for one or more records in data IO app",
"template": "DataIO.Version6.SearchRecords",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/dataio/searchRecords"
}
},
{
"name": "GetTypeNames Action",
"description": "Used to retrieve types in record system in data IO app",
"template": "DataIO.Version6.GetTypeNames",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/dataio/getTypeNames"
}
},
{
"name": "GetTypeDefinitions Action",
"description": "Used to retrieve properties of types in data IO app",
"template": "DataIO.Version6.GetTypeDefinitions",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/dataio/getTypeDefinitions"
}
}
],
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}

Email address verification is an in-agreement extension that enables you to check that an email address is valid. The verification is processed in real time through Docusign eSignature or Web Forms.

This extension significantly benefits any organization that relies on email delivery to communicate important information to their clients or employees. For example, consider a loan company, Fontara Loan, that is about to send copies of financial documents to a client. Fontara Loan needs to verify that a client’s email address is valid to ensure that the client receives their documents. Email address verification helps ensure that the email containing the documents does not bounce and arrives at its intended destination.

Note the properties of the connections object for this use case in the sample manifest file shown. They include authentication details such as the clientId, clientSecret, and authorizationUrl, while the actions object contains the URI of the endpoint used to verify the email address.

View the reference implementation for this extension on GitHub: Data Verification Reference Implementation.

Sample manifest
{
"name": "Email Verification App",
"description": {
"short": "Email address verification app for Fontara Loan",
"long": "This app is designed to enable employees to verify that a client's email address is valid before sending documents."
},
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABFUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzq6vcAAAAWdFJOUwAQIDBAT1BfYG9wf4CPkJ+gr7/P3+/xrKm8AAADAElEQVRo3u2Z25arIAxAQSnjrYKI/v+nnlkFW60mhNB5Oat5bHEHkhBCEOIrX/kKVaRujfN+/ZVldmZQ8qPw8UE+ijf6M0rUtKyQGF08+R6mh3X8VH+Jf6jo2fzGryTxPyx85d582urqYY6qVq2dD39ODDu1O+sspjkFjGzsfkTuIuT99bFroXBsduu455nn9aVTaAy/7Ghy+E/vzio1Vsexs2Twl4EyfGDzfUX+gMW35I/ksA2lTGnz78DYO4awknsJnxCtTRl/XbuEA5ZC/rrgbpgCf2Tzf3cmwUBe8vnriqWlGKFVCR+bXs92gNkn7yGxxTyfH0JkkbgHNJtvFb4En44CnC9EyN4LkHjDMFXAFwpjWN4C9vxtCdNlSkxHcZovOtjNGjMflS9kCKQbaCFTxt8wIxhDt0J+jHUPukAW8mFOCLC5lA9bYsh2wTU/OqEDfPz2e2+y+TFQzx+6iy3YI0uC+DHcHVBM1KfsbTL5ogLCaDkdNT1Sc8J8UEH44OyVSw0I/4oE/QxqQPkZCiANOD9HwbWGBB9S4C/riQsNKX4FZOVrBWcNKb6ogZzjgBTypiHJj0nN0VLFSUOaD6aKDtxVOw0Efhw+ACemF5gGCj/mHJV14Nhj6wDlw5wQRo1IarD4tRa0xIidOJbKR2oHjRaulsgXcNkSK5oOnVmS3yCunPDS0VL4MYYMsgXh4tcS+JFxw8wHV782yY8Jx2NdDUb9froBQAV0dPPMV+ATTZSBfwunXSJlmMFS8/jVmrxEFlzEn9PDrzBu5dwSDn2aidQM6dkOSDRD4rnD0NCvxDveyNOw8dN9GjlzNGx8yh56NgXv9KagyepTZrc1a0YfNMdMz0cGT+4zvTT45LVWPdvcPqOPxWmOz3l9svF1ys9g9m13bxhjbnppDg8U+uKBwuxHdIzcOB2qrdm0qg5PLJVuzfF5x/Geov74kehxAhFULEPJg2CVWkUZPhzkFqZPSnxCpLZXj6Wj/uiLrBqMmx+B6b0z7UfhX/nK/y7/ACvsl6TSMherAAAAAElFTkSuQmCC",
"mediaType": "image/apng"
},
"screenshots": [],
"publisher": {
"name": "Fontara Loan",
"email": "fontaraloan@email.fontaraloan.com"
},
"termsOfServiceUrl": "https://www.fontaraloan.com/tos",
"privacyUrl": "https://www.fontaraloan.com/privacy",
"supportUrl": "https://www.fontaraloan.com/support",
"connections": [
{
"name": "authentication",
"description": "Secure connection to Fontara Loan proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [],
"clientId": "4af0f888-xxxx-xxxx-xxxx-586f0cb5f2b2",
"clientSecret": "6cb7023b-xxxx-xxxx-xxxx-d1c4a56d1001",
"customConfig": {
"tokenUrl": "https://example.app/api/oauth/token",
"authorizationUrl": "https://example.app/api/oauth/code",
"authorizationParams": {
"access_type": "offline",
"prompt": "consent"
},
"authorizationMethod": "header"
}
}
}
],
"extensions": [
{
"name": "Fontara Loan Email Address Verification Extension",
"description": "Used to verify an email address",
"template": "Verify.Version1.Email",
"actionReferences": [ "Fontara Loan Email Address Verification Action" ]
}
],
"actions": [
{
"name": "Fontara Loan Email Address Verification Action",
"description": "Call to verify an email address",
"template": "Verify.Version1.Email",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/verify/email"
}
}
],
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}

The file input cloud storage extension imports agreements from a cloud storage platform into Docusign Agreement Manager, which uses AI to extract agreement data so that users can easily find, manage, and report on agreements.

This extension can help organizations efficiently manage large agreement libraries and reduce the amount of time users spend to locate and process documents. For example, a municipal government agency can leverage a file input from cloud storage extension app to move collective bargaining agreements, grant applications, meeting minutes, and other documents to the Navigator repository. After Navigator’s AI processing is complete, municipal workers can quickly find documents to fulfill information requests. They can also use Navigator to manage contract obligations, such as payments and renewals.

The connections object in the sample manifest defines authorization parameters that enable Docusign to obtain permission to access endpoints on the external system.

The actions object contains the URIs of endpoints used to retrieve drive, folder, and file information from the cloud storage system and import files into Navigator. For a file input cloud storage extension, the Get File, List Directory Contents, and Search actions are required. The List Drives capability is optional. See File input cloud storage extension overview for details.

View the reference implementation for this extension on GitHub: File Input Cloud Storage Reference Implementation

Sample manifest
{
"name": "File Input Cloud storage",
"description": {
"short": "This is a sample short description.",
"long": "This is a sample long description."
},
"termsOfServiceUrl": "https://www.fontara.com/tos",
"privacyUrl": "https://www.fontara.com/privacy-security",
"supportUrl": "https://www.fontara.com/support",
"publisher": {
"name": "Fontara",
"email": "support@fontara.com"
},
"connections": [
{
"name": "authentication",
"description": "Secure connection to sample extension app",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"clientId": "[omitted]",
"clientSecret": "[omitted]",
"scopes": [],
"grantType": "client_credentials",
"customConfig": {
"authorizationMethod": "header",
"authorizationParams": {},
"requiredScopes": [],
"scopeSeparator": " ",
"tokenUrl": "https://fontara.com/api/oauth/token",
"refreshScopes": []
}
}
}
],
"icon": {
"data": "iVBORw…uQmCC",
"mediaType": "image/png"
},
"screenshots": [],
"extensions": [
{
"name": "File Input Cloud Storage",
"description": "Used to import files from cloud storage",
"template": "FileIO.Version1.FileInputCloudStorage",
"actionReferences": [
"list-directory-contents",
"list-drives",
"get-file",
"search"
],
"capabilities": [
"FileIO.Version1.ListDrives"
]
}
],
"actions": [
{
"name": "list-directory-contents",
"description": "This is a description of my list directory contents action",
"template": "FileIO.Version1.ListDirectoryContents",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontara.com/api/listdirectorycontents"
}
},
{
"name": "list-drives",
"description": "This is a description of my list drives action",
"template": "FileIO.Version1.ListDrives",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontara.com/api/listdrives"
}
},
{
"name": "get-file",
"description": "This is a description of my get file action",
"template": "FileIO.Version1.GetFile",
"contractType": "action-with-callback",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontara.com/api/getfile"
}
},
{
"name": "search",
"description": "This is a description of my search action",
"template": "FileIO.Version1.Search",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontara.com/api/search"
}
}
],
"signupUrl": "https://www.fontara.com/signup",
"publicationRegions": [
"US"
],
"distribution": "PRIVATE"
}

The file input system of record extension can be invoked from workflows to import documents from an external system of record.

This extension can help organizations streamline agreement workflows by reducing the time spent locating and processing documents before sending them for signature. For example, a financial services company manages loan agreements that require multiple supporting documents, such as a pre-approval loan estimate, customer identification, and compliance disclosures. These documents are often stored across multiple systems, including a CRM and an internal document management system.

Without automation, loan officers must manually locate and upload these files before sending agreements. This process is time-consuming, error-prone, and can result in missing or inaccurate documents.

By integrating the file input system of record extension into the loan application workflow, document retrieval becomes automated, eliminating manual uploads and ensuring all required documents are consistently included.

The connections object in the sample manifest defines authorization parameters that enable Docusign to obtain permission to access endpoints on the external system.

The actions object contains the URIs of endpoints used in file output processing. See Extensions and actions for details.

Sample manifest
{
"name": "File Input System of Record",
"description": {
"short": "This is a sample short description.",
"long": "This is a sample long description."
},
"termsOfServiceUrl": "https://www.fontara.com/tos",
"privacyUrl": "https://www.fontara.com/privacy-security",
"supportUrl": "https://www.fontara.com/support",
"publisher": {
"name": "Fontara",
"email": "support@fontara.com"
},
"connections": [
{
"name": "authentication",
"description": "Secure connection to sample extension app",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [],
"grantType": "client_credentials",
"clientId": "[omitted]",
"clientSecret": "[omitted]",
"customConfig": {
"authorizationMethod": "header",
"authorizationParams": {},
"requiredScopes": [],
"scopeSeparator": " ",
"tokenUrl": "https://fontara.com/api/oauth/token",
"refreshScopes": []
}
}
}
],
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADcSURBVHgB7dwxCsMwEADBc8j/v+zUgTRJZNY2M6ULF1oOhECaAQAAAAAA7m778G0fjvS25o8hJUBMgJgAMQFi23xvX/ivK1uyDiYgJkBMgJgAMQFizzm/f8+mTr07MwExAWICxASICRC7wi7o1mdMJiAmQEyAmAAxAWICxASICRATICZATICYADEBYgLEBIgJEBMgJkBMgJgAMQFiAsQEiAkQEyAmQEyAmAAxAWICxASICRATICZATICYADEBYgLEBIitvCfsxd0fmICYADEBYgLEBAAAAAAAADjYCwxUBYWYirDwAAAAAElFTkSuQmCC",
"mediaType": "image/png"
},
"screenshots": [],
"extensions": [
{
"name": "File Input System of Record Extension",
"description": "Used to import files from a system of record",
"template": "FileIO.Version1.FileInputSystemOfRecord",
"actionReferences": [
"get-files"
]
}
],
"actions": [
{
"name": "get-files",
"description": "This is a description of my get files action.",
"template": "FileIO.Version1.GetFiles",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontara.com/api/getfiles"
}
}
],
"signupUrl": "https://www.fontara.com/signup",
"publicationRegions": [
"US"
],
"distribution": "PRIVATE"
}

File output to cloud storage extension apps enable you to write files to external cloud storage providers.

This extension significantly benefits companies that handle substantial amounts of electronic documents such as forms, spreadsheets, emails, or applications. For example, consider a loan company, Fontara Loan, that receives numerous applications daily and needs the files uploaded to a drive. Automating this process upon application submission can significantly enhance the efficiency and effectiveness of their day-to-day operations.

Note the properties of the connections object for this use case in the sample manifest file shown. They include authorization details such as the clientId, clientSecret, and authorizationUrl, while the actions object contains the URIs of the endpoints used to retrieve the available drives and folders on the cloud storage system and store the document.

Note: For a file output cloud storage extension, only the Write File action is required.The List Drives and List Directory Contents capabilities are optional. See File output cloud storage extension overview for details.

View the reference implementation for this extension on GitHub: File Output Cloud Storage Reference Implementation

Sample manifest
{
"name": "File Output Cloud Storage",
"description": {
"short": "This is a sample short description",
"long": "This is a sample long description"
},
"publisher": {
"name": "Fontara",
"email": "sampleemail@fontara.com"
},
"termsOfServiceUrl": "https://www.fontara.com/tos",
"privacyUrl": "https://www.fontara.com/privacy-security",
"supportUrl": "https://www.fontara.com/support",
"icon": {
"data": "54ba2e...097bf1=",
"mediaType": "image/png"
},
"signupUrl": "https://www.fontara.com/signup",
"changelog": "",
"publicationRegions": [
"US"
],
"distribution": "PUBLIC",
"connections": [
{
"name": "authentication",
"description": "Secure connection to sample extension app",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"clientId": "[omitted]",
"clientSecret": "[omitted]",
"scopes": [],
"grantType": "authorization_code",
"customConfig": {
"authorizationMethod": "header",
"authorizationParams": {
"prompt": "consent",
"access_type": "offline"
},
"authorizationUrl": "https://www.fontara.com/api/oauth/authorize",
"requiredScopes": [],
"scopeSeparator": " ",
"tokenUrl": "https://www.fontara.com/api/oauth/token",
"refreshScopes": []
}
}
}
],
"extensions": [
{
"name": "File Output Cloud Storage",
"description": "Used to store files to cloud storage",
"template": "FileIO.Version1.FileOutputCloudStorage",
"actionReferences": [
"write-file",
"list-drives",
"list-directory-contents"
],
"capabilities": [
"FileIO.Version1.ListDirectoryContents",
"FileIO.Version1.ListDrives"
]
}
],
"actions": [
{
"name": "write-file",
"description": "This is a description of my write file action",
"template": "FileIO.Version1.WriteFile",
"connectionsReference": "authentication",
"params": {
"uri": "https://www.fontara.com/api/writefile"
}
},
{
"name": "list-drives",
"description": "This is a description of my list drives action",
"template": "FileIO.Version1.ListDrives",
"connectionsReference": "authentication",
"params": {
"uri": "https://www.fontara.com/api/listdrives"
}
},
{
"name": "list-directory-contents",
"description": "This is a description of my list directory contents action",
"template": "FileIO.Version1.ListDirectoryContents",
"connectionsReference": "authentication",
"params": {
"uri": "https://www.fontara.com/api/listdirectorycontents"
}
}
],
"screenshots": [
{
"data": "VBERi0...VPRgo=",
"mediaType": "image/png"
}
]
}

The file output system of record extension can be invoked from workflows to automatically write completed agreements to a system of record.

This extension is useful for organizations that require agreements to be retrievable by applications that access the system of record. For example, an asset management company can create a Maestro workflow that walks customers through the process of authorizing electronic funds transfer (EFT) for their accounts. The process typically requires completing and signing an authorization form. By incorporating the file output system of record extension into the workflow, the asset manager can implement a seamless EFT authorization process that automates storage of the signed form in the system of record.

Provided here are two versions of an example app manifest file. The first version can be used with workflows that use a workflow variable value to identify the record to write to. This manifest includes the extension’s Get Type Names capability. The second version can be used if the workflow includes a data IO extension Read from step that returns the ID of the record to write to. See Identify destination records for information about the two record identification methods.

The connections object in the sample manifests defines authorization parameters that enable Docusign to obtain permission to access endpoints on the external system.

The actions object contains the URIs of endpoints used in file output processing. See Extensions and actions for details.

View the reference implementation for this extension on GitHub: File Output System of Record Reference Implementation

{
"name": "File Output System of Record",
"description": {
"short": "This is a sample manifest with the Get Type Names capability.",
"long": "This is a sample long description."
},
"termsOfServiceUrl": "https://www.fontara.com/tos",
"privacyUrl": "https://www.fontara.com/privacy-security",
"supportUrl": "https://www.fontara.com/support",
"publisher": {
"name": "Fontara",
"email": "support@fontara.com"
},
"connections": [
{
"name": "authentication",
"description": "Secure connection to sample extension app",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [
],
"grantType": "authorization_code",
"clientId": "[omitted]",
"clientSecret": "[omitted]",
"customConfig": {
"authorizationMethod": "header",
"authorizationParams": {
"prompt": "consent",
"access_type": "offline"
},
"authorizationUrl": "https://fontara.com/api/oauth/authorize",
"requiredScopes": [
],
"scopeSeparator": " ",
"tokenUrl": "https://fontara.com/api/oauth/token",
"refreshScopes": [
]
}
}
}
],
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADcSURBVHgB7dwxCsMwEADBc8j/v+zUgTRJZNY2M6ULF1oOhECaAQAAAAAA7m778G0fjvS25o8hJUBMgJgAMQFi23xvX/ivK1uyDiYgJkBMgJgAMQFizzm/f8+mTr07MwExAWICxASICRC7wi7o1mdMJiAmQEyAmAAxAWICxASICRATICZATICYADEBYgLEBIgJEBMgJkBMgJgAMQFiAsQEiAkQEyAmQEyAmAAxAWICxASICRATICZATICYADEBYgLEBIitvCfsxd0fmICYADEBYgLEBAAAAAAAADjYCwxUBYWYirDwAAAAAElFTkSuQmCC",
"mediaType": "image/png"
},
"screenshots": [
],
"extensions": [
{
"name": "File Output System of Record",
"description": "Write a file to the system of record",
"template": "FileIO.Version1.FileOutputSystemOfRecord",
"actionReferences": [
"write-file",
"get-type-names"
],
"capabilities": [
"DataIO.Version6.GetTypeNames"
]
}
],
"actions": [
{
"name": "get-type-names",
"description": "Get a list of data source objects",
"template": "DataIO.Version6.GetTypeNames",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontara.com/api/dataio/getTypeNames"
}
},
{
"name": "write-file",
"description": "Write a file to the system of record",
"template": "FileIO.Version1.WriteFile",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontara.com/api/writefile"
}
}
],
"signupUrl": "https://www.fontara.com/signup",
"publicationRegions": [
"US"
],
"distribution": "PRIVATE"
}

File output to tabular format extension apps enable you to export the values of workflow variables to tabular format files such as spreadsheets or .CSV files.

This extension significantly benefits organizations who need to store data from repeated workflows for compliance purposes. For example, an employer in the United Kingdom who needs to verify employees’ right to work in compliance with the UK’s Right to Work laws, may need to store proof of this verification for auditing purposes. Instead of manually verifying each employee’s identity documents, then manually entering that information into a spreadsheet, the employer can kick off a workflow to verify the employee’s ID, collect additional information, and automatically store that information in a spreadsheet that serves as a single source of truth.

Note the properties of the connections object for this use case in the sample manifest file shown. They include authorization details such as the clientId, clientSecret, and authorizationUrl, while the actions object contains the URIs of the endpoints used to retrieve the available drives and tabular format files on the cloud storage system and export the variables from the workflow.

Note: For a file output tabular format extension, only the Export to Destination action and List Headers action are required.The List Drives and List Directory Contents capabilities are optional. See File output tabular format extension overview for details.

View the reference implementation for this extension on GitHub: File output tabular format reference implementation

Sample manifest
{
"name": "File Output Tabular Format",
"description": {
"short": "App for exporting data to a tabular format",
"long": "This app is designed to allow users to export data to tabular format files"
},
"icon": {
"data": "iVBORw0…Jggg==",
"mediaType": "image/png"
},
"screenshots": [],
"publisher": {
"name": "Fontara",
"email": "sampleemail@fontara.com",
},
"termsOfServiceUrl": "https://www.fontara.com/tos",
"privacyUrl": "https://www.fontara.com/privacy-security",
"supportUrl": "https://www.fontara.com/support",
"connections": [
{
"name": "authentication",
"description": "secure connection to the fileOutputTabularFormat proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [],
"clientId": "[omitted]",
"clientSecret": "[omitted]",
"customConfig": {
"profile": {
"url": "https://www.fontara.com/api/oauth/userinfo",
"httpMethod": "GET",
"idKey": "sub",
"emailKey": "email"
},
"tokenUrl": "https://www.fontara.com/api/oauth/token",
"authorizationUrl": "https://www.fontara.com/api/oauth/authorize",
"authorizationParams": {
"access_type": "offline",
"prompt": "consent"
},
"authorizationMethod": "header",
"scopeSeparator": " ",
"requiredScopes": []
}
}
}
],
"extensions": [
{
"name": "File Output Tabular Format",
"description": "export tabular data to cloud storage",
"template": "FileIO.Version1.FileOutputTabularFormat",
"actionReferences": [
"list-headers",
"export-to-destination",
"list-directory-contents",
"list-drives"
],
"capabilities": [
"FileIO.Version1.ListDirectoryContents",
"FileIO.Version1.ListDrives"
]
}
],
"actions": [
{
"name": "list-headers",
"description": "This is a description of my list headers action",
"template": "FileIO.Version1.ListHeaders",
"connectionsReference": "authentication",
"params": {
"uri": "https://www.fontara.com/api/listHeaders"
}
},
{
"name": "export-to-destination",
"description": "This is a description of my export to destination action",
"template": "FileIO.Version1.ExportToDestination",
"connectionsReference": "authentication",
"params": {
"uri": "https://www.fontara.com/api/exportToDestination"
}
},
{
"name": "list-directory-contents",
"description": "This is a description of my list directory contents action",
"template": "FileIO.Version1.ListDirectoryContents",
"connectionsReference": "authentication",
"params": {
"uri": "https://www.fontara.com/api/fileIOListDirectoryContents"
}
},
{
"name": "list-drives",
"description": "This is a description of my list sites drives container contents action",
"template": "FileIO.Version1.ListDrives",
"connectionsReference": "authentication",
"params": {
"uri": "https://www.fontara.com/api/fileIOListdrives"
}
}
],
"signupUrl": "https://www.fontara.com/signup",
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}

To provide more than one feature in a single extension app, you can include the extensions that support each feature. In this sample manifest, the data IO and data verification extensions enable you to verify user-entered data against a system of record and update it with the verified data.

This type of dual-purpose extension app is especially valuable for organizations that process large data volumes and need reliable verification. For example, a loan company like Fontara Loan can use an extension app to automatically populate client applications with data from their system of record (input), verify the user-submitted information against their records, and then update their system of record with the verified information (output). This reduces manual effort, minimizes errors, and ensures accurate, consistent records across their systems.

This is just one example of how a multi-extension app can be configured. You can use other combinations of extensions to meet specific business needs. See Supported extensions for a list of extensions.

Note the properties of the connections object in the sample manifest file. It includes authentication parameters such as clientId, clientSecret, and authorizationUrl. In this example, all extensions refer to the same connection, since a manifest can only contain a single connections object. The extensions object lists each extension explicitly, and each extension entry identifies the actions it uses. The actions are defined in the actions object, which specifies the endpoint URIs for verifying, reading, and writing data.

View the reference implementation on GitHub: Data IO and Data Verification Reference Implementation.

Sample manifest
{
"name": "Loan Data IO and Verification",
"description": {
"short": "App for Fontara Loan data IO and verification",
"long": "This app is designed to automate data IO and verification tasks for Fontara Loan."
},
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABFUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzq6vcAAAAWdFJOUwAQIDBAT1BfYG9wf4CPkJ+gr7/P3+/xrKm8AAADAElEQVRo3u2Z25arIAxAQSnjrYKI/v+nnlkFW60mhNB5Oat5bHEHkhBCEOIrX/kKVaRujfN+/ZVldmZQ8qPw8UE+ijf6M0rUtKyQGF08+R6mh3X8VH+Jf6jo2fzGryTxPyx85d582urqYY6qVq2dD39ODDu1O+sspjkFjGzsfkTuIuT99bFroXBsduu455nn9aVTaAy/7Ghy+E/vzio1Vsexs2Twl4EyfGDzfUX+gMW35I/ksA2lTGnz78DYO4awknsJnxCtTRl/XbuEA5ZC/rrgbpgCf2Tzf3cmwUBe8vnriqWlGKFVCR+bXs92gNkn7yGxxTyfH0JkkbgHNJtvFb4En44CnC9EyN4LkHjDMFXAFwpjWN4C9vxtCdNlSkxHcZovOtjNGjMflS9kCKQbaCFTxt8wIxhDt0J+jHUPukAW8mFOCLC5lA9bYsh2wTU/OqEDfPz2e2+y+TFQzx+6iy3YI0uC+DHcHVBM1KfsbTL5ogLCaDkdNT1Sc8J8UEH44OyVSw0I/4oE/QxqQPkZCiANOD9HwbWGBB9S4C/riQsNKX4FZOVrBWcNKb6ogZzjgBTypiHJj0nN0VLFSUOaD6aKDtxVOw0Efhw+ACemF5gGCj/mHJV14Nhj6wDlw5wQRo1IarD4tRa0xIidOJbKR2oHjRaulsgXcNkSK5oOnVmS3yCunPDS0VL4MYYMsgXh4tcS+JFxw8wHV782yY8Jx2NdDUb9froBQAV0dPPMV+ATTZSBfwunXSJlmMFS8/jVmrxEFlzEn9PDrzBu5dwSDn2aidQM6dkOSDRD4rnD0NCvxDveyNOw8dN9GjlzNGx8yh56NgXv9KagyepTZrc1a0YfNMdMz0cGT+4zvTT45LVWPdvcPqOPxWmOz3l9svF1ys9g9m13bxhjbnppDg8U+uKBwuxHdIzcOB2qrdm0qg5PLJVuzfF5x/Geov74kehxAhFULEPJg2CVWkUZPhzkFqZPSnxCpLZXj6Wj/uiLrBqMmx+B6b0z7UfhX/nK/y7/ACvsl6TSMherAAAAAElFTkSuQmCC",
"mediaType": "image/png"
},
"screenshots": [],
"publisher": {
"name": "Fontara Loan",
"email": "fontaraloan@fontaraloan.com",
"phone": "234-234-1234",
"website": "www.fontaraloan.com"
},
"termsOfServiceUrl": "www.fontaraloan.com/tos",
"privacyUrl": "www.fontaraloan.com/privacy",
"supportUrl": "www.fontaraloan.com/support",
"connections": [
{
"name": "authentication",
"description": "secure connection to the Fontara Loan proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [],
"clientId": "4af0f888-xxxx-xxxx-xxxx-586f0cb5f2b2",
"clientSecret": "6cb7023b-xxxx-xxxx-xxxx-d1c4a56d1001",
"customConfig": {
"tokenUrl": "https://fontaraloan.com/api/oauth/token",
"authorizationUrl": "https://fontaraloan.com/api/oauth/authorize",
"authorizationParams": {
"access_type": "offline",
"prompt": "consent"
},
"authorizationMethod": "header",
"scopeSeparator": " ",
"requiredScopes": []
}
}
}
],
"extensions": [
{
"name": "Fontara Loan Data IO Extension",
"description": "used in data io flow",
"template": "DataIO.Version6.DataInputOutput",
"actionReferences": [
"GetTypeNames Action",
"GetTypeDefinitions Action",
"SearchRecords Action",
"PatchRecord Action",
"CreateRecord Action"
]
},
{
"name": "Fontara Loan Email Verification Extension",
"description": "Verify email",
"template": "Verify.Version1.Email",
"actionReferences": ["Fontara Loan Email Verification Action"]
},
{
"name": "Fontara Loan Phone Verification Extension",
"description": "Verify phone number",
"template": "Verify.Version1.PhoneNumber",
"actionReferences": ["Fontara Loan Phone Verification Action"]
},
{
"name": "Fontara Loan Postal Address Verification Extension",
"description": "Verify postal address",
"template": "Verify.Version1.PostalAddress",
"actionReferences": [
"postal-address-verify",
"postal-address-suggestion"
]
},
{
"name": "Fontara Loan SSN Verification Extension",
"description": "Verify SSN",
"template": "Verify.Version2.SocialSecurityNumber",
"actionReferences": ["Fontara Loan SSN Verification Action"]
}
],
"actions": [
{
"name": "GetTypeNames Action",
"description": "Used to retrieve types",
"template": "DataIO.Version6.GetTypeNames",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontaraloan.com/api/dataio/getTypeNames"
}
},
{
"name": "GetTypeDefinitions Action",
"description": "Used to retrieve properties of types",
"template": "DataIO.Version6.GetTypeDefinitions",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontaraloan.com/api/dataio/getTypeDefinitions"
}
},
{
"name": "CreateRecord Action",
"description": "Used to create records",
"template": "DataIO.Version6.CreateRecord",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontaraloan.com/api/dataio/createRecord"
}
},
{
"name": "SearchRecords Action",
"description": "Used to search for one or more records",
"template": "DataIO.Version6.SearchRecords",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontaraloan.com/api/dataio/searchRecords"
}
},
{
"name": "PatchRecord Action",
"description": "Used to update an existing record",
"template": "DataIO.Version6.PatchRecord",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontaraloan.com/api/dataio/patchRecord"
}
},
{
"name": "Fontara Loan Email Verification Action",
"description": "Verify email with a proxy",
"template": "Verify.Version1.Email",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontaraloan.com/api/verify/email"
}
},
{
"name": "Fontara Loan Phone Verification Action",
"description": "Verify phone number with a proxy",
"template": "Verify.Version1.PhoneNumber",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontaraloan.com/api/verify/phone"
}
},
{
"name": "postal-address-verify",
"description": "Verify postal address with a proxy",
"template": "Verify.Version1.PostalAddress",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontaraloan.com/api/verify/postalAddress"
}
},
{
"name": "postal-address-suggestion",
"description": "Provide typeahead suggestions and verify postal address with a proxy",
"template": "Typeahead.Version1.PostalAddress",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontaraloan.com/api/verify/typeaheadAddress"
}
},
{
"name": "Fontara Loan SSN Verification Action",
"description": "Verify SSN with a proxy",
"template": "Verify.Version2.SocialSecurityNumber",
"connectionsReference": "authentication",
"params": {
"uri": "https://fontaraloan.com/api/verify/ssn"
}
}
],
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}

Phone number verification is an in-agreement extension that enables you to check that a phone number exists, is active, and belongs to a specific individual. The verification is processed in real time through Docusign eSignature or Web Forms.

This extension provides a security benefit to organizations as it helps reduce the creation of fake or duplicate accounts. For example, consider a loan company, Fontara Loan, that would like to add a two-factor security feature for logins, transactions, and transfers. Phone number verification adds a secondary layer of security to ensure account access and activities are legitimate. Phone number verification can significantly benefit financial institutions, e-commerce platforms, and other organizations that require user accounts.

Note the properties of the connections object for this use case in the sample manifest file shown. They include authentication details such as the clientId, clientSecret, and authorizationUrl, while the actions object contains the URI of the endpoint used to verify the phone number.

View the reference implementation for this extension on GitHub: Data Verification Reference Implementation.

Sample manifest
{
"name": "Phone Number Verification App",
"description": {
"short": "Phone number verification app for Fontara Loan",
"long": "This app is designed to allow employees to verify that a client's phone number is valid."
},
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABFUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzq6vcAAAAWdFJOUwAQIDBAT1BfYG9wf4CPkJ+gr7/P3+/xrKm8AAADAElEQVRo3u2Z25arIAxAQSnjrYKI/v+nnlkFW60mhNB5Oat5bHEHkhBCEOIrX/kKVaRujfN+/ZVldmZQ8qPw8UE+ijf6M0rUtKyQGF08+R6mh3X8VH+Jf6jo2fzGryTxPyx85d582urqYY6qVq2dD39ODDu1O+sspjkFjGzsfkTuIuT99bFroXBsduu455nn9aVTaAy/7Ghy+E/vzio1Vsexs2Twl4EyfGDzfUX+gMW35I/ksA2lTGnz78DYO4awknsJnxCtTRl/XbuEA5ZC/rrgbpgCf2Tzf3cmwUBe8vnriqWlGKFVCR+bXs92gNkn7yGxxTyfH0JkkbgHNJtvFb4En44CnC9EyN4LkHjDMFXAFwpjWN4C9vxtCdNlSkxHcZovOtjNGjMflS9kCKQbaCFTxt8wIxhDt0J+jHUPukAW8mFOCLC5lA9bYsh2wTU/OqEDfPz2e2+y+TFQzx+6iy3YI0uC+DHcHVBM1KfsbTL5ogLCaDkdNT1Sc8J8UEH44OyVSw0I/4oE/QxqQPkZCiANOD9HwbWGBB9S4C/riQsNKX4FZOVrBWcNKb6ogZzjgBTypiHJj0nN0VLFSUOaD6aKDtxVOw0Efhw+ACemF5gGCj/mHJV14Nhj6wDlw5wQRo1IarD4tRa0xIidOJbKR2oHjRaulsgXcNkSK5oOnVmS3yCunPDS0VL4MYYMsgXh4tcS+JFxw8wHV782yY8Jx2NdDUb9froBQAV0dPPMV+ATTZSBfwunXSJlmMFS8/jVmrxEFlzEn9PDrzBu5dwSDn2aidQM6dkOSDRD4rnD0NCvxDveyNOw8dN9GjlzNGx8yh56NgXv9KagyepTZrc1a0YfNMdMz0cGT+4zvTT45LVWPdvcPqOPxWmOz3l9svF1ys9g9m13bxhjbnppDg8U+uKBwuxHdIzcOB2qrdm0qg5PLJVuzfF5x/Geov74kehxAhFULEPJg2CVWkUZPhzkFqZPSnxCpLZXj6Wj/uiLrBqMmx+B6b0z7UfhX/nK/y7/ACvsl6TSMherAAAAAElFTkSuQmCC",
"mediaType": "image/apng"
},
"screenshots": [],
"publisher": {
"name": "Fontara Loan",
"email": "fontaraloan@email.fontaraloan.com"
},
"termsOfServiceUrl": "https://www.fontaraloan.com/tos",
"privacyUrl": "https://www.fontaraloan.com/privacy",
"supportUrl": "https://www.fontaraloan.com/support",
"connections": [
{
"name": "authentication",
"description": "Secure connection to Fontara Loan proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [],
"clientId": "4af0f888-xxxx-xxxx-xxxx-586f0cb5f2b2",
"clientSecret": "6cb7023b-xxxx-xxxx-xxxx-d1c4a56d1001",
"customConfig": {
"tokenUrl": "https://example.app/api/oauth/token",
"authorizationUrl": "https://example.app/api/oauth/code",
"authorizationParams": {
"access_type": "offline",
"prompt": "consent"
},
"authorizationMethod": "header"
}
}
}
],
"extensions": [
{
"name": "Fontara Loan Phone Number Verification Extension",
"description": "Used to verify a phone number",
"template": "Verify.Version1.PhoneNumber",
"actionReferences": [ "Fontara Loan Phone Number Verification Action" ]
}
],
"actions": [
{
"name": "Fontara Loan Phone Number Verification Action",
"description": "Call to verify a phone number",
"template": "Verify.Version1.PhoneNumber",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/verify/phone"
}
}
],
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}

Postal address verification is an in-agreement extension that enables you to check that a postal address is valid and formatted correctly. The verification is processed in real time through the signing experience in Docusign eSignature.

This extension significantly benefits organizations, as it helps decrease record inaccuracies and improve data quality. For example, consider an e-commerce company, Fontara Shirts, that regularly ships products to their customers. Postal address verification and formatting enable Fontara Shirts to ensure their product arrives at the correct address with no shipping delays. Postal address verification can significantly benefit financial institutions, e-commerce platforms, and other organizations that require mailing addresses.

Note the properties of the connections object for this use case in the sample manifest file shown. They include authentication details such as the clientId, clientSecret and authorizationUrl, while the actions object contains the two required actions for the extension: Verify.Version1.PostalAddress, which verifies the address, and Typeahead.Version1.PostalAddress, which returns a list of suggested addresses in the correct format. Both actions contain the URI of the endpoint used to verify the address.

View the reference implementation for this extension on GitHub: Data Verification Reference Implementation.

Sample manifest
{
"name": "Address Verification App",
"description": {
"short": "Postal address verification app for Fontara Shirts",
"long": "This app is designed to allow employees to verify that a customer's postal address is valid."
},
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABFUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzq6vcAAAAWdFJOUwAQIDBAT1BfYG9wf4CPkJ+gr7/P3+/xrKm8AAADAElEQVRo3u2Z25arIAxAQSnjrYKI/v+nnlkFW60mhNB5Oat5bHEHkhBCEOIrX/kKVaRujfN+/ZVldmZQ8qPw8UE+ijf6M0rUtKyQGF08+R6mh3X8VH+Jf6jo2fzGryTxPyx85d582urqYY6qVq2dD39ODDu1O+sspjkFjGzsfkTuIuT99bFroXBsduu455nn9aVTaAy/7Ghy+E/vzio1Vsexs2Twl4EyfGDzfUX+gMW35I/ksA2lTGnz78DYO4awknsJnxCtTRl/XbuEA5ZC/rrgbpgCf2Tzf3cmwUBe8vnriqWlGKFVCR+bXs92gNkn7yGxxTyfH0JkkbgHNJtvFb4En44CnC9EyN4LkHjDMFXAFwpjWN4C9vxtCdNlSkxHcZovOtjNGjMflS9kCKQbaCFTxt8wIxhDt0J+jHUPukAW8mFOCLC5lA9bYsh2wTU/OqEDfPz2e2+y+TFQzx+6iy3YI0uC+DHcHVBM1KfsbTL5ogLCaDkdNT1Sc8J8UEH44OyVSw0I/4oE/QxqQPkZCiANOD9HwbWGBB9S4C/riQsNKX4FZOVrBWcNKb6ogZzjgBTypiHJj0nN0VLFSUOaD6aKDtxVOw0Efhw+ACemF5gGCj/mHJV14Nhj6wDlw5wQRo1IarD4tRa0xIidOJbKR2oHjRaulsgXcNkSK5oOnVmS3yCunPDS0VL4MYYMsgXh4tcS+JFxw8wHV782yY8Jx2NdDUb9froBQAV0dPPMV+ATTZSBfwunXSJlmMFS8/jVmrxEFlzEn9PDrzBu5dwSDn2aidQM6dkOSDRD4rnD0NCvxDveyNOw8dN9GjlzNGx8yh56NgXv9KagyepTZrc1a0YfNMdMz0cGT+4zvTT45LVWPdvcPqOPxWmOz3l9svF1ys9g9m13bxhjbnppDg8U+uKBwuxHdIzcOB2qrdm0qg5PLJVuzfF5x/Geov74kehxAhFULEPJg2CVWkUZPhzkFqZPSnxCpLZXj6Wj/uiLrBqMmx+B6b0z7UfhX/nK/y7/ACvsl6TSMherAAAAAElFTkSuQmCC",
"mediaType": "image/apng"
},
"screenshots": [],
"publisher": {
"name": "Fontara Shirts",
"email": "FontaraShirts@email.fontarashirts.com"
},
"termsOfServiceUrl": "https://www.FontaraShirts.com/tos",
"privacyUrl": "https://www.FontaraShirts.com/privacy",
"supportUrl": "https://www.FontaraShirts.com/support",
"connections": [
{
"name": "authentication",
"description": "Secure connection to Fontara Shirts proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [],
"clientId": "4af0f888-xxxx-xxxx-xxxx-586f0cb5f2b2",
"clientSecret": "6cb7023b-xxxx-xxxx-xxxx-d1c4a56d1001",
"customConfig": {
"tokenUrl": "https://example.app/api/oauth/token",
"authorizationUrl": "https://example.app/api/oauth/code",
"authorizationParams": {
"access_type": "offline",
"prompt": "consent"
},
"authorizationMethod": "header"
}
}
}
],
"extensions": [
{
"name": "Fontara Shirts Postal Address Verification Extension",
"description": "Used to verify a postal address",
"template": "Verify.Version1.PostalAddress",
"actionReferences": [ "postal-address-verify",
"postal-address-suggestion" ]
}
],
"actions": [
{
"name": "postal-address-verify",
"description": "Call to verify a postal address",
"template": "Verify.Version1.PostalAddress",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/verify/typeaheadAddress"
}
},
{
"name": "postal-address-suggestion",
"description": "Call to format a postal address",
"template": "Typeahead.Version1.PostalAddress",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/verify/typeaheadAddress"
}
}
],
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}

Social Security number verification is an in-agreement extension that enables you to check that a Social Security number is valid and verify an individual’s identity. The verification is processed in real time through the signing experience in Docusign eSignature.

This extension significantly benefits financial institutions that handle loans and lines of credit for individuals, as it allows the institution to verify the identity of the individual prior to doing business with them. For example, consider a loan company, Fontara Loan, that has received an application for a line of credit from John Doe. Fontara Loan needs to verify John Doe’s Social Security number belongs to him before granting him the line of credit. Social Security number verification is crucial to avoiding identity theft or fraud, as well as evaluating creditworthiness to make an informed lending decision.

Note the properties of the connections object for this use case in the sample manifest file shown. They include authentication details like the clientId, clientSecret, and authorizationUrl, while the actions object contains the URI of the endpoint used to verify the Social Security number.

View the reference implementation for this extension on GitHub: Data Verification Reference Implementation.

Sample manifest
{
"name": "SSN Verification App",
"description": {
"short": "Social Security number verification app for Fontara Loan",
"long": "This app is designed to allow employees to verify a client's Social Security number before loan disbursement."
},
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABFUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzq6vcAAAAWdFJOUwAQIDBAT1BfYG9wf4CPkJ+gr7/P3+/xrKm8AAADAElEQVRo3u2Z25arIAxAQSnjrYKI/v+nnlkFW60mhNB5Oat5bHEHkhBCEOIrX/kKVaRujfN+/ZVldmZQ8qPw8UE+ijf6M0rUtKyQGF08+R6mh3X8VH+Jf6jo2fzGryTxPyx85d582urqYY6qVq2dD39ODDu1O+sspjkFjGzsfkTuIuT99bFroXBsduu455nn9aVTaAy/7Ghy+E/vzio1Vsexs2Twl4EyfGDzfUX+gMW35I/ksA2lTGnz78DYO4awknsJnxCtTRl/XbuEA5ZC/rrgbpgCf2Tzf3cmwUBe8vnriqWlGKFVCR+bXs92gNkn7yGxxTyfH0JkkbgHNJtvFb4En44CnC9EyN4LkHjDMFXAFwpjWN4C9vxtCdNlSkxHcZovOtjNGjMflS9kCKQbaCFTxt8wIxhDt0J+jHUPukAW8mFOCLC5lA9bYsh2wTU/OqEDfPz2e2+y+TFQzx+6iy3YI0uC+DHcHVBM1KfsbTL5ogLCaDkdNT1Sc8J8UEH44OyVSw0I/4oE/QxqQPkZCiANOD9HwbWGBB9S4C/riQsNKX4FZOVrBWcNKb6ogZzjgBTypiHJj0nN0VLFSUOaD6aKDtxVOw0Efhw+ACemF5gGCj/mHJV14Nhj6wDlw5wQRo1IarD4tRa0xIidOJbKR2oHjRaulsgXcNkSK5oOnVmS3yCunPDS0VL4MYYMsgXh4tcS+JFxw8wHV782yY8Jx2NdDUb9froBQAV0dPPMV+ATTZSBfwunXSJlmMFS8/jVmrxEFlzEn9PDrzBu5dwSDn2aidQM6dkOSDRD4rnD0NCvxDveyNOw8dN9GjlzNGx8yh56NgXv9KagyepTZrc1a0YfNMdMz0cGT+4zvTT45LVWPdvcPqOPxWmOz3l9svF1ys9g9m13bxhjbnppDg8U+uKBwuxHdIzcOB2qrdm0qg5PLJVuzfF5x/Geov74kehxAhFULEPJg2CVWkUZPhzkFqZPSnxCpLZXj6Wj/uiLrBqMmx+B6b0z7UfhX/nK/y7/ACvsl6TSMherAAAAAElFTkSuQmCC",
"mediaType": "image/apng"
},
"screenshots": [],
"publisher": {
"name": "Fontara Loan",
"email": "FontaraLoan@email.fontaraloan.com"
},
"termsOfServiceUrl": "https://www.fontaraloan.com/tos",
"privacyUrl": "https://www.fontaraloan.com/privacy",
"supportUrl": "https://www.fontaraloan.com/support",
"connections": [
{
"name": "authentication",
"description": "Secure connection to Fontara Loan proxy",
"type": "oauth2",
"params": {
"provider": "CUSTOM",
"scopes": [],
"clientId": "4af0f888-xxxx-xxxx-xxxx-586f0cb5f2b2",
"clientSecret": "6cb7023b-xxxx-xxxx-xxxx-d1c4a56d1001",
"customConfig": {
"tokenUrl": "https://example.app/api/oauth/token",
"authorizationUrl": "https://example.app/api/oauth/code",
"authorizationParams": {
"access_type": "offline",
"prompt": "consent"
},
"authorizationMethod": "header"
}
}
}
],
"extensions": [
{
"name": "Fontara Loan Social Security Number Verification Extension",
"description": "Used to verify a Social Security number",
"template": "Verify.Version2.SocialSecurityNumber",
"actionReferences": [ "Fontara Loan Social Security Number Verification Action" ]
}
],
"actions": [
{
"name": "Fontara Loan Social Security Number Verification Action",
"description": "Call to verify a Social Security number",
"template": "Verify.Version2.SocialSecurityNumber",
"connectionsReference": "authentication",
"params": {
"uri": "https://example.app/api/verify/ssn"
}
}
],
"publicationRegions": [
"US"
],
"distribution": "PUBLIC"
}

Next steps