How to create a NDA

What is a Non-Disclosure Agreement?

A Non-Disclosure Agreement (also known as NDA) can be used to disclose confidential information to a recipient in order to serve a purpose. For example, an employer might need to disclose confidential information about its business during the hiring process.

How to create a NDA?

To create a Non-Disclosure Agreement, you'll need to:

  • Create or identify the team where you'd like to create the NDA
  • Retrieve the contract fields of the latest NDA template
  • Create a contract and provide values for the contract fields
  • Add the collaborators
  • Sign the contract

๐Ÿ“˜

Steps for creating a Contract

The steps for creating a contract are for illustrative purposes. Some steps can be skipped if you already have the IDs or performed in a different order if you prefer.

Creating a team

Contracts are created in teams. A User can create a new Team or select an existing. In this guide we will create a "New Team for my NDA" with the create team endpoint:

curl --request POST \
     --url https://sandbox.legislate.tech/v1/users/{{userId}}/teams \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer {{APIkey}} \
     --header 'Content-Type: application/json' \
     --data '
{
     "name": "New Team for my NDA"
}
'

A successful 204 response will return the new team ID.

{
  "id": {{teamId}},
  "name": "New Team for my NDA",
  "created": "2022-06-12 12:45:52.871+0000",
  "_links": {
    "self": {
      "href": "https://sandbox.legislate.tech/v1/teams/{{teamId}}"
    }
  }
}

Fetching the contract fields of the NDA

The NDA is a public contract and we will retrieve the ID of the NDA by fetching the list of contracts which can be created in the new team. To do this, we will use the get contracts endpoint which requires the team ID as the parameter:

curl --request GET \
     --url https://sandbox.legislate.tech/v1/teams/{{teamId}}/contract-types \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer {{APIKey}}'

The successful 204 response will return the list of contracts which can be created in the team, including the NDA:

[
  {
    "id": 5938261218295808,
    "name": "Non-Disclosure Agreement",
    "links": [
      {
        "rel": "self",
        "href": "http://legislate-sandbox.ew.r.appspot.com/v1/teams/6753931778588813/contract-types/5938261218295808"
      },
      {
        "rel": "templates",
        "href": "http://legislate-sandbox.ew.r.appspot.com/v1/teams/6753931778588813/contract-types/5938261218295808/templates"
      }
    ],
    "about_url": "https://help.legislate.tech/en/articles/5963822-the-non-disclosure-agreement"
  }
 
]

Now that we have the ID of the NDA we need to retrieve the latest template of the NDA using the get templates endpoint:

curl --request GET \
     --url https://sandbox.legislate.tech/v1/teams/{{teamId}}/contract-types/{{contractTypeId}}/templates \
     --header 'Accept: application/json' \
		 --header 'Authorization: Bearer {{APIKey}}'

Now that we have the latest template Id, we can fetch the fields of the NDA using the get contract fields endpoint which takes the template Id as a parameter:

curl --request GET \
     --url https://sandbox.legislate.tech/v1/templates/{{templateId}}/terms \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer {{APIKey}}'

The response will list the NDA's contract terms:

[
  {
    "id": 3009,
    "label": "Name",
    "name": "contract_name",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/3009"
      }
    ]
  },
  {
    "id": 3010,
    "label": "Please specify the purpose of the Agreement",
    "name": "contract_purpose",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/3010"
      }
    ]
  },
  {
    "id": 3011,
    "label": "Coverage",
    "name": "contract_coverage",
    "options": [
      {
        "value": "mutual"
      },
      {
        "value": "one way"
      }
    ],
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/3011"
      }
    ]
  },
  {
    "id": 3012,
    "label": "Please specify the Confidentiality Term",
    "name": "contract_confidentialityTerm",
    "options": [
      {
        "value": "2"
      },
      {
        "value": "3"
      },
      {
        "value": "4"
      },
      {
        "value": "5"
      },
      {
        "value": "6"
      },
      {
        "value": "7"
      },
      {
        "value": "8"
      },
      {
        "value": "9"
      },
      {
        "value": "10"
      }
    ],
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/3012"
      }
    ]
  },
  {
    "id": 3013,
    "label": "Effective Date",
    "name": "contract_startDate",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/3013"
      }
    ]
  },
  {
    "id": 3014,
    "label": "Would the contract creator like to upload their logo to the agreement?",
    "name": "contract_logo",
    "options": [
      {
        "value": "logoYes",
        "nestedFields": [
          {
            "id": 3015,
            "label": "Please upload the logo",
            "name": "contract_logoDetails",
            "links": [
              {
                "rel": "self",
                "href": "https://sandbox.legislate.tech/v1/terms/3015"
              }
            ]
          }
        ]
      },
      {
        "value": "logoNo"
      }
    ],
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/3014"
      }
    ]
  }
]

๐Ÿ“˜

Contract field labels

The label of a field can be used to present questions to users to help them provide values.

Creating a contract object and setting the terms of the NDA

A contract can be created on its own or part of an existing bundle of contracts. Creating a new contract will add it automatically to its own bundle.

The values of the fields can be provided at this stage or at a later step.

curl --request POST \
     --url https://sandbox.legislate.tech/v1/teams/{{teamId}}/contracts \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer {{APIKey}}' \
     --header 'Content-Type: application/json' \
     --data '
{
     "fields": [
          {
               "id": 3009,
               "name": "contract_name",
               "value": "New NDA"
          },
          {
               "id": 3010,
               "name": "contract_purpose",
               "value": "to discuss a potential partnership"
          },
          {
               "id": 3011,
               "name": "contract_coverage",
               "value": "mutual"
          },
          {
               "id": 3012,
               "name": "contract_confidentialityTerm",
               "value": "3"
          },
          {
               "name": "contract_startDate",
               "id": 3013,
               "value": "12/06/2022"
          },
          {
               "id": 3014,
               "name": "contract_logo",
               "value": "logoNo"
          }
     ],
     "template_id": {{templateId}},
     "created_by_user_id": {{UserId}}
}
'