LawVu Contracts (1.0)

Download OpenAPI specification:Download

Apis for contract resources

ContractFiles

Upload file

Add or update a file in a contract.

The body of the request must be content-type 'multipart/form-data' and contain the file data.

To update the contract document: Only specify the 'parentFileId' parameter. The 'folderId' and 'conflictResolution' parameters should not be used for these updates

Request
path Parameters
contractId
required
integer <int32>

Format - int32. The id of the contract

query Parameters
comments
string or null

Comments to be added to the file

parentFileId
integer or null <int32>

Format - int32. Creates a new version for the specified parent file id

folderId
integer or null <int32>

Format - int32. The id of the folder to upload the file within

conflictResolution
string or null

Defines behaviour for when a file conflict is found

Options:

  • Replace
  • KeepBoth
  • SaveVersion
  • Skip

Enum: "Replace" "KeepBoth" "SaveVersion" "Skip"
Request Body schema: multipart/form-data
file
string
Responses
201

The id of the created file

204

When the file was skipped due to conflict resolution setting

post/v1/contracts/{contractId}/files
Response samples
null

Contracts

Create contract by upload

Creates a new contract, with the main contract file being sent in the body of the request

Request
Request Body schema: multipart/form-data
ContractTemplateId
integer
MatterId
integer
ParentContractId
integer
Fields
string
Name
string
ExternalId
string
TeamId
integer
ContractFile
string
Responses
200

Success

post/v1/contracts
Request samples
multipart/form-data
{
  "contractTemplateId": 1,
  "matterId": 321,
  "parentContractId": 123,
  "fields": "{\"field_1\":\"field 1\",\"field_2\":123,\"field_3\":[\"yes\"],\"field_4\":true}",
  "name": "Test Contract",
  "externalId": "123",
  "teamId": null,
  "contractFile": null
}
Response samples
null

Get contracts

Gets contracts filtered by single or multiple fields.
To filter by one field: "filtering.field", "filtering.operator" and "filtering.value" parameters must be filled.
To filter by multiple fields: "filtering.logic" and "filtering.filters" parameters must be filled.

Request
query Parameters
skip
integer <int32>

Format - int32. The number of contracts to skip (used for paging)

fields
Array of strings or null

Fields to include in the response

filtering.logic
string or null

Gets or sets the filtering logic for filters. Value by default is 'and'

Options:

  • and
  • or

Enum: "and" "or"
Array of objects (FilteringArray)

Array of filters object (optional)
Object Properties:

  • Field: field to filter by
  • Operator: operator used to filter by
  • Value: value to filter by
filtering.field
string or null

Field to filter by (optional)

filtering.operator
string

Operator used for filtering (optional)

Options:

  • eq
  • neq
  • lt
  • lte
  • gt
  • gte
  • startswith
  • endswith
  • contains
  • doesnotcon
  • isnull

Enum: "eq" "neq" "lt" "lte" "gt" "gte" "startswith" "endswith" "contains" "doesnotcon" "isnull"
filtering.value
string or null

Value to filter by (optional)

sorting.direction
string

Set the sorting direction

Options:

  • asc
  • desc

Enum: "asc" "desc"
sorting.field
string or null

Set the sorting fields

take
integer <int32>
Default: 50

Format - int32. The maximum number of contracts to return

Default: 50

context
string
Default: "Personal"

Controls the scope of contracts returned by this operation

Default: Personal

Options:

  • All - Returns all contracts regardless of whether the authenticated user is a member. Requires the authenticated user to be a member of the Contract Administrators security group
  • Personal - Returns contracts which the authenticated user is a member of. Equivalent to the "My contracts" view in LawVu
  • Teams - Returns all contracts that are accessible by teams that the authenticated user is a member of
  • Restricted - Returns restricted contracts. Requires the authenticated user to be an Organization Administrator

Enum: "All" "Personal" "Teams" "Restricted"
Responses
200

Success

get/v1/contracts
Response samples
{
  "data": [
    {
      "restricted": false,
      "$id": 123,
      "name": "Example contract",
      "onContract": true
    }
  ],
  "total": 1
}

Find contracts

