LawVu Contracts (1.0)

Apis for contract resources

Languages
Servers
Sandbox API
https://api-sandbox.lawvu.com/contract-apis/
Production API
https://api.lawvu.com/contract-apis/

ContractFiles

Operations

Contracts

Operations

Create contract by upload

Request

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

Bodymultipart/form-data
ContractTemplateIdinteger
MatterIdinteger
ParentContractIdinteger
Fieldsstring
Namestring
ExternalIdstring
TeamIdinteger
ContractFilestring
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
}

Responses

Success

Body
integer(int32)
Response
null

Get contracts

Request

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.

Query
skipinteger(int32)

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

fieldsArray of strings or null

Fields to include in the response

filtering.logicstring or null

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

Options:

  • and
  • or

Enum"and""or"
filtering.filtersArray 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.fieldstring or null

Field to filter by (optional)

filtering.operatorstring

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"
filtering.valuestring or null

Value to filter by (optional)

sorting.directionstring

Set the sorting direction

Options:

  • asc
  • desc

Enum"asc""desc"
sorting.fieldstring or null

Set the sorting fields

takeinteger(int32)

Format - int32. The maximum number of contracts to return

Default: 50

Default 50
contextstring

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

Default "Personal"
Enum"All""Personal""Teams""Restricted"
No request payload

Responses

Success

Body
dataobject or null

Represents a single page of processed data.

totalinteger(int64)

The total number of records available.

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

Find contracts

Request

Quickly find and filter contracts

Query
termstring or null

A term to search contracts by

takeinteger or null(int32)

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

No request payload

Responses

Success

BodyArray [
idinteger(int32)
namestring or null
relationshipstring

Options:

  • Master
  • StatementOfWork
  • Amendment
Enum"Master""StatementOfWork""Amendment"
parentIdinteger or null(int32)
statusstring

Options:

  • Draft
  • Negotiating
  • Approval
  • Signing
  • Executed
  • Expired
  • Void
Enum"Draft""Negotiating""Approval""Signing""Executed""Expired""Void"
ownerFullNamestring or null
]
Response
null

Recent contracts

Request

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

Query
takeinteger(int32)

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

Default: 5

Default 5
No request payload

Responses

Success

BodyArray [
idinteger(int32)
titlestring or null
descriptionstring or null
namestring or null
matterNumberstring or null
contractStatusstring

Options:

  • Draft
  • Negotiating
  • Approval
  • Signing
  • Executed
  • Expired
  • Void
Enum"Draft""Negotiating""Approval""Signing""Executed""Expired""Void"
ownerIdstring or null
lastActivityDateUtcstring or null(date-time)

The UTC date of when the current user last viewed the Contract

]
Response
[
  {
    "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

Request

ExternalId lookup

Path
externalIdstring or nullrequired

The externalId to lookup

No request payload

Responses

Success

Body
idinteger(int32)
Response
null

Update contract

Request

Update contract

Path
contractIdinteger(int32)required

Format - int32. The Id of the contract

Body

The update request (in jsonpatch format)

Array [
valueobject or null
pathstring or null
opstring or null
fromstring or null
]
[ { "value": "123", "path": "ExternalId", "op": "replace" } ]

Responses

Success

Get contract

Request

Get contract details by contract id

Path
contractIdinteger(int32)required

Format - int32. The Id of the contract

No request payload

Responses

Success

Body
idinteger(int32)
namestring or null
statusstring

Options:

  • Draft
  • Negotiating
  • Approval
  • Signing
  • Executed
  • Expired
  • Void
Enum"Draft""Negotiating""Approval""Signing""Executed""Expired""Void"
categorystring

Options:

  • Sales
  • Purchasing
  • Commercial
Enum"Sales""Purchasing""Commercial"
templateIdinteger(int32)
templateNamestring or null
typeNamestring or null
createdBystring or null
createdByUserIdstring or null
ownerIdstring or null
matterIdinteger or null(int32)
matterNamestring or null
matterNumberstring or null
createdDateUtcstring(date-time)
restrictedboolean
hasSowboolean
parentContractIdinteger or null(int32)
documentFileIdinteger or null(int32)
parentIsRestrictedboolean
onContractboolean
onMatterboolean
contractSpecificEmailstring or null
expirystring or null(date-time)
teamIdinteger or null(int32)
externalIdstring or null
lastStatusMessageobject(StatusMessage)
ownerobject(ContractUser)
executedDateUtcstring or null(date-time)
Response
null

Get contract fields

Request

Get contract fields by contract id

Path
contractIdinteger(int32)required

Format - int32. The Id of the contract

No request payload

Responses

Success

Body
detailFieldsobject(FieldData)
coreFieldsobject(FieldData)
Response
{
  "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

Request

Update fields

Path
contractIdinteger(int32)required

Format - int32. The Id of the contract

Body

The update request (in jsonpatch format)

Array [
valueobject or null
pathstring or null
opstring or null
fromstring or null
]
{ "value": "new value", "path": "/field_string", "op": "replace" }

Responses

Success

Create contract

Request

Creates a new contract, using the contract template wizard

Body

Details of the contract to be created

contractTemplateIdinteger(int32)required

The template for the category

matterIdinteger or null(int32)

Optionally set the parent matter id

parentContractIdinteger or null(int32)

Optionally set the parent contract id

fieldsstring or null

The fields (from contract template) for the contract

namestringrequired

The contract name

externalIdstring or null

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

teamIdinteger or null(int32)

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

contractFilestring or null(binary)
{ "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 }

Responses

Success

Body
integer(int32)
Response
null

Contract entities

Request

Gets contract entities (other parties)

No request payload

Responses

Success

BodyArray [
idinteger(int32)
namestring or null
]
Response
[
  {
    "id": 1,
    "name": "Entity 1"
  },
  {
    "id": 2,
    "name": "Entity 2"
  }
]

Create contract entity

Request

Creates a contract entity

Body
string or null
"string"

Responses

Success

Body
integer(int32)
Response
null

ContractTemplates

Operations

ContractStatusMessage

Operations

ContractUser

Operations

ContractKeyDate

Operations