Quickly find and filter contracts

Request
query Parameters
term
string or null

A term to search contracts by

take
integer or null <int32>

Format - int32. The number of contracts to return (maximum: 100, default: 20)

Responses
200

Success

get/v1/contracts/quickfind
Response samples
null

Recent contracts

Returns recently viewed (ref:take) contracts for the user

Request
query Parameters
take
integer <int32>
Default: 5

Format - int32. The number of recently viewed contracts to return

Default: 5

Responses
200

Success

get/v1/contracts/recent
Response samples
[
  {
    "id": 95,
    "title": "My Contract",
    "description": "Contract ID: 95",
    "name": "My Contract",
    "matterNumber": "LV1234-0012",
    "contractStatus": "Draft",
    "ownerId": "08FD1ED1-627E-4CB9-8388-731227584D21",
    "lastActivityDateUtc": "2023-12-15T08:30:00.0000000+00:00"
  },
  {
    "id": 789,
    "title": "Another Contract",
    "description": "Contract ID: 789",
    "name": "Another Contract",
    "matterNumber": null,
    "contractStatus": "Void",
    "ownerId": "BE17D7D6-721A-4F6D-B081-CAABB6D8F5B9",
    "lastActivityDateUtc": "2024-01-12T10:00:00.0000000+00:00"
  },
  {
    "id": 684,
    "title": "Different Contract",
    "description": "Contract ID: 684",
    "name": "Different Contract",
    "matterNumber": null,
    "contractStatus": "Executed",
    "ownerId": "BE17D7D6-721A-4F6D-B081-CAABB6D8F5B9",
    "lastActivityDateUtc": "2023-12-10T03:30:00.0000000+00:00"
  }
]

ExternalId lookup

ExternalId lookup

Request
path Parameters
externalId
required
string or null

The externalId to lookup

Responses
200

Success

get/v1/contracts/externalid/{externalId}
Response samples
null

Update contract

Update contract

Request
path Parameters
contractId
required
integer <int32>

Format - int32. The Id of the contract

Request Body schema:

The update request (in jsonpatch format)

Array
value
object or null
path
string or null
op
string or null
from
string or null
Responses
200

Success

patch/v1/contracts/{contractId}
Request samples
[
  • {
    }
]

Get contract

Get contract details by contract id

Request
path Parameters
contractId
required
integer <int32>

Format - int32. The Id of the contract

Responses
200

Success

get/v1/contracts/{contractId}
Response samples
null

Get contract fields

Get contract fields by contract id

Request
path Parameters
contractId
required
integer <int32>

Format - int32. The Id of the contract

Responses
200

Success

get/v1/contracts/{contractId}/fields
Response samples
{
  "detailFields": {
    "schema": {
      "properties": {
        "field_1": {
          "fieldId": 1,
          "title": "An example field name",
          "description": "Example field description",
          "lawvuType": 7,
          "isReadOnly": false,
          "type": "boolean",
          "label": ""
        }
      },
      "order": [
        "field_1"
      ],
      "required": [
        "field_1"
      ]
    },
    "model": {
      "field_1": true
    }
  },
  "coreFields": {
    "schema": null,
    "model": null
  }
}

Update fields

Update fields

Request
path Parameters
contractId
required
integer <int32>

Format - int32. The Id of the contract

Request Body schema:

The update request (in jsonpatch format)

Array
value
object or null
path
string or null
op
string or null
from
string or null
Responses
200

Success

patch/v1/contracts/{contractId}/fields
Request samples
{
  • "value": "new value",
  • "path": "/field_string",
  • "op": "replace"
}

Create contract

Creates a new contract, using the contract template wizard

Request
Request Body schema:

Details of the contract to be created

contractTemplateId
required
integer <int32>

The template for the category

matterId
integer or null <int32>

Optionally set the parent matter id

parentContractId
integer or null <int32>

Optionally set the parent contract id

fields
string or null

The fields (from contract template) for the contract

name
required
string

The contract name

externalId
string or null

Optionally set an ID from an external system. Uniqueness is enforced for your organisation

teamId
integer or null <int32>

Assigns a team to the contract. This can be required [ref: contractTemplate: TeamRequired]

contractFile
string or null <binary>
Responses
200

Success

post/v1/contracts/wizard
Request samples
{
  • "contractTemplateId": 1,
  • "matterId": 321,
  • "parentContractId": 123,
  • "fields": "{\"field_1\":\"field 1\",\"field_2\":123,\"field_3\":[\"yes\"],\"field_4\":true}",
  • "name": "Test Contract",
  • "externalId": "123",
  • "teamId": null,
  • "contractFile": null
}
Response samples
null

Contract entities

Gets contract entities (other parties)

Responses
200

Success

get/v1/contracts/entities
Response samples
[
  {
    "id": 1,
    "name": "Entity 1"
  },
  {
    "id": 2,
    "name": "Entity 2"
  }
]

Create contract entity

Creates a contract entity

Request
Request Body schema:
string or null
Responses
200

Success

post/v1/contracts/entities
Request samples
"string"
Response samples
null

ContractTemplates

Get contract templates

Gets a list of contract templates

Responses
200

Success

get/v1/contractsTemplates
Response samples
{
  "Parent 1": [
    {
      "id": 1,
      "name": "Template 1",
      "hasWizard": false,
      "team": null,
      "teamRequired": false,
      "hasRules": false
    },
    {
      "id": 2,
      "name": "Template 2",
      "hasWizard": false,
      "team": null,
      "teamRequired": false,
      "hasRules": false
    }
  ],
  "Parent 2": [
    {
      "id": 3,
      "name": "Template 3",
      "hasWizard": false,
      "team": null,
      "teamRequired": false,
      "hasRules": false
    }
  ]
}

Get upload schema

Gets the schema for creating a new contract from file upload

Request
path Parameters
templateId
required
integer <int32>

Format - int32. The ID of the contract template

Responses
200

Success

get/v1/contractsTemplates/{templateId}/uploadSchema

ContractStatusMessage

Add a status message to a contract

Add status message to a contract

Request
path Parameters
contractId
required
integer <int32>

Format - int32. The Id of the contract

Request Body schema:

The status message to add

statusMessage
required
string
Responses
204

Success

post/v1/contracts/{contractId}/statusMessages
Request samples
{
  • "StatusMessage": "Test status message"
}

ContractUser

Add user to a contract

Adds a user to a contract as a member

Request
path Parameters
contractId
required
integer <int32>

Format - int32. The ID of the contract

Request Body schema:

The ID of the user to add into a contract

userId
required
string
Responses
204

Success

post/v1/contracts/{contractId}/users
Request samples
{
  • "UserId": "User id test"
}

Get contract users

Returns the users that are assigned to the contract

Request
path Parameters
contractId
required
integer <int32>

Format - int32. The contract id

query Parameters
skip
integer <int32>

Format - int32. The number of results to skip

filtering.field
string or null

Field to filter by (optional)

filtering.operator
string

Operator used for filtering (optional)

Options:

  • eq
  • neq
  • lt
  • lte
  • gt
  • gte
  • startswith
  • endswith
  • contains
  • doesnotcon
  • isnull

Enum: "eq" "neq" "lt" "lte" "gt" "gte" "startswith" "endswith" "contains" "doesnotcon" "isnull"
filtering.value
string or null

Value to filter by (optional)

sorting.direction
string

Set the sorting direction

Options:

  • asc
  • desc

Enum: "asc" "desc"
sorting.field
string or null

Set the sorting fields

take
integer <int32>
Default: 50

Format - int32. The maximum number of contract users to return

Default: 50

Responses
200

Success

get/v1/contracts/{contractId}/users
Response samples
null

ContractKeyDate

Get contract key dates

Returns a list of contract key dates

Request
path Parameters
contractId
required
integer <int32>

Format - int32. The contract id

Responses
200

Success

get/v1/contracts/{contractId}/keyDates
Response samples
[
  {
    "id": 1,
    "date": "2020-01-01",
    "name": "Key date 1",
    "value": 1
  },
  {
    "id": 2,
    "date": "2020-01-02",
    "name": "Key date 2",
    "value": 2
  }
]