NAV Navbar
Python curl

Plentific Public API v2023-02-01

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Plentific has a sandbox environment to test the API with. This can be found at sandbox.plentific.com.

Please ask your account manager for access credentials to the Sandbox. You can log in with these credentials at the URLs listed below.

For UK clients: sandbox.plentific.com/uk/auth/login

For German clients: sandbox.plentific.com/de/auth/login

Base URLs:

Authentication

Authentication Tokens

Once you have received your 'client_id' and 'client_secret' from the Plentific team, you can use this endpoint to generate a new token. The token's default expiry time is 24 hours after it's generated.

The token is a bearer token, use the access_token from the response in the Authorization header of subsequent requests e.g. Authorization: Bearer <access_token>

Generate new token

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.plentific.com/2023-02-01/token', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/token \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST /token

This endpoint generates a new token

Body parameter

{
  "client_id": "string",
  "client_secret": "string"
}

Parameters

Name In Type Required Description
body body object true This is the body that can be used to obtain a new token.
client_id body string true none
client_secret body string true none

Example responses

200 Response

{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJteS1wcm9qZWN0IiwiZXhwIjoxNTA5NjUwODAxLCJpYXQiOjE1MDk2NTQ0MDF9.F4iKO0R0wvHkpCcQoyrYttdGxE5FLAgDhbTJQLEHIBPsbL2WkLxXB9IGbDESn9rE7oxn89PJFRtcLn7kJwvdQkQcsPxn2RQorvDAnvAi1w3k8gpxYWo2DYJlnsi7mxXDqSUCNm1UCLRCW68ssYJxYLSg7B1xGMgDADGyYPaIx1EdN4dDbh-WeDyLLa7a8iWVBXdbmy1H3fEuiAyxiZpk2ll7DcQ6ryyMrU2XadwEr9PDqbLe5SrlaJsQbFi8RIdlQJSo_DZGOoAlA5bYTDYXb-skm7qvoaH5uMtOUb0rjijYuuxhNZvZDaBerEaxgmmlO0nQgtn12KVKjmKlisG79Q",
  "expires_in": 3600,
  "scope": "client_metadata",
  "token_type": "Bearer"
}

Responses

Status Meaning Description Schema
200 OK The token that must be used to access endpoints Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
access_token string false none The access token string as issued by authorization server.
expires_in integer false none The number of seconds that the access token is granted for.
scope string false none none
token_type string false none The type of access token.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Account Codes

List all account codes

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/account-codes', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/account-codes \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /account-codes

This endpoint returns all account codes in the platform, and also returns the organisations that each are linked to

Parameters

Name In Type Required Description
Authorization header string true Authorization header
organisation_uuid query string(uuid) false The organisation uuid of an entity.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "code": "ACCOUNT-1",
    "description": "Plumbering",
    "organisations": [
      "842e7286-71bb-4fd1-a9e1-a7bd4a98664d",
      "96cac9aa-575b-4976-a03d-d671884dbd16"
    ],
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Account codes list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
code string false none The account code.
description string false none This is the account code description given in Plentific.
organisations [string] false none A list of Organisations uuids using this Account Code.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create an account code

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/account-codes', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/account-codes \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /account-codes

This endpoint creates a new account code

Body parameter

{
  "code": "ACCOUNT-1",
  "description": "Plumbering",
  "organisations": [
    "842e7286-71bb-4fd1-a9e1-a7bd4a98664d",
    "96cac9aa-575b-4976-a03d-d671884dbd16"
  ]
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true This is the body that can be used to create a Account Code.
code body string true The account code.
description body string true This is the account code description given in Plentific.
organisations body [string] true A list of Organisations uuids using this Account Code.

Example responses

201 Response

{
  "code": "ACCOUNT-1",
  "description": "Plumbering",
  "organisations": [
    "842e7286-71bb-4fd1-a9e1-a7bd4a98664d",
    "96cac9aa-575b-4976-a03d-d671884dbd16"
  ],
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
201 Created Account codes details Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
409 Conflict Conflict details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
code string false none The account code.
description string false none This is the account code description given in Plentific.
organisations [string] false none A list of Organisations uuids using this Account Code.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Status Code 409

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version
409 X-Api-Version string date The date of version

Delete an account code

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/account-codes/{account_code_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/account-codes/{account_code_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /account-codes/{account_code_uuid}

This endpoint deletes an account code so that it can no longer be added to any work orders

Parameters

Name In Type Required Description
Authorization header string true Authorization header
account_code_uuid path string(uuid) true UUID of the account code.

Example responses

401 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Update an account code

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/account-codes/{account_code_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/account-codes/{account_code_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /account-codes/{account_code_uuid}

This endpoint updates an existing account code

Body parameter

{
  "description": "Plumbering",
  "organisations": [
    [
      "842e7286-71bb-4fd1-a9e1-a7bd4a98664d",
      "96cac9aa-575b-4976-a03d-d671884dbd16"
    ]
  ]
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
account_code_uuid path string(uuid) true UUID of the account code.
body body object true none
description body string false This is the account code description given in Plentific.
organisations body array false none

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
409 Conflict Conflict details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Status Code 409

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version
409 X-Api-Version string date The date of version

Assets Custom Fields

List custom fields

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/assets/custom-fields', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/assets/custom-fields \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /assets/custom-fields

This endpoint lists custom fields

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.
linked_type_uuid query string(uuid) false Filter by linked type UUID

Example responses

200 Response

[
  {
    "api_field_name": "example_field",
    "field_label": "Example Field",
    "field_type": "text",
    "linked_type": "location_type",
    "linked_type_uuid": "cf86ffd3-e0a8-4661-addc-d0305d82f093",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK List of existing Custom Fields Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
api_field_name string false none The Custom Field's api_field_name (modified field_label).
field_label string false none The Custom Field's name.
field_type string false none The Custom Field's type.
linked_type string false none The Custom Field's related type.
linked_type_uuid string(UUID) false none UUID of object related to custom field (Must belong to your organisation group).
uuid string(UUID) false none The Custom Field's unique identifier (UUID)

Enumerated Values

Property Value
field_type number
field_type text
field_type datetime
field_type multiselect
linked_type location_type

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a custom field

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/assets/custom-fields', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/assets/custom-fields \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /assets/custom-fields

This endpoint creates a new custom field

Body parameter

{
  "decimal_places": "2",
  "field_format": "short_text",
  "field_label": "Example Field",
  "field_type": "text",
  "is_readonly": true,
  "linked_type": "location_type",
  "linked_type_uuid": "cf86ffd3-e0a8-4661-addc-d0305d82f093",
  "multiselect_options": [
    "option 1"
  ],
  "unit": "acre"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true Create Custom Field
decimal_places body string false Precision of decimal field. Applicable only for decimal field. Used for decimal field format. Should be between 1 and 5.
field_format body string false The Custom Field's format (Must match field_type, eg: number -> integer).
field_label body string true The Custom Field's name
field_type body string false The Custom Field's type.
is_readonly body boolean false Indicates if field is read-only.
linked_type body string true The Custom Field's related type.
linked_type_uuid body string(UUID) true UUID of object related to custom field (Must belong to your organisation group).
multiselect_options body [string] false List of options for multiselect field. Required for multiselect field type.
unit body string false Unit of value related to the custom field.

Enumerated Values

Parameter Value
field_format short_text
field_format paragraph
field_format integer
field_format decimal
field_format datetime
field_format time
field_format date
field_format multiselect
field_type number
field_type text
field_type datetime
field_type multiselect
linked_type location_type
unit us_dollar
unit pound_sterling
unit euro
unit acre
unit hectare
unit square_metre
unit square_feet
unit foot
unit inch
unit kilometre
unit metre
unit mile
unit millimetre
unit yard
unit ampere
unit ohm
unit volt
unit watt
unit gram
unit kilogram
unit milligram
unit ounce
unit pound_mass
unit celsius
unit fahrenheit
unit kelvin
unit day
unit hour
unit millisecond
unit minute
unit second
unit cubic_foot
unit cubic_metre
unit gallon
unit litre
unit millilitre
unit hertz
unit joule
unit lumen
unit lux
unit metre_per_second
unit newton
unit pascal

Example responses

201 Response

{
  "api_field_name": "example_field",
  "decimal_places": "2",
  "field_format": "short_text",
  "field_label": "Example Field",
  "field_type": "text",
  "is_readonly": true,
  "linked_type": "location_type",
  "linked_type_uuid": "cf86ffd3-e0a8-4661-addc-d0305d82f093",
  "multiselect_options": [
    {
      "name": "option 1",
      "uuid": "d206f06f-63b3-4c63-a411-9b341386d2e3"
    }
  ],
  "unit": "acre",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
201 Created Details of created Custom Field Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
api_field_name string false none The Custom Field's api_field_name (modified field_label).
decimal_places string false none Precision of decimal field. Applicable only for decimal field.
field_format string false none The Custom Field's format (Must match field_type, eg: number -> integer).
field_label string false none The Custom Field's name.
field_type string false none The Custom Field's type.
is_readonly boolean false none Indicates if field is read-only.
linked_type string false none The Custom Field's related type.
linked_type_uuid string(UUID) false none UUID of object related to custom field (Must belong to your organisation group).
multiselect_options [object] false none none
name string false none option for multiselect field.
uuid string(UUID) false none Option's unique identifier (UUID)
unit string false none Unit of value related to the custom field.
uuid string(UUID) false none The Custom Field's unique identifier (UUID)

Enumerated Values

Property Value
field_format short_text
field_format paragraph
field_format integer
field_format decimal
field_format datetime
field_format time
field_format date
field_format multiselect
field_type number
field_type text
field_type datetime
field_type multiselect
linked_type location_type
unit us_dollar
unit pound_sterling
unit euro
unit acre
unit hectare
unit square_metre
unit square_feet
unit foot
unit inch
unit kilometre
unit metre
unit mile
unit millimetre
unit yard
unit ampere
unit ohm
unit volt
unit watt
unit gram
unit kilogram
unit milligram
unit ounce
unit pound_mass
unit celsius
unit fahrenheit
unit kelvin
unit day
unit hour
unit millisecond
unit minute
unit second
unit cubic_foot
unit cubic_metre
unit gallon
unit litre
unit millilitre
unit hertz
unit joule
unit lumen
unit lux
unit metre_per_second
unit newton
unit pascal

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version

Delete a custom field

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /assets/custom-fields/{custom_field_uuid}

This endpoint deletes a custom field from the client's organisation

Parameters

Name In Type Required Description
Authorization header string true Authorization header
custom_field_uuid path string(uuid) true UUID of the Custom field

Example responses

401 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Retrieve custom field details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /assets/custom-fields/{custom_field_uuid}

This endpoint returns the details of a particular Custom field

Parameters

Name In Type Required Description
Authorization header string true Authorization header
custom_field_uuid path string(uuid) true UUID of the Custom field

Example responses

200 Response

{
  "api_field_name": "example_field",
  "decimal_places": "2",
  "field_format": "short_text",
  "field_label": "Example Field",
  "field_type": "text",
  "is_readonly": true,
  "linked_type": "location_type",
  "linked_type_uuid": "cf86ffd3-e0a8-4661-addc-d0305d82f093",
  "multiselect_options": [
    {
      "name": "option 1",
      "uuid": "d206f06f-63b3-4c63-a411-9b341386d2e3"
    }
  ],
  "unit": "acre",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Custom field details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
api_field_name string false none The Custom Field's api_field_name (modified field_label).
decimal_places string false none Precision of decimal field. Applicable only for decimal field.
field_format string false none The Custom Field's format (Must match field_type, eg: number -> integer).
field_label string false none The Custom Field's name.
field_type string false none The Custom Field's type.
is_readonly boolean false none Indicates if field is read-only.
linked_type string false none The Custom Field's related type.
linked_type_uuid string(UUID) false none UUID of object related to custom field (Must belong to your organisation group).
multiselect_options [object] false none none
name string false none option for multiselect field.
uuid string(UUID) false none Option's unique identifier (UUID)
unit string false none Unit of value related to the custom field.
uuid string(UUID) false none The Custom Field's unique identifier (UUID)

Enumerated Values

Property Value
field_format short_text
field_format paragraph
field_format integer
field_format decimal
field_format datetime
field_format time
field_format date
field_format multiselect
field_type number
field_type text
field_type datetime
field_type multiselect
linked_type location_type
unit us_dollar
unit pound_sterling
unit euro
unit acre
unit hectare
unit square_metre
unit square_feet
unit foot
unit inch
unit kilometre
unit metre
unit mile
unit millimetre
unit yard
unit ampere
unit ohm
unit volt
unit watt
unit gram
unit kilogram
unit milligram
unit ounce
unit pound_mass
unit celsius
unit fahrenheit
unit kelvin
unit day
unit hour
unit millisecond
unit minute
unit second
unit cubic_foot
unit cubic_metre
unit gallon
unit litre
unit millilitre
unit hertz
unit joule
unit lumen
unit lux
unit metre_per_second
unit newton
unit pascal

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update a custom field

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /assets/custom-fields/{custom_field_uuid}

This endpoint updates an existing custom field

Body parameter

{
  "field_label": "Example Field",
  "is_readonly": true,
  "unit": "acre"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
custom_field_uuid path string(uuid) true UUID of the Custom field
body body object true Update Custom Field
field_label body string false The Custom Field's name
is_readonly body boolean false Indicates if field is read-only.
unit body string false Unit of value related to the custom field.

Enumerated Values

Parameter Value
unit us_dollar
unit pound_sterling
unit euro
unit acre
unit hectare
unit square_metre
unit square_feet
unit foot
unit inch
unit kilometre
unit metre
unit mile
unit millimetre
unit yard
unit ampere
unit ohm
unit volt
unit watt
unit gram
unit kilogram
unit milligram
unit ounce
unit pound_mass
unit celsius
unit fahrenheit
unit kelvin
unit day
unit hour
unit millisecond
unit minute
unit second
unit cubic_foot
unit cubic_metre
unit gallon
unit litre
unit millilitre
unit hertz
unit joule
unit lumen
unit lux
unit metre_per_second
unit newton
unit pascal

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

List multiselect options

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}/multiselect-options', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}/multiselect-options \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /assets/custom-fields/{custom_field_uuid}/multiselect-options

This endpoint lists multiselect options from custom field

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.
custom_field_uuid path string(uuid) true UUID of the Custom field

Example responses

200 Response

[
  {
    "name": "option 1",
    "uuid": "d206f06f-63b3-4c63-a411-9b341386d2e3"
  }
]

Responses

Status Meaning Description Schema
200 OK Multiselect options list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
name string false none option for multiselect field.
uuid string(UUID) false none Option's unique identifier (UUID)

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a multiselect option

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}/multiselect-options', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}/multiselect-options \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /assets/custom-fields/{custom_field_uuid}/multiselect-options

This endpoint creates a new multiselect option field for custom field

Body parameter

{
  "name": "string"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
custom_field_uuid path string(uuid) true UUID of the Custom field
body body object true Create multiselect option
name body string true none

Example responses

201 Response

{
  "name": "option 1",
  "uuid": "d206f06f-63b3-4c63-a411-9b341386d2e3"
}

Responses

Status Meaning Description Schema
201 Created Multiselect option details Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
name string false none option for multiselect field.
uuid string(UUID) false none Option's unique identifier (UUID)

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version

Delete a multiselect option

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}/multiselect-options/{multiselect_option_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}/multiselect-options/{multiselect_option_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /assets/custom-fields/{custom_field_uuid}/multiselect-options/{multiselect_option_uuid}

This endpoint deletes a multiselect option from custom field

Parameters

Name In Type Required Description
Authorization header string true Authorization header
custom_field_uuid path string(uuid) true UUID of the Custom field
multiselect_option_uuid path string(uuid) true UUID of the Multiselect Option

Example responses

401 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Retrieve a multiselect option details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}/multiselect-options/{multiselect_option_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}/multiselect-options/{multiselect_option_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /assets/custom-fields/{custom_field_uuid}/multiselect-options/{multiselect_option_uuid}

This endpoint returns the details of a multiselect option for custom field

Parameters

Name In Type Required Description
Authorization header string true Authorization header
custom_field_uuid path string(uuid) true UUID of the Custom field
multiselect_option_uuid path string(uuid) true UUID of the Multiselect Option

Example responses

200 Response

{
  "name": "option 1",
  "uuid": "d206f06f-63b3-4c63-a411-9b341386d2e3"
}

Responses

Status Meaning Description Schema
200 OK Multiselect option details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
name string false none option for multiselect field.
uuid string(UUID) false none Option's unique identifier (UUID)

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update a multiselect option

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}/multiselect-options/{multiselect_option_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/assets/custom-fields/{custom_field_uuid}/multiselect-options/{multiselect_option_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /assets/custom-fields/{custom_field_uuid}/multiselect-options/{multiselect_option_uuid}

This endpoint updates an existing multiselect option for custom field

Body parameter

{
  "name": "string"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
custom_field_uuid path string(uuid) true UUID of the Custom field
multiselect_option_uuid path string(uuid) true UUID of the Multiselect Option
body body object true Update multiselect option
name body string false none

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Categories

Work order categories are the type of work required as part of a work order. They are linked to Services and both are needed as part of a new Work Order.

List all categories

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/categories', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/categories \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /categories

This endpoint can be used to list all categories and search for specific categories

Parameters

Name In Type Required Description
Authorization header string true Authorization header
name query string false Search keyword for filtering the objects.
slug query string false Search keyword for filtering the objects based on slug.
uuid query string(uuid) false Search keyword for filtering the objects based on uuid.
uuid__in query string(uuid) false Search keyword for filtering the objects based on multiple uuids.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "deactivated": false,
    "name": "Home Security Specialist",
    "slug": "home-security-specialist",
    "url": "/home-security-specialist/",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Categories list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
deactivated boolean false none Indicates whether a Category is deactivated or not.
name string false none Category name
slug string false none Slug of the Category
url string false none URL of the Category.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Retrieve service details of a category

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/categories/{category_uuid}/services', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/categories/{category_uuid}/services \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /categories/{category_uuid}/services

This endpoint can be used to retrieve and search for services within the specified category

Parameters

Name In Type Required Description
Authorization header string true Authorization header
category_uuid path string(uuid) true UUID of the Category object.
name query string false Search keyword for filtering the objects.
slug query string false Search keyword for filtering the objects based on slug.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "category_uuid_list": [
      "15791638-f098-49ca-b1a6-40da5bc47255"
    ],
    "deactivated": false,
    "name": "Home Security Specialist",
    "slug": "home-security-specialist",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Service detail list of the given category Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
category_uuid_list [string] false none none
deactivated boolean false none Indicates whether a Service is deactivated or not.
name string false none Service name.
slug string false none Service's slug.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

List fault categories

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/fault-categories', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/fault-categories \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /fault-categories

This endpoint can be used to list all fault categories

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "category_uuid": "15791638-f098-49ca-b1a6-40da5bc47256",
    "children": [
      {
        "category_uuid": "15791638-f098-49ca-b1a6-40da5bc47266",
        "children": [],
        "name": "some-fault-category",
        "parent_uuid": "15791638-f098-49ca-b1a6-40da5bc47268",
        "service_uuid": "15791638-f098-49ca-b1a6-40da5bc47267",
        "uuid": "15791638-f098-49ca-b1a6-40da5bc47265"
      }
    ],
    "name": "some-fault-category",
    "parent_uuid": "15791638-f098-49ca-b1a6-40da5bc47258",
    "service_uuid": "15791638-f098-49ca-b1a6-40da5bc47257",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK List of fault categories Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
category_uuid string false none Clients must map the Plentific category_uuid on their systems before sending over data. The category_uuid must contain the service_uuid used in the fault object(s). The Categories and Services endpoints will help with this mapping.
children [object] false none list of nested fault categories (see example)
name string false none The name of the resource.
parent_uuid string(uuid) false none A UUID that references a resource.
service_uuid string(uuid) false none This is Plentific service_uuid. Clients must map the Plentific service_uuid on their systems before sending over data. If this field is missing, we will raise an exception and will not not proceed.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Contractors

Retrieve details of a contractor

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/contractors/{contractor_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/contractors/{contractor_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /contractors/{contractor_uuid}

This endpoint returns the details of a particular contractor

Parameters

Name In Type Required Description
Authorization header string true Authorization header
contractor_uuid path string(uuid) true UUID of the contractor.

Example responses

200 Response

{
  "address": {
    "address_line_1": "Millbank",
    "address_line_2": "Westminster",
    "address_zone": "London",
    "city": "London",
    "country": "GB",
    "postal_code": "SW1P 4RG"
  },
  "company_registration_number": "206198",
  "company_type": "Limited Liability Partnership (LLP)",
  "name": "Custom resource name",
  "tax_number": "268371123",
  "trade_categories": [
    "550b4495-80c9-4ef3-8b34-2b5bd802dc9d",
    "9be2d512-f7ee-49f5-984c-e8dba260f4cf"
  ],
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "vat_number": "DE268371123"
}

Responses

Status Meaning Description Schema
200 OK Contractor's details Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Contractor

Name Type Required Restrictions Description
address object false none none
address_line_1 string false none The first address line of the resource.
address_line_2 string¦null false none The second address line of the resource.
address_zone string false none The address zone of the resource.
city string false none The town or city of the resource. This field is not required for the UK region.
country string false none The country of the resource
postal_code string false none The postal code of the resource.
company_registration_number string false none Registration number of the contractor.
company_type string false none The type of company
name string false none The name of the resource.
tax_number string¦null false none DE-Tax number used by German contractors.
trade_categories [string] false none The list of Categories (UUIDs) handled by the contractor
uuid string(uuid) false none A UUID that references contractor
vat_number string¦null false none EU-VAT number of a contractor

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Files

Upload a file

Code samples

curl --request POST \
  --url https://api.plentific.com/2023_02_01/files \
  -H 'Content-Type: image/jpeg' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Plentific-File: {"name": "report.pdf"}' \
  --data-binary @/Downloads/report.pdf

import requests
headers = {
  'Content-Type': 'application/pdf',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Plentific-File': '{"name": "report.pdf"}',
}

with open('/Downloads/report.pdf', 'rb') as f:
  r = requests.post(
      'https://api.plentific.com/2023_02_01/files',
      data=f.read(),
      headers = headers,
  )

print(r.json())

POST /files

This endpoint uploads a file to the platform

Body parameter

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Plentific-File header string true Json-like string of filename and eventually URL.
Content-Type header string true Content type that describes uploaded file.
Accept header string true none
body body string(binary) false A file content to upload.

Example responses

201 Response

{
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
201 Created Uploaded file uuid Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
406 Not Acceptable Response content type error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Status Code 406

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 Location string url The location of the newly-created file.
201 X-Api-Version string date The date of version

Retrieve file details

Code samples

curl -X GET https://api.plentific.com/2023_02_01/files/{file_uuid} \
  --header 'authorization: Bearer <access_token>' \
  --output report.jpg

import requests

access_token = ""
file_uuid = ""
headers = {
  "Authorization": f"Bearer {access_token}",
}

with requests.get(
    f"https://api.plentific.com/2023_02_01/files/{file_uuid}",
    headers=headers,
    stream=True,
) as r:
    r.raise_for_status()
    with open("./report.pdf", "wb") as f:
        for chunk in r.iter_content(chunk_size=1024):
            if chunk:
                f.write(chunk)

GET /files/{file_uuid}

This endpoint returns the details of a particular file

Parameters

Name In Type Required Description
Authorization header string true Authorization header
Accept header string true none
file_uuid path string(uuid) true UUID of the File

Enumerated Values

Parameter Value
Accept application/octet-stream

Example responses

200 Response

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
200 OK File string
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
424 Failed Dependency Failed dependency error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Status Code 424

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 Content-Disposition string none
200 Content-Length string none
200 Content-Type string none
200 X-Api-Version string date The date of version

Invoices

List all invoices

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/invoices', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/invoices \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /invoices

This endpoint returns all the invoices registered for client's organisation

Parameters

Name In Type Required Description
Authorization header string true Authorization header
status query string false Invoice status.
organisation_uuid query string(uuid) false The organisation uuid of an entity.
created_from query string(date) false The date parameter that denotes start creation date of the invoice.
created_to query string(date) false The date parameter that denotes end creation date of the invoice.
paid_from query string(date) false The date parameter that denotes start paid date of the invoice.
paid_to query string(date) false The date parameter that denotes end paid date of the invoice.
work_order_uuid query string(uuid) false The UUID parameter that will return Invoices belonging to a Work Order.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Enumerated Values

Parameter Value
status paid
status overdue
status outstanding

Example responses

200 Response

[
  {
    "attachments": [
      "e2d7c1f1-b561-4937-82c9-195e109d4581",
      "160d959e-e9d8-4113-a692-3f136874383b"
    ],
    "created": "2023-03-28T15:49:30Z",
    "due_date": "2023-03-28",
    "external_reference": "EG1234",
    "is_final": true,
    "location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
    "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
    "paid_on": "2023-03-28T15:49:30Z",
    "service_date": "2023-03-28T15:49:30Z",
    "status": "paid",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
    "work_order_uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Invoices list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
attachments [string] false none List of pdf file UUIDs that are attached to an Invoice.
created string(date-time) false none none
due_date string(date) false none none
external_reference string¦null false none The client-provided external reference of the resource.
is_final boolean false none Indicates whether a an Invoice if final (i.e. non-interim)
location_uuid string false none The location's unique identifier (UUID) or internal reference.
organisation_uuid string(uuid) false none A UUID that identifies the Organisation of the entry.
paid_on string(date-time) false none The paid date-time of the invoice
service_date string(date-time) false none none
status string false none The status of the Invoice.
uuid string(uuid) false none A UUID that references a resource.
work_order_uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
status paid
status overdue
status outstanding

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

List all generated bank transfer payment details for unpaid invoices

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/invoices/unpaid/bank-transfer-payment-details', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/invoices/unpaid/bank-transfer-payment-details \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /invoices/unpaid/bank-transfer-payment-details

This endpoint returns a list of generated bank transfer payment details for unpaid invoices.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

{
  "bank_account_details": {
    "account_holder": "Adam Smith",
    "account_number": "1234567890123456",
    "bic_code": "ABCDEFG0000",
    "iban": "DE12345678900000000000",
    "sort_code": "012345"
  },
  "invoice_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "payment_reference": "XYZ-012",
  "payment_type": "bank_transfer",
  "stripe_payment_uuid": "25791638-f098-49ca-b1a6-40da5bc47259",
  "total_amount": 123.23
}

Responses

Status Meaning Description Schema
200 OK Bank transfer payment details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
bank_account_details object false none This object contains bank account details that depend on the country.
UK clients will only receive account_holder, sort_code and account_number,
while DE clients will only receive account_holder, iban and bic_code.
account_holder string false none Bank account holder's name
account_number string false none Account number of the bank account (UK specific)
bic_code string false none BIC code of the bank account (DE specific)
iban string false none IBAN of the bank account (DE specific)
sort_code string false none Sort code of the bank account (UK specific)
invoice_uuid string(uuid) false none Invoice unique identifier (UUID).
payment_reference string false none Payment reference of the invoice
payment_type string false none Type of chosen payment type
stripe_payment_uuid string(uuid) false none Stripe payment unique identifier (UUID).
total_amount number(float) false none Invoice's total amount

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Retrieve invoice details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/invoices/{invoice_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/invoices/{invoice_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /invoices/{invoice_uuid}

This endpoint returns the details of a particular invoice

Parameters

Name In Type Required Description
Authorization header string true Authorization header
invoice_uuid path string(uuid) true UUID of the invoice.

Example responses

200 Response

{
  "account_code": 23100,
  "approval_completion_date": "2020-03-06T12:00:00Z",
  "attachments": [
    "e2d7c1f1-b561-4937-82c9-195e109d4581",
    "160d959e-e9d8-4113-a692-3f136874383b"
  ],
  "created": "2020-02-28T01:41:58.538216Z",
  "due_date": "2020-03-13",
  "external_reference": "234567/1",
  "id": "211706",
  "invoice_type": "job_invoice",
  "is_final": true,
  "items": [
    {
      "amount_including_tax": 150,
      "description": "We do 2 inspections once a week.",
      "metadata": {
        "account_code": "8000",
        "resident_recharge": "1"
      },
      "quantity": 1,
      "type": "LABOUR",
      "unit_price": 150,
      "vat": 0
    }
  ],
  "job_address": {
    "address": {
      "address_line_1": "72 Strattondale Street",
      "address_line_2": "London",
      "address_zone": "London",
      "city": "London",
      "country": "UK",
      "postal_code": "E14 3LR"
    },
    "external_reference": "67895422/1",
    "location_uuid": "4f69c0c7-d288-49e7-8ccb-cfc3ffc3927d"
  },
  "outstanding_amount": 0,
  "paid_on": "2020-03-12T11:06:13.178151Z",
  "payment_reference": "XYZ-0123",
  "pdf_url": "/invoices/967fb16f-0273-45bb-9cce-45ef747526cf/pdf",
  "recipient": {
    "beneficiary": {
      "address": {
        "address_line_1": "8 Plevna Street",
        "address_line_2": "",
        "address_zone": "London",
        "city": "London",
        "country": "UK",
        "postal_code": "E14 3LP"
      },
      "name": "Pfeffer LLC"
    },
    "billing_address": {
      "address": {
        "address_line_1": "8 Plevna Street",
        "address_line_2": null,
        "address_zone": "London",
        "city": "London",
        "country": "UK",
        "postal_code": "E14 3LP"
      },
      "name": "Pfeffer LLC",
      "organisation_uuid": "2d238e20-d195-45a6-9a69-740b88404d10"
    }
  },
  "sender": {
    "address": {
      "address_line_1": null,
      "address_line_2": null,
      "address_zone": null,
      "city": null,
      "postal_code": null
    },
    "company_registration_number": 42798,
    "contractor_wallet_id": "567483",
    "name": "Boyer and Sons",
    "tax_number": null
  },
  "service_date": "2020-02-26T12:00:00Z",
  "status": "paid",
  "tax_withheld": 16.5,
  "total_excluding_tax": 55,
  "total_including_tax": 66,
  "total_tax": 11,
  "uuid": "967fb16f-0273-45bb-9cce-45ef747526cf",
  "work_order": {
    "external_reference": "12341234/1",
    "uuid": "131f86c8-4427-4579-8b63-b1c2f540d0a2"
  }
}

Responses

Status Meaning Description Schema
200 OK Invoice details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
account_code number false none none
approval_completion_date string(date-time) false none none
attachments [string] false none List of pdf file UUIDs that are attached to an Invoice.
created string(date-time) false none none
due_date string(date) false none none
external_reference string¦null false none The client-provided external reference of the resource.
id string false none The invoice number.
invoice_type string false none none
is_final boolean false none Indicates whether a an Invoice if final (i.e. non-interim)
items [object] false none none
amount_including_tax number(float) false none none
description string false none none
metadata object false none none
account_code string false none none
resident_recharge string false none none
quantity number(float) false none none
type string false none none
unit_price number(float) false none none
vat number(float) false none none
job_address object false none none
address object false none none
address_line_1 string false none The first address line of the resource.
address_line_2 string¦null false none The second address line of the resource.
address_zone string false none The address zone of the resource.
city string false none The town or city of the resource. This field is not required for the UK region.
country string false none The country of the resource
postal_code string false none The postal code of the resource.
external_reference string¦null false none The client-provided external reference of the resource.
location_uuid string(uuid) false none none
outstanding_amount number(float) false none none
paid_on string(date-time)¦null false none none
payment_reference string false none Payment reference of the invoice
pdf_url string(url) false none none
recipient object false none none
beneficiary object false none none
address object false none none
address_line_1 string false none The first address line of the resource.
address_line_2 string¦null false none The second address line of the resource.
address_zone string false none The address zone of the resource.
city string false none The town or city of the resource. This field is not required for the UK region.
country string false none The country of the resource
postal_code string false none The postal code of the resource.
name string false none none
billing_address object false none none
address object false none none
address_line_1 string false none The first address line of the resource.
address_line_2 string¦null false none The second address line of the resource.
address_zone string false none The address zone of the resource.
city string false none The town or city of the resource. This field is not required for the UK region.
country string false none The country of the resource
postal_code string false none The postal code of the resource.
name string false none The name of the resource.
organisation_uuid string(uuid) false none none
sender object false none none
address object false none none
address_line_1 string false none The first address line of the resource.
address_line_2 string¦null false none The second address line of the resource.
address_zone string false none The address zone of the resource.
city string false none The town or city of the resource. This field is not required for the UK region.
postal_code string false none The postal code of the resource.
company_registration_number string false none none
contractor_wallet_id string¦null false none Contractor wallet's id
name string false none The name of the resource.
tax_number string false none none
service_date string(date-time) false none none
status string false none none
tax_withheld number(float)¦null false none none
total_excluding_tax number(float) false none none
total_including_tax number(float) false none none
total_tax number(float) false none none
uuid string(uuid) false none none
work_order object false none none
external_reference string¦null false none The client-provided external reference of the resource.
uuid string(uuid) false none none

Enumerated Values

Property Value
invoice_type job_invoice
invoice_type client_service_fee_invoice
type LABOUR
type MATERIALS

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Retrieve invoice's bank transfer payment details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/invoices/{invoice_uuid}/bank-transfer-payment-details', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/invoices/{invoice_uuid}/bank-transfer-payment-details \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /invoices/{invoice_uuid}/bank-transfer-payment-details

This endpoint returns the details of a particular invoice

Parameters

Name In Type Required Description
Authorization header string true Authorization header
invoice_uuid path string(uuid) true UUID of the invoice.

Example responses

200 Response

{
  "bank_account_details": {
    "account_holder": "Adam Smith",
    "account_number": "1234567890123456",
    "bic_code": "ABCDEFG0000",
    "iban": "DE12345678900000000000",
    "sort_code": "012345"
  },
  "invoice_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "payment_reference": "XYZ-012",
  "payment_type": "bank_transfer",
  "stripe_payment_uuid": "25791638-f098-49ca-b1a6-40da5bc47259",
  "total_amount": 123.23
}

Responses

Status Meaning Description Schema
200 OK Bank transfer payment details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
bank_account_details object false none This object contains bank account details that depend on the country.
UK clients will only receive account_holder, sort_code and account_number,
while DE clients will only receive account_holder, iban and bic_code.
account_holder string false none Bank account holder's name
account_number string false none Account number of the bank account (UK specific)
bic_code string false none BIC code of the bank account (DE specific)
iban string false none IBAN of the bank account (DE specific)
sort_code string false none Sort code of the bank account (UK specific)
invoice_uuid string(uuid) false none Invoice unique identifier (UUID).
payment_reference string false none Payment reference of the invoice
payment_type string false none Type of chosen payment type
stripe_payment_uuid string(uuid) false none Stripe payment unique identifier (UUID).
total_amount number(float) false none Invoice's total amount

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Create bank transfer payment details for an invoice

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/invoices/{invoice_uuid}/bank-transfer-payment-details', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/invoices/{invoice_uuid}/bank-transfer-payment-details \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /invoices/{invoice_uuid}/bank-transfer-payment-details

This endpoint creates bank transfer payment details for the selected invoice

Parameters

Name In Type Required Description
Authorization header string true Authorization header
invoice_uuid path string(uuid) true UUID of the invoice.

Example responses

201 Response

{
  "bank_account_details": {
    "account_holder": "Adam Smith",
    "account_number": "1234567890123456",
    "bic_code": "ABCDEFG0000",
    "iban": "DE12345678900000000000",
    "sort_code": "012345"
  },
  "invoice_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "payment_reference": "XYZ-012",
  "payment_type": "bank_transfer",
  "stripe_payment_uuid": "25791638-f098-49ca-b1a6-40da5bc47259",
  "total_amount": 123.23
}

Responses

Status Meaning Description Schema
201 Created Bank transfer payment details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
409 Conflict Validation error details Inline
422 Unprocessable Entity Validation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
bank_account_details object false none This object contains bank account details that depend on the country.
UK clients will only receive account_holder, sort_code and account_number,
while DE clients will only receive account_holder, iban and bic_code.
account_holder string false none Bank account holder's name
account_number string false none Account number of the bank account (UK specific)
bic_code string false none BIC code of the bank account (DE specific)
iban string false none IBAN of the bank account (DE specific)
sort_code string false none Sort code of the bank account (UK specific)
invoice_uuid string(uuid) false none Invoice unique identifier (UUID).
payment_reference string false none Payment reference of the invoice
payment_type string false none Type of chosen payment type
stripe_payment_uuid string(uuid) false none Stripe payment unique identifier (UUID).
total_amount number(float) false none Invoice's total amount

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Status Code 409

Name Type Required Restrictions Description
detail string false none Error details

Status Code 422

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version

Retrieve invoice as PDF

Code samples

import requests
headers = {
  'Accept': 'application/pdf',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/invoices/{invoice_uuid}/pdf', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/invoices/{invoice_uuid}/pdf \
  -H 'Accept: application/pdf' \
  -H 'Authorization: Bearer <access_token>'

GET /invoices/{invoice_uuid}/pdf

This endpoint returns a particular invoice in PDF format

Parameters

Name In Type Required Description
Authorization header string true Authorization header
invoice_uuid path string(uuid) true UUID of the invoice.

Example responses

200 Response

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
200 OK Invoice PDF string
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 Content-Disposition string none
200 Content-Length string none
200 Content-Type string none
200 X-Api-Version string date The date of version

Inspections

List all Inspections

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/inspections', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/inspections \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /inspections

This endpoint returns all the Inspections registered in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
status query string false The inspection status filter
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Enumerated Values

Parameter Value
status pending
status syncing
status in_progress
status completed

Example responses

200 Response

[
  {
    "location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
    "progress": 0,
    "status": "pending",
    "title": "Inspection XYZ",
    "type": "generic",
    "uuid": "774168ad-a2fd-4a0f-8743-0d8e89d8666c"
  }
]

Responses

Status Meaning Description Schema
200 OK Inspections list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
location_uuid string(uuid) false none The location UUID associated to the inspection
progress number(integer) false none The progress of the inspection process in percentage terms
status string false none The inspection status
title string false none The title assigned to the inspection
type string false none The inspection type. fra stands for fire safety.
uuid string(uuid) false none The inspection UUID

Enumerated Values

Property Value
status pending
status syncing
status in_progress
status completed
type fra
type void
type generic

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Retrieve inspection details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/inspections/{inspection_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/inspections/{inspection_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /inspections/{inspection_uuid}

This endpoint returns the details of an inspection

Parameters

Name In Type Required Description
Authorization header string true Authorization header
inspection_uuid path string(uuid) true UUID of the Inspection

Example responses

200 Response

{
  "assignee": "assignee@plentific.com",
  "created": "2023-03-28T15:49:30Z",
  "location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "progress": 0,
  "started_on": "2023-03-28T15:49:30Z",
  "status": "pending",
  "submitted_on": "2023-03-28T15:49:30Z",
  "title": "Inspection XYZ",
  "type": "generic",
  "uuid": "774168ad-a2fd-4a0f-8743-0d8e89d8666c"
}

Responses

Status Meaning Description Schema
200 OK Inspection details Inline
401 Unauthorized Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
assignee string(email) false none The email of the inspection assignee
created string(date-time) false none The timestamp set on inspection creation
location_uuid string(uuid) false none The location UUID associated to the inspection
progress number(integer) false none The progress of the inspection process in percentage terms
started_on string(date-time) false none The timestamp set on inspection start
status string false none The inspection status
submitted_on string(date-time) false none The timestamp set on inspection submission
title string false none The title assigned to the inspection
type string false none The inspection type. fra stands for fire safety.
uuid string(uuid) false none The inspection UUID

Enumerated Values

Property Value
status pending
status syncing
status in_progress
status completed
type fra
type void
type generic

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Retrieve inspection PDF report

Code samples

import requests
headers = {
  'Accept': 'application/pdf',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/inspections/{inspection_uuid}/pdf', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/inspections/{inspection_uuid}/pdf \
  -H 'Accept: application/pdf' \
  -H 'Authorization: Bearer <access_token>'

GET /inspections/{inspection_uuid}/pdf

This endpoint returns the PDF report of an inspection

Parameters

Name In Type Required Description
Authorization header string true Authorization header
inspection_uuid path string(uuid) true UUID of the Inspection

Example responses

200 Response

401 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
200 OK Inspection PDF Report string
401 Unauthorized Authorisation error details Inline
404 Not Found Resource not found Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 404

Name Type Required Restrictions Description
detail string false none Reason why PDF report is not available

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
404 X-Api-Version string date The date of version

Generate inspection PDF report

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/inspections/{inspection_uuid}/pdf', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/inspections/{inspection_uuid}/pdf \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /inspections/{inspection_uuid}/pdf

This endpoints starts a generation process of Inspection PDF report. Use GET /inspections/{uuid}/pdf to retrieve a PDF file when it's ready.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
inspection_uuid path string(uuid) true UUID of the Inspection

Example responses

202 Response

{
  "detail": "The PDF generation has been started"
}

Responses

Status Meaning Description Schema
202 Accepted Inspection PDF Report Inline
401 Unauthorized Authorisation error details Inline
404 Not Found Resource not found None
409 Conflict Conflict Inline
422 Unprocessable Entity PDF report already exists Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 202

Name Type Required Restrictions Description
detail string false none Message that informs if the PDF report generation has been started

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 409

Name Type Required Restrictions Description
detail string false none Reason why PDF report can't be generated

Status Code 422

Name Type Required Restrictions Description
detail string false none Returned when there is already PDF report generated for an Inspection

Response Headers

Status Header Type Format Description
202 X-Api-Version string date The date of version
409 X-Api-Version string date The date of version
422 X-Api-Version string date The date of version

Locations

List all locations

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/locations', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/locations \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /locations

This endpoint returns all locations registered in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
type_uuid query string(uuid) false Location type UUID
address_zone query string false Filters by location zone
postal_code query string false Filters by postal code
city query string false Filters by city
location_group_uuid query string(uuid) false Location group UUID
tag_uuid query string(uuid) false Tag UUID
manager_uuid query string(uuid) false Manager UUID
owner_uuid query string(uuid) false Owner UUID
tenant_uuid query string(uuid) false Tenant UUID
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "external_reference": "EG1234",
    "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
    "parent_location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
    "type": {
      "name": "block",
      "uuid": "82e03dcc-bd93-41ea-a234-db5dfe8a4617"
    },
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Locations list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
external_reference string¦null false none The client-provided external reference of the resource.
organisation_uuid string(uuid) false none A UUID that identifies the Organisation of the entry.
parent_location_uuid string false none The location's unique identifier (UUID) or internal reference.
type object false none none
name string false none Location type name
uuid string(uuid) false none none
uuid string(uuid) false none A UUID that references a resource.

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a location

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/locations', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/locations \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /locations

This endpoint creates a new location

Body parameter

{
  "address": {
    "address_line_1": "Millbank",
    "address_line_2": "Westminster",
    "address_zone": "London",
    "city": "London",
    "country": "GB",
    "postal_code": "SW1P 4RG"
  },
  "construction_date": "2022-04-29",
  "custom_field_values": [
    {
      "api_field_name": "string",
      "value": "string"
    }
  ],
  "external_reference": "EG1234",
  "location_groups": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "name": "Custom resource name",
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "parent_location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "size": 75,
  "tags": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "type_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "warranty_expiration_date": "2022-04-29"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true none
address body object true none
address_line_1 body string false The first address line of the resource.
address_line_2 body string¦null false The second address line of the resource.
address_zone body string false The address zone of the resource.
city body string false The town or city of the resource. This field is not required for the UK region.
country body string false The country of the resource
postal_code body string false The postal code of the resource.
construction_date body string(date) false none
custom_field_values body [object] false none
api_field_name body string false Name of the custom field
value body any false New value for the custom field
anonymous body string false none
anonymous body integer false none
anonymous body number(float) false none
external_reference body string¦null false The client-provided external reference of the resource.
location_groups body [string] false Location Group UUIDs.
name body string true The name of the resource.
organisation_uuid body string(uuid) true A UUID that identifies the Organisation of the entry.
parent_location_uuid body string false The location's unique identifier (UUID) or internal reference.
size body integer false none
tags body [string] false Tags UUIDs.
type_uuid body string(uuid) true A UUID that references a resource.
warranty_expiration_date body string(date) false none

Example responses

201 Response

{
  "address": {
    "address_line_1": "Millbank",
    "address_line_2": "Westminster",
    "address_zone": "London",
    "city": "London",
    "country": "GB",
    "postal_code": "SW1P 4RG"
  },
  "construction_date": "2022-04-29",
  "custom_field_values": [
    {
      "api_field_name": "string",
      "value": "string"
    }
  ],
  "external_reference": "EG1234",
  "location_groups": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "managers": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "name": "Custom resource name",
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "owners": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "parent_location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "size": 75,
  "tags": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "tenants": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "type": {
    "name": "block",
    "uuid": "82e03dcc-bd93-41ea-a234-db5dfe8a4617"
  },
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "warranty_expiration_date": "2022-04-29"
}

Responses

Status Meaning Description Schema
201 Created Location details Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
409 Conflict Conflict None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
address object false none none
address_line_1 string false none The first address line of the resource.
address_line_2 string¦null false none The second address line of the resource.
address_zone string false none The address zone of the resource.
city string false none The town or city of the resource. This field is not required for the UK region.
country string false none The country of the resource
postal_code string false none The postal code of the resource.
construction_date string(date) false none none
custom_field_values [object] false none none
api_field_name string false none Name of the custom field
value any false none New value for the custom field

anyOf

Name Type Required Restrictions Description
anonymous string false none none

or

Name Type Required Restrictions Description
anonymous integer false none none

or

Name Type Required Restrictions Description
anonymous number(float) false none none

continued

Name Type Required Restrictions Description
external_reference string¦null false none The client-provided external reference of the resource.
location_groups [string] false none Location Group UUIDs.
managers [string] false none Managers UUIDs.
name string false none The name of the resource.
organisation_uuid string(uuid) false none A UUID that identifies the Organisation of the entry.
owners [string] false none Owners UUIDs.
parent_location_uuid string false none The location's unique identifier (UUID) or internal reference.
size integer false none none
tags [string] false none Tags UUIDs.
tenants [string] false none Tenants UUIDs.
type object false none none
name string false none Location type name
uuid string(uuid) false none none
uuid string(uuid) false none A UUID that references a resource.
warranty_expiration_date string(date) false none none

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version

Delete a location

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/locations/{location_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/locations/{location_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /locations/{location_uuid}

This endpoint deletes a location from the client's organisation

Parameters

Name In Type Required Description
Authorization header string true Authorization header
location_uuid path string(uuid) true UUID of the Location

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Retrieve location details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/locations/{location_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/locations/{location_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /locations/{location_uuid}

This endpoint returns the details of a particular location

Parameters

Name In Type Required Description
Authorization header string true Authorization header
location_uuid path string(uuid) true UUID of the Location

Example responses

200 Response

{
  "address": {
    "address_line_1": "Millbank",
    "address_line_2": "Westminster",
    "address_zone": "London",
    "city": "London",
    "country": "GB",
    "postal_code": "SW1P 4RG"
  },
  "construction_date": "2022-04-29",
  "custom_field_values": [
    {
      "api_field_name": "string",
      "value": "string"
    }
  ],
  "external_reference": "EG1234",
  "location_groups": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "managers": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "name": "Custom resource name",
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "owners": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "parent_location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "size": 75,
  "tags": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "tenants": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "type": {
    "name": "block",
    "uuid": "82e03dcc-bd93-41ea-a234-db5dfe8a4617"
  },
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "warranty_expiration_date": "2022-04-29"
}

Responses

Status Meaning Description Schema
200 OK Location details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
address object false none none
address_line_1 string false none The first address line of the resource.
address_line_2 string¦null false none The second address line of the resource.
address_zone string false none The address zone of the resource.
city string false none The town or city of the resource. This field is not required for the UK region.
country string false none The country of the resource
postal_code string false none The postal code of the resource.
construction_date string(date) false none none
custom_field_values [object] false none none
api_field_name string false none Name of the custom field
value any false none New value for the custom field

anyOf

Name Type Required Restrictions Description
anonymous string false none none

or

Name Type Required Restrictions Description
anonymous integer false none none

or

Name Type Required Restrictions Description
anonymous number(float) false none none

continued

Name Type Required Restrictions Description
external_reference string¦null false none The client-provided external reference of the resource.
location_groups [string] false none Location Group UUIDs.
managers [string] false none Managers UUIDs.
name string false none The name of the resource.
organisation_uuid string(uuid) false none A UUID that identifies the Organisation of the entry.
owners [string] false none Owners UUIDs.
parent_location_uuid string false none The location's unique identifier (UUID) or internal reference.
size integer false none none
tags [string] false none Tags UUIDs.
tenants [string] false none Tenants UUIDs.
type object false none none
name string false none Location type name
uuid string(uuid) false none none
uuid string(uuid) false none A UUID that references a resource.
warranty_expiration_date string(date) false none none

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update a location

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/locations/{location_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/locations/{location_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /locations/{location_uuid}

This endpoint updates an existing location

Body parameter

{
  "address": {
    "address_line_1": "Millbank",
    "address_line_2": "Westminster",
    "address_zone": "London",
    "city": "London",
    "country": "GB",
    "postal_code": "SW1P 4RG"
  },
  "construction_date": "2022-04-29",
  "custom_field_values": [
    {
      "api_field_name": "string",
      "value": "string"
    }
  ],
  "external_reference": "EG1234",
  "location_groups": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "name": "Custom resource name",
  "parent_location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "size": 75,
  "tags": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "warranty_expiration_date": "2022-04-29"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
location_uuid path string(uuid) true UUID of the Location
body body object true none
address body object false none
address_line_1 body string false The first address line of the resource.
address_line_2 body string¦null false The second address line of the resource.
address_zone body string false The address zone of the resource.
city body string false The town or city of the resource. This field is not required for the UK region.
country body string false The country of the resource
postal_code body string false The postal code of the resource.
construction_date body string(date) false none
custom_field_values body [object] false none
api_field_name body string false Name of the custom field
value body any false New value for the custom field
anonymous body string false none
anonymous body integer false none
anonymous body number(float) false none
external_reference body string¦null false The client-provided external reference of the resource.
location_groups body [string] false Location Group UUIDs.
name body string false The name of the resource.
parent_location_uuid body string false The location's unique identifier (UUID) or internal reference.
size body integer false none
tags body [string] false Tags UUIDs.
warranty_expiration_date body string(date) false none

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Location Groups

List all location groups

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/location-groups', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/location-groups \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /location-groups

This endpoint returns all location groups

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "name": "Custom resource name",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Location groups list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
name string false none The name of the resource.
uuid string(uuid) false none A UUID that references a resource.

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a location group

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/location-groups', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/location-groups \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /location-groups

This endpoint creates a new location group

Body parameter

{
  "name": "Custom resource name"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true none
name body string true The name of the resource.

Example responses

201 Response

{
  "name": "Custom resource name",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
201 Created Location group details Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
name string false none The name of the resource.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version

Delete a location group

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/location-groups/{location_group_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/location-groups/{location_group_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /location-groups/{location_group_uuid}

This endpoint deletes a location group's data from the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
location_group_uuid path string(uuid) true UUID of the Location Group

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Location Managers

Location Manager objects can be associated to one or more assets in Plentific.

List all location managers

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/managers', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/managers \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /managers

This endpoint returns all location managers registered in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
organisation_uuid query string(uuid) false The organisation uuid of an entity.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "email": "hello@email.com",
    "external_reference": "EG1234",
    "first_name": "John",
    "last_name": "Doe",
    "phone_number": "+441234567890",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Location managers list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
email string(email) false none none
external_reference string¦null false none The client-provided external reference of the resource.
first_name string false none none
last_name string false none none
phone_number string(telephone) false none none
uuid string(uuid) false none A UUID that references a resource.

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a location manager

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/managers', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/managers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /managers

This endpoint creates a new location manager

Body parameter

{
  "email": "hello@email.com",
  "external_reference": "EG1234",
  "first_name": "John",
  "last_name": "Doe",
  "locations": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "phone_number": "+441234567890"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true none
email body string(email) true none
external_reference body string¦null true The client-provided external reference of the resource.
first_name body string true none
last_name body string true none
locations body [string] false none
organisation_uuid body string(uuid) true A UUID that identifies the Organisation of the entry.
phone_number body string(telephone) true none

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
201 Created There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
409 Conflict Conflict None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version
201 X-Resource-Id string uuid The UUID of the newly created element

Delete a location manager

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/managers/{manager_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/managers/{manager_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /managers/{manager_uuid}

This endpoint deletes a location manager from the client's account for all locations that they are associated with

Parameters

Name In Type Required Description
Authorization header string true Authorization header
manager_uuid path string(uuid) true UUID of the Location Manager

Example responses

401 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Retrieve location manager details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/managers/{manager_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/managers/{manager_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /managers/{manager_uuid}

This endpoint returns the details of a particular location manager

Parameters

Name In Type Required Description
Authorization header string true Authorization header
manager_uuid path string(uuid) true UUID of the Location Manager

Example responses

200 Response

{
  "email": "hello@email.com",
  "external_reference": "EG1234",
  "first_name": "John",
  "last_name": "Doe",
  "locations": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "phone_number": "+441234567890",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Location managers details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

The Location Manager

Name Type Required Restrictions Description
email string(email) false none none
external_reference string¦null false none The client-provided external reference of the resource.
first_name string false none none
last_name string false none none
locations [string] false none none
phone_number string(telephone) false none none
uuid string(uuid) false none A UUID that references a resource.

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update a location manager

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/managers/{manager_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/managers/{manager_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /managers/{manager_uuid}

This endpoint updates an existing location manager

Body parameter

{
  "email": "hello@email.com",
  "external_reference": "EG1234",
  "first_name": "John",
  "last_name": "Doe",
  "locations": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "phone_number": "+441234567890"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
manager_uuid path string(uuid) true UUID of the Location Manager
body body object true none
email body string(email) false none
external_reference body string¦null false The client-provided external reference of the resource.
first_name body string false none
last_name body string false none
locations body [string] false none
organisation_uuid body string(uuid) true A UUID that identifies the Organisation of the entry.
phone_number body string(telephone) false none

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Location Types

List all location types

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/location-types', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/location-types \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /location-types

This endpoint returns all locations types registered in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "code": "string",
    "icon_type": "estate",
    "name": "block",
    "uuid": "1a1f74f4-3a2a-47e8-8cb2-d49e55cb478f"
  }
]

Responses

Status Meaning Description Schema
200 OK Location types list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
code string false none none
icon_type string false none Icon that will be displayed in the dashboard
name string false none Location type name
uuid string false none The location type unique identifier (UUID) or internal reference.

Enumerated Values

Property Value
icon_type area
icon_type balcony
icon_type bedroom
icon_type block
icon_type bungalow
icon_type estate
icon_type factory
icon_type garage
icon_type kitchen
icon_type livingroom
icon_type mixedproperty
icon_type office
icon_type property
icon_type store
icon_type terraced
icon_type unit
icon_type yard

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a location type

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/location-types', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/location-types \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /location-types

This endpoint creates a new location type

Body parameter

{
  "code": "string",
  "icon_type": "estate",
  "name": "block"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true none
code body string false none
icon_type body string false Icon that will be displayed in the dashboard
name body string true Location type name

Enumerated Values

Parameter Value
icon_type area
icon_type balcony
icon_type bedroom
icon_type block
icon_type bungalow
icon_type estate
icon_type factory
icon_type garage
icon_type kitchen
icon_type livingroom
icon_type mixedproperty
icon_type office
icon_type property
icon_type store
icon_type terraced
icon_type unit
icon_type yard

Example responses

201 Response

{
  "code": "string",
  "icon_type": "estate",
  "name": "block",
  "uuid": "1a1f74f4-3a2a-47e8-8cb2-d49e55cb478f"
}

Responses

Status Meaning Description Schema
201 Created Location types details Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
code string false none none
icon_type string false none Icon that will be displayed in the dashboard
name string false none Location type name
uuid string false none The location type unique identifier (UUID) or internal reference.

Enumerated Values

Property Value
icon_type area
icon_type balcony
icon_type bedroom
icon_type block
icon_type bungalow
icon_type estate
icon_type factory
icon_type garage
icon_type kitchen
icon_type livingroom
icon_type mixedproperty
icon_type office
icon_type property
icon_type store
icon_type terraced
icon_type unit
icon_type yard

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version

Delete a location type

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/location-types/{location_type_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/location-types/{location_type_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /location-types/{location_type_uuid}

This endpoint deletes a location type from the client's account for all locations that they are associated with

Parameters

Name In Type Required Description
Authorization header string true Authorization header
location_type_uuid path string(uuid) true UUID of the Location Type

Example responses

401 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Retrieve location type details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/location-types/{location_type_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/location-types/{location_type_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /location-types/{location_type_uuid}

This endpoint returns the details of a particular location type

Parameters

Name In Type Required Description
Authorization header string true Authorization header
location_type_uuid path string(uuid) true UUID of the Location Type

Example responses

200 Response

{
  "code": "string",
  "icon_type": "estate",
  "name": "block",
  "uuid": "1a1f74f4-3a2a-47e8-8cb2-d49e55cb478f"
}

Responses

Status Meaning Description Schema
200 OK Location types details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
code string false none none
icon_type string false none Icon that will be displayed in the dashboard
name string false none Location type name
uuid string false none The location type unique identifier (UUID) or internal reference.

Enumerated Values

Property Value
icon_type area
icon_type balcony
icon_type bedroom
icon_type block
icon_type bungalow
icon_type estate
icon_type factory
icon_type garage
icon_type kitchen
icon_type livingroom
icon_type mixedproperty
icon_type office
icon_type property
icon_type store
icon_type terraced
icon_type unit
icon_type yard

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update a location type

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/location-types/{location_type_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/location-types/{location_type_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /location-types/{location_type_uuid}

This endpoint updates an existing location type

Body parameter

{
  "code": "string",
  "icon_type": "estate",
  "name": "block"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
location_type_uuid path string(uuid) true UUID of the Location Type
body body object true none
code body string false none
icon_type body string false Icon that will be displayed in the dashboard
name body string false Location type name

Enumerated Values

Parameter Value
icon_type area
icon_type balcony
icon_type bedroom
icon_type block
icon_type bungalow
icon_type estate
icon_type factory
icon_type garage
icon_type kitchen
icon_type livingroom
icon_type mixedproperty
icon_type office
icon_type property
icon_type store
icon_type terraced
icon_type unit
icon_type yard

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Organisation Groups

Identify Organisation Groups

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/identify', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/identify \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /identify

This endpoint returns the details of an identified organisation group

Parameters

Name In Type Required Description
Authorization header string true Authorization header

Example responses

200 Response

{
  "created": "2020-11-12 09:52:20.051000+00:00",
  "name": "Custom resource name",
  "slug": "custom-resource-name",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Organisation Group details Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
created string(date-time) false none The creation date-time of a resource
name string false none The name of the resource.
slug string false none The slug of an organisation group.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Organisations

List all organisations

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/organisations', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/organisations \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /organisations

This endpoint returns all organisations registered in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
sort_by query string false Requested offset of the results.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Enumerated Values

Parameter Value
sort_by created
sort_by -created
sort_by name
sort_by -name

Example responses

200 Response

[
  {
    "name": "Custom resource name",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Organisations list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
name string false none The name of the resource.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Retrieve organisation details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/organisations/{organisation_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/organisations/{organisation_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /organisations/{organisation_uuid}

This endpoint returns the details of a particular organisation

Parameters

Name In Type Required Description
Authorization header string true Authorization header
organisation_uuid path string(uuid) true UUID of the organisation.

Example responses

200 Response

{
  "background_check_always_required": false,
  "beneficiary_address": {
    "address_line_1": "Millbank",
    "address_line_2": "Westminster",
    "address_zone": "London",
    "city": "London",
    "country": "GB",
    "postal_code": "SW1P 4RG"
  },
  "call_centre_number": "+440800623777256",
  "contractor_tax_withholding_enabled": false,
  "disclaimer": "string",
  "finance_only_payment": false,
  "invoice_approval_threshold": 900,
  "invoice_due_period": 14,
  "legal_addresss": {
    "address_line_1": "Millbank",
    "address_line_2": "Westminster",
    "address_zone": "London",
    "city": "London",
    "country": "GB",
    "postal_code": "SW1P 4RG"
  },
  "name": "Custom resource name",
  "quote_approval_threshold": 900,
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Organisation detail Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
background_check_always_required boolean false none Will be true if a contractor background check is required for every work order raised in this Organisation
beneficiary_address object¦null false none The secondary address of the Organisation. This can be left blank if it is not applicable to your organisation. As a client operating in Germany, this will be listed on your invoices as the ‘Leistungsempfänger’.
address_line_1 string false none The first address line of the resource.
address_line_2 string¦null false none The second address line of the resource.
address_zone string false none The address zone of the resource.
city string false none The town or city of the resource. This field is not required for the UK region.
country string false none The country of the resource
postal_code string false none The postal code of the resource.
call_centre_number string¦null false none The phone number of your contact centre or central phone number
contractor_tax_withholding_enabled boolean false none Will be true if tax withholding is required for every work order raised in this Organisation
disclaimer string false none The disclaimer for this Organisation that is appended to every work order
finance_only_payment boolean false none Will be true if the payment of invoices for this Organisation can only be made by users with Finance permissions
invoice_approval_threshold number¦null false none The financial threshold set for invoices to require approval by managers before being paid
invoice_due_period number false none The payment term in number of days for invoices
legal_addresss object false none The primary address of the Organisation. This will be rendered on your invoice as the main address.
address_line_1 string false none The first address line of the resource.
address_line_2 string¦null false none The second address line of the resource.
address_zone string false none The address zone of the resource.
city string false none The town or city of the resource. This field is not required for the UK region.
country string false none The country of the resource
postal_code string false none The postal code of the resource.
name string false none The name of the resource.
quote_approval_threshold number¦null false none The financial threshold set for quotes to require approval by managers before being accepted
uuid string(uuid) false none A UUID that references a resource.

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Owners

Owner objects can be associated to one or more locations in Plentific.

List all owners

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/owners', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/owners \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /owners

This endpoint returns all owners linked to at least one location

Parameters

Name In Type Required Description
Authorization header string true Authorization header
organisation_uuid query string(uuid) false The organisation uuid of an entity.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "address": {
      "address_line_1": "Millbank",
      "address_line_2": "Westminster",
      "address_zone": "London",
      "city": "London",
      "country": "GB",
      "postal_code": "SW1P 4RG"
    },
    "email": "hello@email.com",
    "external_reference": "EG1234",
    "first_name": "John",
    "last_name": "Doe",
    "phone_number": "+441234567890",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Owners list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
address object false none none
address_line_1 string false none The first address line of the resource.
address_line_2 string¦null false none The second address line of the resource.
address_zone string false none The address zone of the resource.
city string false none The town or city of the resource. This field is not required for the UK region.
country string false none The country of the resource
postal_code string false none The postal code of the resource.
email string(email) false none none
external_reference string¦null false none The client-provided external reference of the resource.
first_name string false none none
last_name string false none none
phone_number string(telephone) false none none
uuid string(uuid) false none A UUID that references a resource.

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create an owner

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/owners', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/owners \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /owners

This endpoint creates an new owner

Body parameter

{
  "address_line_1": "Millbank",
  "address_line_2": "Westminster",
  "address_zone": "London",
  "city": "London",
  "country": "GB",
  "email": "hello@email.com",
  "external_reference": "EG1234",
  "first_name": "John",
  "last_name": "Doe",
  "locations": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "phone_number": "+441234567890",
  "postal_code": "SW1P 4RG"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true none
address_line_1 body string false The first address line of the resource.
address_line_2 body string¦null false The second address line of the resource.
address_zone body string false The address zone of the resource.
city body string false The town or city of the resource. This field is not required for the UK region.
country body string false The country of the resource
email body string(email) false none
external_reference body string¦null true The client-provided external reference of the resource.
first_name body string true none
last_name body string false none
locations body [string] false none
organisation_uuid body string(uuid) true A UUID that identifies the Organisation of the entry.
phone_number body string(telephone) false none
postal_code body string false The postal code of the resource.

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
201 Created There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
409 Conflict Conflict None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version
201 X-Resource-Id string uuid The UUID of the newly created element

Delete an owner

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/owners/{owner_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/owners/{owner_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /owners/{owner_uuid}

This endpoint deletes an owner's data from the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
owner_uuid path string(uuid) true UUID of an Owner

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Retrieve owner details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/owners/{owner_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/owners/{owner_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /owners/{owner_uuid}

This endpoint returns the details of a particular owner

Parameters

Name In Type Required Description
Authorization header string true Authorization header
owner_uuid path string(uuid) true UUID of an Owner

Example responses

200 Response

{
  "address": {
    "address_line_1": "Millbank",
    "address_line_2": "Westminster",
    "address_zone": "London",
    "city": "London",
    "country": "GB",
    "postal_code": "SW1P 4RG"
  },
  "email": "hello@email.com",
  "external_reference": "EG1234",
  "first_name": "John",
  "last_name": "Doe",
  "phone_number": "+441234567890",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Owner details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

The Owner

Name Type Required Restrictions Description
address object false none none
address_line_1 string false none The first address line of the resource.
address_line_2 string¦null false none The second address line of the resource.
address_zone string false none The address zone of the resource.
city string false none The town or city of the resource. This field is not required for the UK region.
country string false none The country of the resource
postal_code string false none The postal code of the resource.
email string(email) false none none
external_reference string¦null false none The client-provided external reference of the resource.
first_name string false none none
last_name string false none none
phone_number string(telephone) false none none
uuid string(uuid) false none A UUID that references a resource.

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update an owner

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/owners/{owner_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/owners/{owner_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /owners/{owner_uuid}

This endpoint updates an existing owner

Body parameter

{
  "address_line_1": "Millbank",
  "address_line_2": "Westminster",
  "address_zone": "London",
  "city": "London",
  "country": "GB",
  "first_name": "John",
  "last_name": "Doe",
  "locations": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "phone_number": "+441234567890",
  "postal_code": "SW1P 4RG"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
owner_uuid path string(uuid) true UUID of an Owner
body body object true none
address_line_1 body string false The first address line of the resource.
address_line_2 body string¦null false The second address line of the resource.
address_zone body string false The address zone of the resource.
city body string false The town or city of the resource. This field is not required for the UK region.
country body string false The country of the resource
first_name body string false none
last_name body string false none
locations body [string] false none
organisation_uuid body string(uuid) true A UUID that identifies the Organisation of the entry.
phone_number body string(telephone) false none
postal_code body string false The postal code of the resource.

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
409 Conflict Conflict None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Repair Reports

List all repair reports

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/repair-reports', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/repair-reports \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /repair-reports

This endpoint returns all the repair reports in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.
status query string false The status of a repair report.

Enumerated Values

Parameter Value
status pending
status in_progress
status sign_off_required
status completed

Example responses

200 Response

{
  "location_uuid": "603929d5-6b28-4c75-ace0-f39d47a3a653",
  "name": "Repair Report",
  "status": "pending",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Repair reports list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
location_uuid string false none The location's unique identifier (UUID) or internal reference.
name string false none none
status string false none none
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
status pending
status in_progress
status sign_off_required
status completed

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

List all repair report faults

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/repair-reports/{repair_report_uuid}/faults', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/repair-reports/{repair_report_uuid}/faults \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /repair-reports/{repair_report_uuid}/faults

This endpoint returns all the repair reports in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

{
  "attachments": [
    "e2d7c1f1-b561-4937-82c9-195e109d4581",
    "160d959e-e9d8-4113-a692-3f136874383b"
  ],
  "category_uuid": "23791438-f098-49ca-b1e6-40da5bc47255",
  "description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked.",
  "fault_category_uuid": "6ad92318-4a3a-4de4-97d3-b80da0e403ee",
  "service_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "work_order_uuid": "4b5f859f-5f31-4d7e-9f65-3ccff17aec75"
}

Responses

Status Meaning Description Schema
200 OK Repair report faults list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
attachments [string] false none List of pdf file UUIDs that are attached to an Invoice.
category_uuid string(uuid) false none Clients must map the Plentific category_uuid on their systems before sending over data.
The category_uuid must contain the service_uuid used in the fault object(s).
The Categories and Services endpoints will help with this mapping.
description string¦null false none This is the detailed explanation of the work order. We expect a concatenated text from your systems.
fault_category_uuid string(uuid)¦null false none A UUID that references a fault category.
service_uuid string(uuid) false none This is Plentific service_uuid. Clients must map the Plentific service_uuid on their systems before sending over data. If this field is missing, we will raise an exception and will not not proceed.
uuid string(uuid) false none A UUID that references a resource.
work_order_uuid string(uuid)¦null false none A UUID that references a work order.

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Reports

List all reports

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/reports', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/reports \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /reports

This endpoint returns all reports that can be run from the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "slug": "string",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
    "versions": [
      {
        "created": "2023-03-28T15:49:30Z",
        "uuid": "842e7286-71bb-4fd1-a9e1-a7bd4a98664d"
      }
    ]
  }
]

Responses

Status Meaning Description Schema
200 OK Report list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
slug string false none The slug value of Report Type
uuid string(uuid) false none A UUID that references a resource.
versions [object] false none none
created string(date-time) false none The creation date-time of version
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Retrieve report details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/reports/{report_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/reports/{report_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /reports/{report_uuid}

This endpoint returns the details of a particular report

Parameters

Name In Type Required Description
Authorization header string true Authorization header
report_uuid path string(uuid) true UUID of the report.

Example responses

200 Response

{
  "description": "string",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "versions": [
    {
      "created": "2023-03-28T15:49:30Z",
      "uuid": "842e7286-71bb-4fd1-a9e1-a7bd4a98664d"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Report detail Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
description string false none The slug value of Report Type
uuid string(uuid) false none A UUID that references a resource.
versions [object] false none none
created string(date-time) false none The creation date-time of version
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

List all report runs

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/reports/{report_uuid}/runs', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/reports/{report_uuid}/runs \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /reports/{report_uuid}/runs

This endpoint returns all report runs in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
organisation_uuid query string(uuid) false The organisation uuid of an entity.
sort_by query string false The order field of the query result.
report_uuid path string(uuid) true UUID of the report.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Enumerated Values

Parameter Value
sort_by created
sort_by -created

Example responses

200 Response

[
  {
    "created": "2023-03-28T15:49:30Z",
    "organisations": [
      "91df3492-3767-46bb-00c5-285f8eb85c97"
    ],
    "uuid": "842e7286-71bb-4fd1-a9e1-a7bd4a98664d"
  }
]

Responses

Status Meaning Description Schema
200 OK Report Run list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
created string(date-time) false none The creation date-time of report run
organisations [string] false none Organisation UUIDs of report run.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a new report run

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/reports/{report_uuid}/runs', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/reports/{report_uuid}/runs \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /reports/{report_uuid}/runs

This endpoint creates a new run of a particular report

Body parameter

{
  "parameters": {
    "enquiry_status_list": [
      "quote_accepted"
    ],
    "from_datetime": "2023-03-28T15:49:30Z",
    "invoice_status_list": [
      "paid"
    ],
    "location_groups": [
      "15791638-f098-49ca-b1a6-40da5bc47255"
    ],
    "organisations": [
      "91df3492-3767-46bb-00c5-285f8eb85c97"
    ],
    "to_datetime": "2023-03-28T15:49:30Z"
  },
  "version": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
report_uuid path string(uuid) true UUID of the report.
body body object true none
parameters body object false none
enquiry_status_list body [string] false The enquiry statuses of report run. This field is required for report type accrual and an error will be raised if user provides it for other type of report runs.
from_datetime body string(date-time) false The start date-time of report run. This field is required for every report type except accrual.
invoice_status_list body [string] false The invoice statuses of agent invoices, an error will be raised if user provides it for other type of report runs.
location_groups body [string] false Location Group UUIDs.
organisations body [string] false Organisation UUIDs of report run.
to_datetime body string(date-time) false The end date-time of report run. This field is required for every report type except accrual.
version body string(uuid) false A UUID that references version of the report.

Enumerated Values

Parameter Value
enquiry_status_list quote_accepted
enquiry_status_list booked
enquiry_status_list done
enquiry_status_list deposit_paid
enquiry_status_list invoice_outstanding
enquiry_status_list invoice_overdue
invoice_status_list paid
invoice_status_list overdue
invoice_status_list outstanding

Example responses

202 Response

{
  "created": "2023-03-28T15:49:30Z",
  "parameters": {
    "enquiry_status_list": [
      "quote_accepted"
    ],
    "from_datetime": "2023-03-28T15:49:30Z",
    "invoice_status_list": [
      "paid"
    ],
    "location_groups": [
      "15791638-f098-49ca-b1a6-40da5bc47255"
    ],
    "organisations": [
      "91df3492-3767-46bb-00c5-285f8eb85c97"
    ],
    "to_datetime": "2023-03-28T15:49:30Z"
  },
  "report_uuid": "49df3292-2767-44bb-80c5-285e8eb85c97",
  "status": "complete",
  "url": "https://d3p0y7b1b87cj.cloudfront.net/plentific-file-uploads-private/uploads/20201127/1606489646-f09a1d2480/londonquadrant-accrual-20201127-150724.csv",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "version": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
202 Accepted Report run details Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
409 Conflict Conflict None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 202

Name Type Required Restrictions Description
created string(date-time) false none The creation date-time of report_run
parameters object false none none
enquiry_status_list [string] false none The enquiry statuses of report run. This field is required for report type accrual and an error will be raised if user provides it for other type of report runs.
from_datetime string(date-time) false none The start date-time of report run. This field is required for every report type except accrual.
invoice_status_list [string] false none The invoice statuses of agent invoices, an error will be raised if user provides it for other type of report runs.
location_groups [string] false none Location Group UUIDs.
organisations [string] false none Organisation UUIDs of report run.
to_datetime string(date-time) false none The end date-time of report run. This field is required for every report type except accrual.
report_uuid string(uuid) false none A UUID that identifies the Report of the entry.
status string false none The status of the ReportRun.
url string(url) false none The url of completed Report Run.
uuid string(uuid) false none A UUID that references a resource.
version string(uuid) false none A UUID that references version of the report.

Enumerated Values

Property Value
status pending
status scheduled
status generated
status complete
status error
status none

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
202 X-Api-Version string date The date of version

Retrieve report run details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/reports/{report_uuid}/runs/{report_run_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/reports/{report_uuid}/runs/{report_run_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /reports/{report_uuid}/runs/{report_run_uuid}

This endpoint returns the details of a particular report run

Parameters

Name In Type Required Description
Authorization header string true Authorization header
report_uuid path string(uuid) true UUID of the report.
report_run_uuid path string(uuid) true UUID of the report run.

Example responses

200 Response

{
  "created": "2023-03-28T15:49:30Z",
  "parameters": {
    "enquiry_status_list": [
      "quote_accepted"
    ],
    "from_datetime": "2023-03-28T15:49:30Z",
    "invoice_status_list": [
      "paid"
    ],
    "location_groups": [
      "15791638-f098-49ca-b1a6-40da5bc47255"
    ],
    "organisations": [
      "91df3492-3767-46bb-00c5-285f8eb85c97"
    ],
    "to_datetime": "2023-03-28T15:49:30Z"
  },
  "report_uuid": "49df3292-2767-44bb-80c5-285e8eb85c97",
  "status": "complete",
  "url": "https://d3p0y7b1b87cj.cloudfront.net/plentific-file-uploads-private/uploads/20201127/1606489646-f09a1d2480/londonquadrant-accrual-20201127-150724.csv",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "version": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Report run details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
created string(date-time) false none The creation date-time of report_run
parameters object false none none
enquiry_status_list [string] false none The enquiry statuses of report run. This field is required for report type accrual and an error will be raised if user provides it for other type of report runs.
from_datetime string(date-time) false none The start date-time of report run. This field is required for every report type except accrual.
invoice_status_list [string] false none The invoice statuses of agent invoices, an error will be raised if user provides it for other type of report runs.
location_groups [string] false none Location Group UUIDs.
organisations [string] false none Organisation UUIDs of report run.
to_datetime string(date-time) false none The end date-time of report run. This field is required for every report type except accrual.
report_uuid string(uuid) false none A UUID that identifies the Report of the entry.
status string false none The status of the ReportRun.
url string(url) false none The url of completed Report Run.
uuid string(uuid) false none A UUID that references a resource.
version string(uuid) false none A UUID that references version of the report.

Enumerated Values

Property Value
status pending
status scheduled
status generated
status complete
status error
status none

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Roles

List all roles

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/roles', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/roles \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /roles

This endpoint returns all roles registered in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "name": "string",
    "uuid": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Roles Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
name string false none none
uuid string(uuid) false none none

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Services

Services provided by professionals e.g. Gas Safety inspection.

List all services

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/services', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/services \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /services

This endpoint can be used to retrieve and search for services

Parameters

Name In Type Required Description
Authorization header string true Authorization header
name query string false Search keyword for filtering the objects.
slug query string false Search keyword for filtering the objects based on slug.
uuid query string(uuid) false Search keyword for filtering the objects based on uuid.
uuid__in query string(uuid) false Search keyword for filtering the objects based on multiple uuids.
category_uuid query string(uuid) false Filter by Category UUID
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "category_uuid_list": [
      "15791638-f098-49ca-b1a6-40da5bc47255"
    ],
    "deactivated": false,
    "name": "Home Security Specialist",
    "slug": "home-security-specialist",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Services list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
category_uuid_list [string] false none none
deactivated boolean false none Indicates whether a Service is deactivated or not.
name string false none Service name.
slug string false none Service's slug.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Tags

List all tags

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/tags', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/tags \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /tags

This endpoint returns all tags registered in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
organisation_uuid query string(uuid) false The organisation uuid of an entity.
type query string false The type of an entity.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Enumerated Values

Parameter Value
type enquiry
type location
type job
type task
type project
type void

Example responses

200 Response

[
  {
    "color": "#328c47",
    "name": "Custom resource name",
    "organisations": [
      "842e7286-71bb-4fd1-a9e1-a7bd4a98664d",
      "96cac9aa-575b-4976-a03d-d671884dbd16"
    ],
    "type": "location",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Tags list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
color string¦null true none The color of the tag expresed as an RGB hex code.
name string true none The name of the resource.
organisations [string] true none A list of Organisations uuids using this Account Code.
type string true none none
uuid string(uuid) true none A UUID that references a resource.

Enumerated Values

Property Value
type location
type enquiry
type job

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a tag

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/tags', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/tags \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /tags

This endpoint creates a new tag

Body parameter

{
  "color": "#328c47",
  "is_enabled": true,
  "name": "Custom resource name",
  "organisations": [
    "842e7286-71bb-4fd1-a9e1-a7bd4a98664d",
    "96cac9aa-575b-4976-a03d-d671884dbd16"
  ],
  "type": "location"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true none
color body string¦null true The color of the tag expresed as an RGB hex code.
is_enabled body boolean true Indicates whether a tag is enabled or not.
name body string true The name of the resource.
organisations body [string] true A list of Organisations uuids using this Account Code.
type body string true none

Enumerated Values

Parameter Value
type location
type enquiry
type job

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
201 Created There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
409 Conflict Conflict None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version
201 X-Resource-Id string uuid The UUID of the newly created element

Delete a tag

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/tags/{tag_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/tags/{tag_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /tags/{tag_uuid}

This endpoint deletes a tag so that it can no longer be added to any properties or work orders

Parameters

Name In Type Required Description
Authorization header string true Authorization header
tag_uuid path string(uuid) true UUID of the tag.

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Retrieve tag details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/tags/{tag_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/tags/{tag_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /tags/{tag_uuid}

This endpoint returns the details of a particular tag

Parameters

Name In Type Required Description
Authorization header string true Authorization header
tag_uuid path string(uuid) true UUID of the tag.

Example responses

200 Response

{
  "color": "#328c47",
  "name": "Custom resource name",
  "organisations": [
    "842e7286-71bb-4fd1-a9e1-a7bd4a98664d",
    "96cac9aa-575b-4976-a03d-d671884dbd16"
  ],
  "type": "location",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Tag details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
color string¦null true none The color of the tag expresed as an RGB hex code.
name string true none The name of the resource.
organisations [string] true none A list of Organisations uuids using this Account Code.
type string true none none
uuid string(uuid) true none A UUID that references a resource.

Enumerated Values

Property Value
type location
type enquiry
type job

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update a tag

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/tags/{tag_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/tags/{tag_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /tags/{tag_uuid}

This endpoint updates an existing tag

Body parameter

{
  "color": "#328c47",
  "name": "Custom resource name",
  "organisations": [
    "842e7286-71bb-4fd1-a9e1-a7bd4a98664d",
    "96cac9aa-575b-4976-a03d-d671884dbd16"
  ],
  "type": "location"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
tag_uuid path string(uuid) true UUID of the tag.
body body object true none
color body string¦null false The color of the tag expresed as an RGB hex code.
name body string false The name of the resource.
organisations body [string] false A list of Organisations uuids using this Account Code.
type body string false none

Enumerated Values

Parameter Value
type location
type enquiry
type job

Example responses

200 Response

{
  "color": "#328c47",
  "name": "Custom resource name",
  "organisations": [
    "842e7286-71bb-4fd1-a9e1-a7bd4a98664d",
    "96cac9aa-575b-4976-a03d-d671884dbd16"
  ],
  "type": "location",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Tag details Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
color string¦null true none The color of the tag expresed as an RGB hex code.
name string true none The name of the resource.
organisations [string] true none A list of Organisations uuids using this Account Code.
type string true none none
uuid string(uuid) true none A UUID that references a resource.

Enumerated Values

Property Value
type location
type enquiry
type job

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Tenants

Tenant objects can be associated to one or more assets in Plentific.

List all tenants

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/tenants', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/tenants \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /tenants

This endpoint returns all tenants registered in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
organisation_uuid query string(uuid) false The organisation uuid of an entity.
external_reference query string false The external reference of an entity.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "email": "hello@email.com",
    "external_reference": "EG1234",
    "first_name": "John",
    "last_name": "Doe",
    "phone_number": "+441234567890",
    "tenant_identifier": "TNT2011",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Tenants list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
email string(email) false none none
external_reference string¦null false none The client-provided external reference of the resource.
first_name string false none none
last_name string false none none
phone_number string(telephone) false none none
tenant_identifier string false none The reference number that identifies a tenant.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a tenant

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/tenants', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/tenants \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /tenants

This endpoint creates a new tenant

Body parameter

{
  "email": "hello@email.com",
  "external_reference": "EG1234",
  "first_name": "John",
  "last_name": "Doe",
  "location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "phone_number": "+441234567890",
  "tenant_identifier": "TNT2011"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true none
email body string(email) false none
external_reference body string¦null true The client-provided external reference of the resource.
first_name body string false none
last_name body string false none
location_uuid body string true The location's unique identifier (UUID) or internal reference.
organisation_uuid body string(uuid) true A UUID that identifies the Organisation of the entry.
phone_number body string(telephone) false none
tenant_identifier body string false The reference number that identifies a tenant.

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
201 Created There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
409 Conflict Conflict None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version
201 X-Resource-Id string uuid The UUID of the newly created element

Delete a tenant

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/tenants/{tenant_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/tenants/{tenant_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /tenants/{tenant_uuid}

This endpoint deletes a tenant's data from the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
tenant_uuid path string(uuid) true UUID of the tenant.

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Retrieve tenant details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/tenants/{tenant_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/tenants/{tenant_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /tenants/{tenant_uuid}

This endpoint returns the details of a particular tenant

Parameters

Name In Type Required Description
Authorization header string true Authorization header
tenant_uuid path string(uuid) true UUID of the tenant.

Example responses

200 Response

{
  "email": "hello@email.com",
  "external_reference": "EG1234",
  "first_name": "John",
  "last_name": "Doe",
  "location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "phone_number": "+441234567890",
  "tenant_identifier": "TNT2011",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Tenant details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

The Tenant

Name Type Required Restrictions Description
email string(email) false none none
external_reference string¦null false none The client-provided external reference of the resource.
first_name string false none none
last_name string false none none
location_uuid string false none The location's unique identifier (UUID) or internal reference.
phone_number string(telephone) false none none
tenant_identifier string false none The reference number that identifies a tenant.
uuid string(uuid) false none A UUID that references a resource.

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update a tenant

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/tenants/{tenant_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/tenants/{tenant_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /tenants/{tenant_uuid}

This endpoint updates an existing tenant

Body parameter

{
  "email": "hello@email.com",
  "external_reference": "EG1234",
  "first_name": "John",
  "last_name": "Doe",
  "location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "phone_number": "+441234567890"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
tenant_uuid path string(uuid) true UUID of the tenant.
body body object true none
email body string(email) false none
external_reference body string¦null false The client-provided external reference of the resource.
first_name body string false none
last_name body string false none
location_uuid body string false The location's unique identifier (UUID) or internal reference.
organisation_uuid body string(uuid) false A UUID that identifies the Organisation of the entry.
phone_number body string(telephone) false none

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Users

List all users

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/users', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/users \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /users

This endpoint returns all users registered in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.
role_uuid query string(uuid) false Filter by role UUID
deactivated query string false Filter by deactivated users
organisation_uuid query string(uuid) false Filter by organisation
first_name query string false Filter by first name
last_name query string false Filter by last name
verified query string false Filter by verified flag
email query string(email) false Filter by email

Enumerated Values

Parameter Value
deactivated true
deactivated false
verified true
verified false

Example responses

200 Response

[
  {
    "deactivation_date": "2023-03-28T15:49:30Z",
    "email": "hello@email.com",
    "first_name": "John",
    "last_name": "Doe",
    "organisations": [
      "91df3492-3767-46bb-00c5-285f8eb85c97"
    ],
    "role_uuid": "string",
    "uuid": "string",
    "verified": true
  }
]

Responses

Status Meaning Description Schema
200 OK Users list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
deactivation_date string(date-time) false none none
email string(email) false none none
first_name string false none none
last_name string false none none
organisations [string] false none none
role_uuid string(uuid) false none none
uuid string(uuid) false none none
verified boolean false none Indicates whether user is verified or not

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a User

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/users', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/users \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /users

This endpoint creates a new User.

Body parameter

{
  "email": "hello@email.com",
  "first_name": "John",
  "last_name": "Doe",
  "organisations": [
    "842e7286-71bb-4fd1-a9e1-a7bd4a98664d",
    "96cac9aa-575b-4976-a03d-d671884dbd16"
  ],
  "phone_number": "+441234567890"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true This is the body that can be used to create a User.
email body string(email) true none
first_name body string true none
last_name body string true none
organisations body [string] true List of Organisation UUIDs.
phone_number body string(telephone) false none

Example responses

201 Response

{
  "deactivation_date": "2023-03-28T15:49:30Z",
  "email": "hello@email.com",
  "first_name": "John",
  "last_name": "Doe",
  "organisations": [
    "91df3492-3767-46bb-00c5-285f8eb85c97"
  ],
  "phone_number": "+441234567890",
  "role_uuid": "string",
  "uuid": "string",
  "verified": true
}

Responses

Status Meaning Description Schema
201 Created User details Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
deactivation_date string(date-time) false none none
email string(email) false none none
first_name string false none none
last_name string false none none
organisations [string] false none none
phone_number string(telephone) false none none
role_uuid string(uuid) false none none
uuid string(uuid) false none none
verified boolean false none Indicates whether user is verified or not

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version

Retrieve user details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/users/{user_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/users/{user_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /users/{user_uuid}

This endpoint returns the details of a particular user

Parameters

Name In Type Required Description
Authorization header string true Authorization header
user_uuid path string(uuid) true UUID of the user.

Example responses

200 Response

{
  "deactivation_date": "2023-03-28T15:49:30Z",
  "email": "hello@email.com",
  "first_name": "John",
  "last_name": "Doe",
  "organisations": [
    "91df3492-3767-46bb-00c5-285f8eb85c97"
  ],
  "phone_number": "+441234567890",
  "role_uuid": "string",
  "uuid": "string",
  "verified": true
}

Responses

Status Meaning Description Schema
200 OK User details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
deactivation_date string(date-time) false none none
email string(email) false none none
first_name string false none none
last_name string false none none
organisations [string] false none none
phone_number string(telephone) false none none
role_uuid string(uuid) false none none
uuid string(uuid) false none none
verified boolean false none Indicates whether user is verified or not

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update User

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/users/{user_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/users/{user_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /users/{user_uuid}

This endpoint updates an existing User

Body parameter

{
  "deactivated": true,
  "organisations": [
    "842e7286-71bb-4fd1-a9e1-a7bd4a98664d",
    "96cac9aa-575b-4976-a03d-d671884dbd16"
  ]
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
user_uuid path string(uuid) true UUID of the user.
body body object false This is the body that can be used to update a User.
deactivated body boolean false Only accepts True value for deactivating a User.
organisations body [string] false List of Organisation UUIDs.

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Webhooks

List all Webhook Events

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/webhooks/events', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/webhooks/events \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /webhooks/events

This endpoint returns all the available webhook events

Parameters

Name In Type Required Description
Authorization header string true Authorization header

Example responses

200 Response

[
  {
    "event": "work_order.completed",
    "matching_subscriptions": [
      "58df3292-2767-44bb-80c6-285e8eb85c97"
    ]
  }
]

Responses

Status Meaning Description Schema
200 OK Webhook Events List Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
event string false none The name of the event
matching_subscriptions [string] false none A List of Subscriptions associated to the event

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

List all webhook subscriptions

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/webhooks/subscriptions', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/webhooks/subscriptions \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /webhooks/subscriptions

This endpoint returns all webhook subscriptions registered in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "alerts_enabled": true,
    "endpoint_url": "http://example.com",
    "endpoint_version": "v3",
    "is_enabled": true,
    "matching_events": [
      "*"
    ],
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Webhook Subscriptions Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
alerts_enabled boolean false none none
endpoint_url string(uri) false none none
endpoint_version string false none The version of payload schema that will be sent to webhook endpoint_url.
is_enabled boolean false none none
matching_events [string] false none none
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
endpoint_version v1
endpoint_version v2
endpoint_version v3

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a webhook subscription

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/webhooks/subscriptions', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/webhooks/subscriptions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /webhooks/subscriptions

This endpoint creates a new webhook subscription

Body parameter

{
  "alerts_enabled": true,
  "endpoint_secret": "string",
  "endpoint_url": "http://example.com",
  "endpoint_version": "v3",
  "is_enabled": true,
  "matching_events": [
    "*"
  ]
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true none
alerts_enabled body boolean false none
endpoint_secret body string true none
endpoint_url body string(uri) true none
endpoint_version body string false The version of payload schema that will be sent to webhook endpoint_url.
is_enabled body boolean false none
matching_events body [string] true none

Enumerated Values

Parameter Value
endpoint_version v1
endpoint_version v2
endpoint_version v3
matching_events *
matching_events booking.*
matching_events booking.created
matching_events booking.updated
matching_events completion_report.*
matching_events completion_report.signed_off
matching_events completion_report.submitted
matching_events completion_report.rejected
matching_events inspection.*
matching_events inspection.completed
matching_events inspection.created
matching_events invoice.*
matching_events invoice.approved
matching_events invoice.cancelled
matching_events invoice.overdue
matching_events invoice.paid
matching_events invoice.received
matching_events message.*
matching_events message.received
matching_events outstanding_issue.*
matching_events outstanding_issue.closed
matching_events outstanding_issue.created
matching_events repair_report.*
matching_events repair_report.created
matching_events quote.*
matching_events quote.accepted
matching_events quote.received
matching_events quote.variation_accepted
matching_events quote.variation_declined
matching_events quote.variation_requested
matching_events work_order.*
matching_events work_order.cancelled
matching_events work_order.completed
matching_events work_order.created
matching_events work_order.job_accepted
matching_events work_order.published

Example responses

201 Response

{
  "alerts_enabled": true,
  "endpoint_url": "http://example.com",
  "endpoint_version": "v3",
  "is_enabled": true,
  "matching_events": [
    "*"
  ],
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
201 Created Webhook Subscription Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
alerts_enabled boolean false none none
endpoint_url string(uri) false none none
endpoint_version string false none The version of payload schema that will be sent to webhook endpoint_url.
is_enabled boolean false none none
matching_events [string] false none none
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
endpoint_version v1
endpoint_version v2
endpoint_version v3

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version

Delete a webhook subscription

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/webhooks/subscriptions/{subscription_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/webhooks/subscriptions/{subscription_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /webhooks/subscriptions/{subscription_uuid}

This endpoint deletes a webhook subscription

Parameters

Name In Type Required Description
Authorization header string true Authorization header
subscription_uuid path string(uuid) true A UUID that references a subscription

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Retrieve webhook subscription details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/webhooks/subscriptions/{subscription_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/webhooks/subscriptions/{subscription_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /webhooks/subscriptions/{subscription_uuid}

This endpoint returns the details of a particular webhook subscription

Parameters

Name In Type Required Description
Authorization header string true Authorization header
subscription_uuid path string(uuid) true A UUID that references a subscription

Example responses

200 Response

{
  "alerts_enabled": true,
  "endpoint_url": "http://example.com",
  "endpoint_version": "v3",
  "is_enabled": true,
  "matching_events": [
    "*"
  ],
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Webhook Subscription Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
alerts_enabled boolean false none none
endpoint_url string(uri) false none none
endpoint_version string false none The version of payload schema that will be sent to webhook endpoint_url.
is_enabled boolean false none none
matching_events [string] false none none
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
endpoint_version v1
endpoint_version v2
endpoint_version v3

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Work Orders

Work Orders can be raised in Plentific, using the 'service_uuid' to post the works out for quotes from tradesmen with the correct skillset. The Get Service Details endpoint will return the list of Plentific 'service_uuids'.

List all work orders

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /work-orders

This endpoint returns all work orders registered in the client's account

Parameters

Name In Type Required Description
Authorization header string true Authorization header
organisation_uuid query string(uuid) false The organisation uuid of an entity.
status query string false The status of work order.
created_from query string(date) false The date parameter that denotes start creation date of the work order.
created_to query string(date) false The date parameter that denotes end creation date of the work order.
external_reference query string false The external reference of an entity.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Enumerated Values

Parameter Value
status new
status approval_pending
status approved
status declined
status job_leads_sent
status customer_engaged
status pro_engaged
status customer_pro_engaged
status pro_claimed_job
status quoted
status quote_accepted
status hired
status booked
status customer_cancelled
status deposit_paid
status invoice_outstanding
status invoice_paid
status invoice_overdue
status invalid
status lost
status expired
status refunded
status paid_off_platform
status done
status signed_off

Example responses

200 Response

[
  {
    "created": "2023-03-28T15:49:30Z",
    "due_date": "2020-09-26 07:00:00+00:00",
    "external_reference": "EG1234",
    "is_emergency": true,
    "location_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
    "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
    "status": "new",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
    "work_order_type": "MARKETPLACE"
  }
]

Responses

Status Meaning Description Schema
200 OK Tenant details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
created string(date-time) false none none
due_date string(date-time)¦null false none The due date for the work order.
external_reference string¦null false none The client-provided external reference of the resource.
is_emergency boolean false none If this is an emergency work order this flag will be set.
location_uuid string false none The location's unique identifier (UUID) or internal reference.
organisation_uuid string(uuid) false none A UUID that identifies the Organisation of the entry.
status string false none none
uuid string(uuid) false none A UUID that references a resource.
work_order_type string false none This is the type of the work order. The default value is MARKETPLACE if nothing is provided.

Enumerated Values

Property Value
status new
status approval_pending
status approved
status declined
status job_leads_sent
status customer_engaged
status pro_engaged
status customer_pro_engaged
status pro_claimed_job
status quoted
status quote_accepted
status hired
status booked
status customer_cancelled
status deposit_paid
status invoice_outstanding
status invoice_paid
status invoice_overdue
status invalid
status lost
status expired
status refunded
status paid_off_platform
status done
status signed_off
work_order_type CONTRACTED
work_order_type DLO
work_order_type MARKETPLACE

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create a work order

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/work-orders', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/work-orders \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /work-orders

This endpoint creates a new work order.

Body parameter

{
  "access_notes": "No parking available at this property.",
  "account_code": "ACCOUNT-1",
  "assignee": "hello@email.com",
  "booking_preferences": {
    "calendar_events": [
      {
        "from_datetime": "2020-09-26 07:00:00+00:00",
        "to_datetime": "2020-09-26 12:00:00+00:00"
      }
    ],
    "info": "Please avoid 3-4pm school run."
  },
  "category_uuid": "23791438-f098-49ca-b1e6-40da5bc47255",
  "contacts": [
    {
      "email": "hello@email.com",
      "external_reference": "EG1234",
      "first_name": "John",
      "is_private": true,
      "last_name": "Doe",
      "phone_number": "+441234567890",
      "role": "property_manager"
    }
  ],
  "created_by": "johndoe@test.com",
  "due_date": "2020-09-26 07:00:00+00:00",
  "external_reference": "EG1234",
  "faults": [
    {
      "attachments": [
        "e75665c2-9f6e-4017-8596-ed13db0c8851",
        "f9219b92-e00d-4357-84df-e274737eb06e"
      ],
      "description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked.",
      "service_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
      "uuid": "e7a4b13a-7a73-4711-8039-77bef9fb4840"
    }
  ],
  "is_background_check_required": false,
  "is_contractor_tax_withheld": true,
  "is_emergency": true,
  "location": {
    "external_reference": "EG1234",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  },
  "metadata": {
    "key1": "value1",
    "key2": 2
  },
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "status": "job_leads_sent",
  "tags": [
    "1300ac83-504b-48ad-88e8-c061ece90780",
    "e7b383c0-61e7-4e3a-9da8-3c2bef2e6c87"
  ],
  "visitation_rules": [
    "PAIR_VISIT",
    "CONTACT_PM_BEFORE"
  ],
  "work_order_type": "MARKETPLACE"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
body body object true none
access_notes body string¦null false Details about accessibility information for the property, if known.
account_code body string true The account code.
assignee body string(email) false The email of assignee
booking_preferences body object false Preferred appointment slots for the work order.
calendar_events body [object]¦null false Up to 4 preferences.
from_datetime body string(date-time) true Start of preferred booking slot.
to_datetime body string(date-time) true End of preferred booking slot.
info body string false Additional notes for the booking preferences.
category_uuid body string true Clients must map the Plentific category_uuid on their systems before sending over data. The category_uuid must contain the service_uuid used in the fault object(s). The Categories and Services endpoints will help with this mapping.
contacts body [object] false Tenant/Nominated contacts designated for the work order.
email body string(email) false none
external_reference body string¦null true The client-provided external reference of the resource.
first_name body string true none
is_private body boolean false If contact information should be private or shared with the contractor.
last_name body string true none
phone_number body string(telephone) true none
role body string true none
created_by body string(email) false The email address of the user who posted this job. If there is no user account in Plentific with this email address we'll fallback on the business unit API user.
due_date body string(date-time)¦null false The due date for the work order.
external_reference body string¦null false The client-provided external reference of the resource (max length 50).
faults body [object] true none
attachments body [string] false none
description body string true This is the detailed explanation of the work order. We expect a concatenated text from your systems (min length 40, max length 10000).
service_uuid body string(uuid) true Clients must map the Plentific service_uuid on their systems before sending over data. Multiple faults can be posted but each service_uuid must be valid for the category_uuid. The Categories and Services endpoints will help with this mapping.
uuid body string(uuid) false The UUID of the faults
is_background_check_required body boolean false This denotes whether the work order only be sent to contractors who have a valid DBS check in the UK.
is_contractor_tax_withheld body boolean false This denotes whether the work order is susceptible to the CIS scheme for UK clients, or the Bauabzugssteuer scheme for German clients.
is_emergency body boolean false If this is an emergency work order this flag will be set.
location body object true We expect client will send us either UUID or external reference for the location.
external_reference body string¦null false The client-provided external reference of the resource.
uuid body string(uuid) false A UUID that references a resource.
metadata body object¦null false Field holding custom data in key-value pairs (max. 6).
organisation_uuid body string(uuid) true A UUID that identifies the Organisation of the entry.
status body string false Allowed values: 'new' = create work order, 'job_leads_sent' = create work order and send it to marketplace. If value is not set, it will default to 'job_leads_sent'
tags body [string] false A list of tags with type 'enquiry' applied to the work order.
visitation_rules body [string] false Rules regarding property visitation for the work order, if known.
work_order_type body string false This is the type of the work order. The default value is MARKETPLACE if nothing is provided.

Enumerated Values

Parameter Value
role property_manager
role tenant
role other_contact
status new
status job_leads_sent
visitation_rules PAIR_VISIT
visitation_rules CONTACT_PM_BEFORE
visitation_rules PM_ONSITE_DURING
work_order_type CONTRACTED
work_order_type DLO
work_order_type MARKETPLACE

Example responses

201 Response

{
  "access_notes": "No parking available at this property.",
  "account_code": "ACCOUNT-1",
  "assignee": "hello@email.com",
  "contractor": {
    "name": "Custom resource name",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  },
  "created": "2023-03-28T15:49:30Z",
  "created_by": "johndoe@test.com",
  "due_date": "2020-09-26 07:00:00+00:00",
  "external_reference": "EG1234",
  "faults": [
    {
      "attachments": [
        "e75665c2-9f6e-4017-8596-ed13db0c8851",
        "f9219b92-e00d-4357-84df-e274737eb06e"
      ],
      "description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked.",
      "service_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
      "uuid": "e7a4b13a-7a73-4711-8039-77bef9fb4840"
    }
  ],
  "invoice_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "is_background_check_required": true,
  "is_contractor_tax_withheld": true,
  "is_emergency": true,
  "location": {
    "external_reference": "EG1234",
    "type": "property",
    "uuid": "82e03dcc-bd93-41ea-a234-db5dfe8a4617"
  },
  "metadata": {
    "key1": "value1",
    "key2": 2
  },
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "service": {
    "name": "Home Security Specialist",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  },
  "state_history": [
    {
      "created": "2023-03-28T15:49:30Z",
      "status": "new"
    }
  ],
  "status": "new",
  "tags": [
    "1300ac83-504b-48ad-88e8-c061ece90780",
    "e7b383c0-61e7-4e3a-9da8-3c2bef2e6c87"
  ],
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "visitation_rules": [
    "PAIR_VISIT",
    "CONTACT_PM_BEFORE"
  ],
  "work_order_id": 1461,
  "work_order_type": "MARKETPLACE"
}

Responses

Status Meaning Description Schema
201 Created Work order details Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
409 Conflict Conflict None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
access_notes string¦null true none Details about accessibility information for the property, if known.
account_code string true none The account code.
assignee string(email)¦null true none The email of assignee
contractor object true none none
name string true none The name of the resource.
uuid string true none Contractor's unique identifier (UUID).
created string(date-time) true none none
created_by string(email) true none The email address of the user who posted this job. If there is no user account in Plentific with this email address we'll fallback on the business unit API user.
due_date string(date-time)¦null true none The due date for the work order.
external_reference string¦null true none The client-provided external reference of the resource.
faults [object] true none none
attachments [string] false none none
description string true none This is the detailed explanation of the work order. We expect a concatenated text from your systems (min length 40, max length 10000).
service_uuid string(uuid) true none Clients must map the Plentific service_uuid on their systems before sending over data. Multiple faults can be posted but each service_uuid must be valid for the category_uuid. The Categories and Services endpoints will help with this mapping.
uuid string(uuid) false none The UUID of the faults
invoice_uuid string¦null true none Invoice's unique identifier (UUID).
is_background_check_required boolean true none none
is_contractor_tax_withheld boolean true none none
is_emergency boolean true none If this is an emergency work order this flag will be set.
location object true none none
external_reference string¦null true none The client-provided external reference of the resource.
type string true none none
uuid string(uuid) true none none
metadata object¦null true none Field holding custom data in key-value pairs (max. 6).
organisation_uuid string(uuid) true none A UUID that identifies the Organisation of the entry.
service object true none none
name string false none Service name.
uuid string(uuid) false none This is Plentific service_uuid. Clients must map the Plentific service_uuid on their systems before sending over data. If this field is missing, we will raise an exception and will not not proceed.
state_history [object] true none none
created string(date-time) true none none
status string true none none
status string true none none
tags [string] true none A list of tags with type 'enquiry' applied to the work order.
uuid string(uuid) true none A UUID that references a resource.
visitation_rules [string] true none Rules regarding property visitation for the work order, if known.
work_order_id integer true none The id of Work Order.
work_order_type string false none This is the type of the work order. The default value is MARKETPLACE if nothing is provided.

Enumerated Values

Property Value
type property
type block
type estate
type unit
status new
status approval_pending
status approved
status declined
status job_leads_sent
status customer_engaged
status pro_engaged
status customer_pro_engaged
status pro_claimed_job
status quoted
status quote_accepted
status hired
status booked
status customer_cancelled
status deposit_paid
status invoice_outstanding
status invoice_paid
status invoice_overdue
status invalid
status lost
status expired
status refunded
status paid_off_platform
status done
status signed_off
status new
status approval_pending
status approved
status declined
status job_leads_sent
status customer_engaged
status pro_engaged
status customer_pro_engaged
status pro_claimed_job
status quoted
status quote_accepted
status hired
status booked
status customer_cancelled
status deposit_paid
status invoice_outstanding
status invoice_paid
status invoice_overdue
status invalid
status lost
status expired
status refunded
status paid_off_platform
status done
status signed_off
work_order_type CONTRACTED
work_order_type DLO
work_order_type MARKETPLACE

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version

Retrieve work order details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /work-orders/{work_order_uuid}

This endpoint returns the details of a particular work order

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.

Example responses

200 Response

{
  "access_notes": "No parking available at this property.",
  "account_code": "ACCOUNT-1",
  "assignee": "hello@email.com",
  "contractor": {
    "name": "Custom resource name",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  },
  "created": "2023-03-28T15:49:30Z",
  "created_by": "johndoe@test.com",
  "due_date": "2020-09-26 07:00:00+00:00",
  "external_reference": "EG1234",
  "faults": [
    {
      "attachments": [
        "e75665c2-9f6e-4017-8596-ed13db0c8851",
        "f9219b92-e00d-4357-84df-e274737eb06e"
      ],
      "description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked.",
      "service_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
      "uuid": "e7a4b13a-7a73-4711-8039-77bef9fb4840"
    }
  ],
  "invoice_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "is_background_check_required": true,
  "is_contractor_tax_withheld": true,
  "is_emergency": true,
  "location": {
    "external_reference": "EG1234",
    "type": "property",
    "uuid": "82e03dcc-bd93-41ea-a234-db5dfe8a4617"
  },
  "metadata": {
    "key1": "value1",
    "key2": 2
  },
  "organisation_uuid": "91df3492-3767-46bb-00c5-285f8eb85c97",
  "service": {
    "name": "Home Security Specialist",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  },
  "state_history": [
    {
      "created": "2023-03-28T15:49:30Z",
      "status": "new"
    }
  ],
  "status": "new",
  "tags": [
    "1300ac83-504b-48ad-88e8-c061ece90780",
    "e7b383c0-61e7-4e3a-9da8-3c2bef2e6c87"
  ],
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "visitation_rules": [
    "PAIR_VISIT",
    "CONTACT_PM_BEFORE"
  ],
  "work_order_id": 1461,
  "work_order_type": "MARKETPLACE"
}

Responses

Status Meaning Description Schema
200 OK Work order details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
access_notes string¦null true none Details about accessibility information for the property, if known.
account_code string true none The account code.
assignee string(email)¦null true none The email of assignee
contractor object true none none
name string true none The name of the resource.
uuid string true none Contractor's unique identifier (UUID).
created string(date-time) true none none
created_by string(email) true none The email address of the user who posted this job. If there is no user account in Plentific with this email address we'll fallback on the business unit API user.
due_date string(date-time)¦null true none The due date for the work order.
external_reference string¦null true none The client-provided external reference of the resource.
faults [object] true none none
attachments [string] false none none
description string true none This is the detailed explanation of the work order. We expect a concatenated text from your systems (min length 40, max length 10000).
service_uuid string(uuid) true none Clients must map the Plentific service_uuid on their systems before sending over data. Multiple faults can be posted but each service_uuid must be valid for the category_uuid. The Categories and Services endpoints will help with this mapping.
uuid string(uuid) false none The UUID of the faults
invoice_uuid string¦null true none Invoice's unique identifier (UUID).
is_background_check_required boolean true none none
is_contractor_tax_withheld boolean true none none
is_emergency boolean true none If this is an emergency work order this flag will be set.
location object true none none
external_reference string¦null true none The client-provided external reference of the resource.
type string true none none
uuid string(uuid) true none none
metadata object¦null true none Field holding custom data in key-value pairs (max. 6).
organisation_uuid string(uuid) true none A UUID that identifies the Organisation of the entry.
service object true none none
name string false none Service name.
uuid string(uuid) false none This is Plentific service_uuid. Clients must map the Plentific service_uuid on their systems before sending over data. If this field is missing, we will raise an exception and will not not proceed.
state_history [object] true none none
created string(date-time) true none none
status string true none none
status string true none none
tags [string] true none A list of tags with type 'enquiry' applied to the work order.
uuid string(uuid) true none A UUID that references a resource.
visitation_rules [string] true none Rules regarding property visitation for the work order, if known.
work_order_id integer true none The id of Work Order.
work_order_type string false none This is the type of the work order. The default value is MARKETPLACE if nothing is provided.

Enumerated Values

Property Value
type property
type block
type estate
type unit
status new
status approval_pending
status approved
status declined
status job_leads_sent
status customer_engaged
status pro_engaged
status customer_pro_engaged
status pro_claimed_job
status quoted
status quote_accepted
status hired
status booked
status customer_cancelled
status deposit_paid
status invoice_outstanding
status invoice_paid
status invoice_overdue
status invalid
status lost
status expired
status refunded
status paid_off_platform
status done
status signed_off
status new
status approval_pending
status approved
status declined
status job_leads_sent
status customer_engaged
status pro_engaged
status customer_pro_engaged
status pro_claimed_job
status quoted
status quote_accepted
status hired
status booked
status customer_cancelled
status deposit_paid
status invoice_outstanding
status invoice_paid
status invoice_overdue
status invalid
status lost
status expired
status refunded
status paid_off_platform
status done
status signed_off
work_order_type CONTRACTED
work_order_type DLO
work_order_type MARKETPLACE

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update a work order

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /work-orders/{work_order_uuid}

This endpoint allows you to update a work order with your appointed contractor information. Provide the uuid of the appointed contractor that you wish to send the work order too, and change the status to "job_leads_sent".

Body parameter

{
  "access_notes": "No parking available at this property.",
  "account_code": "ACCOUNT-1",
  "assignee": "hello@email.com",
  "closing_reason": "agent_raised_in_error",
  "contacts": [
    {
      "email": "hello@email.com",
      "external_reference": "EG1234",
      "first_name": "John",
      "is_private": true,
      "last_name": "Doe",
      "phone_number": "+441234567890",
      "role": "property_manager"
    }
  ],
  "contractor_uuid": "15791638-f098-49ca-b1a6-40da5bc47255",
  "due_date": "2020-09-26 07:00:00+00:00",
  "external_reference": "EG1234",
  "status": "job_leads_sent",
  "tags": [
    "1300ac83-504b-48ad-88e8-c061ece90780",
    "e7b383c0-61e7-4e3a-9da8-3c2bef2e6c87"
  ]
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
body body object true none
access_notes body string¦null false Details about accessibility information for the property, if known.
account_code body string false The account code.
assignee body string(email) false none
closing_reason body string false The reason for cancellation.
contacts body [object] false A list of contacts that are related to the work order.
email body string(email) false none
external_reference body string¦null true The client-provided external reference of the resource.
first_name body string false none
is_private body boolean false If contact information should be private or shared with the contractor.
last_name body string false none
phone_number body string(telephone) false none
role body string true The work order contact role
contractor_uuid body string(uuid) false A UUID that references a resource.
due_date body string(date-time)¦null false The due date for the work order.
external_reference body string¦null false The client-provided external reference of the resource.
status body string false none
tags body [string] false A list of tags with type 'enquiry' applied to the work order.

Enumerated Values

Parameter Value
closing_reason agent_raised_in_error
closing_reason agent_no_longer_required
closing_reason agent_duplicate
closing_reason agent_landlord_decision
closing_reason agent_not_enough_quotes
closing_reason agent_quotes_too_high
closing_reason agent_quotes_took_too_long
closing_reason agent_no_suitable_pro_found
closing_reason agent_landlords_completed_work
closing_reason closed_by_system
closing_reason tenant_not_contactable
closing_reason no_response_from_pro
closing_reason tenant_unresponsive
closing_reason covid_19
closing_reason wrong_trade
role property_manager
role tenant
role other_contact
status job_leads_sent
status cancelled

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
405 Method Not Allowed Method Not Allowed None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

List all work order appointed contractors

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/appointed-contractors', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/appointed-contractors \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /work-orders/{work_order_uuid}/appointed-contractors

This endpoint returns all possible appointed contractors available for a given work order

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.
work_order_uuid path string(uuid) true UUID of the work order.

Example responses

200 Response

[
  {
    "name": "Custom resource name",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Report list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
name string false none The name of the resource.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

List all bookings

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/bookings', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/bookings \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /work-orders/{work_order_uuid}/bookings

This endpoint returns all bookings provided by contractors for a specific work order.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.
work_order_uuid path string(uuid) true UUID of the work order.

Example responses

200 Response

[
  {
    "created": "2020-11-12 09:52:20.051000+00:00",
    "description": "New time slot.",
    "status": "attended",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Work order bookings list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
created string(date-time) false none The creation date-time of a resource
description string false none Description of the Booking
status string false none The status of the booking
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
status attended
status not_attended
status no_access
status cancelled

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Retrieve booking details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/bookings/{booking_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/bookings/{booking_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /work-orders/{work_order_uuid}/bookings/{booking_uuid}

This endpoint returns details of a specific booking for a work order.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
booking_uuid path string(uuid) true UUID of the booking.

Example responses

200 Response

{
  "cancelling_reason": "string",
  "cancelling_reason_message": "string",
  "created": "2023-03-28T15:49:30Z",
  "description": "New time slot.",
  "end_datetime": "2023-03-28T15:49:30Z",
  "start_datetime": "2023-03-28T15:49:30Z",
  "status": "attended"
}

Responses

Status Meaning Description Schema
200 OK Booking detail Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
cancelling_reason string false none The cancelling reason of booking
cancelling_reason_message string false none The message of cancelling reason for booking
created string(date-time) false none The creation date-time of booking
description string false none Description of the Booking
end_datetime string(date-time) false none The end date-time of booking
start_datetime string(date-time) false none The start date-time of booking
status string false none The status of the booking

Enumerated Values

Property Value
status attended
status not_attended
status no_access
status cancelled

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

List all completion reports

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/completion-reports', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/completion-reports \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /work-orders/{work_order_uuid}/completion-reports

This endpoint returns all completion reports for a specific work order.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.
work_order_uuid path string(uuid) true UUID of the work order.

Example responses

200 Response

[
  {
    "created": "2020-11-12 09:52:20.051000+00:00",
    "job_outcome": "FULLY_COMPLETED",
    "status": "accepted",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Work order completion reports list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
created string(date-time) false none The creation date-time of a resource
job_outcome string false none Stores more details about job's status
status string false none The status of the completion report
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
job_outcome FULLY_COMPLETED
job_outcome PARTIALLY_COMPLETED
job_outcome CANNOT_BE_EXECUTED
status new
status cancelled
status accepted
status updated
status declined

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Retrieve completion report details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/completion-reports/{completion_report_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/completion-reports/{completion_report_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /work-orders/{work_order_uuid}/completion-reports/{completion_report_uuid}

This endpoint returns details of a specific completion report for a work order.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
completion_report_uuid path string(uuid) true UUID of the completion report.

Example responses

200 Response

{
  "additional_information": "string",
  "additional_information_attachments": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "created": "2023-03-28T15:49:30Z",
  "declined_on": "2023-03-28T15:49:30Z",
  "declining_reason": "NO_EVIDENCE",
  "declining_reason_message": "string",
  "job_outcome": "FULLY_COMPLETED",
  "outcome_attachments": [
    "15791638-f098-49ca-b1a6-40da5bc47255"
  ],
  "outcome_description": "string",
  "status": "accepted",
  "status_date": "2023-03-28T15:49:30Z"
}

Responses

Status Meaning Description Schema
200 OK Completion report detail Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
additional_information string false none The additional information of completion report
additional_information_attachments [string] false none none
created string(date-time) false none The creation date-time of completion report
declined_on string(date-time) false none The date of declining the completion report
declining_reason string false none The reason for declidining the completion report
declining_reason_message string false none The message of declining reason
job_outcome string false none Stores more details about job's status
outcome_attachments [string] false none none
outcome_description string false none The outcome description of completion report
status string false none The status of the completion report
status_date string(date-time) false none The date of completion report.

Enumerated Values

Property Value
declining_reason NO_EVIDENCE
declining_reason NOT_EVERYTHING_DONE
declining_reason NOT_ENOUGH_QUALITY
declining_reason OTHER
job_outcome FULLY_COMPLETED
job_outcome PARTIALLY_COMPLETED
job_outcome CANNOT_BE_EXECUTED
status new
status cancelled
status accepted
status updated
status declined

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update a completion report

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/completion-reports/{completion_report_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/completion-reports/{completion_report_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /work-orders/{work_order_uuid}/completion-reports/{completion_report_uuid}

This endpoint updates an existing completion report for a work order.

Body parameter

{
  "reason": "NO_EVIDENCE",
  "reason_msg": "string",
  "status": "accepted"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
completion_report_uuid path string(uuid) true UUID of the completion report.
body body object true none
reason body string false The reason for transitioning the completion report. Only required when status is 'declined'.
reason_msg body string false The reason message for declining the completion report.
status body string true This is the status to transition the completion report to.

Enumerated Values

Parameter Value
reason NO_EVIDENCE
reason NOT_EVERYTHING_DONE
reason NOT_ENOUGH_QUALITY
reason OTHER
status accepted
status declined

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Delete all work order contacts

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /work-orders/{work_order_uuid}/contacts

This endpoint deletes all the contacts associated to a particular work order. Contacts with role 'property_manager' will not and cannot be deleted.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.

Example responses

401 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

List all work order contacts

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /work-orders/{work_order_uuid}/contacts

This endpoint returns all the contacts associated to a particular work order

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "email": "hello@email.com",
    "external_reference": "EG1234",
    "first_name": "John",
    "is_private": true,
    "last_name": "Doe",
    "phone_number": "+441234567890",
    "role": "property_manager",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Work Order Contacts List Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
email string(email) false none none
external_reference string¦null false none The client-provided external reference of the resource.
first_name string false none none
is_private boolean false none If contact information should be private or shared with the contractor.
last_name string false none none
phone_number string(telephone) false none none
role string false none The work order contact role
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
role property_manager
role tenant
role other_contact

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Create work order contact

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X POST https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

POST /work-orders/{work_order_uuid}/contacts

This endpoint creates a contact associated to a particular work order

Body parameter

{
  "email": "hello@email.com",
  "first_name": "John",
  "is_private": true,
  "last_name": "Doe",
  "phone_number": "+441234567890",
  "role": "tenant"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
body body object true This is the body that can be used to create a Work Order Contact.
email body string(email) false none
first_name body string true none
is_private body boolean true If contact information should be private or shared with the contractor.
last_name body string true none
phone_number body string(telephone) true none
role body string true The work order contact role for create and patch usage

Enumerated Values

Parameter Value
role tenant
role other_contact

Example responses

201 Response

{
  "email": "hello@email.com",
  "external_reference": "EG1234",
  "first_name": "John",
  "is_private": true,
  "last_name": "Doe",
  "phone_number": "+441234567890",
  "role": "property_manager",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
201 Created Work Order Contact Detail Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 201

Name Type Required Restrictions Description
email string(email) false none none
external_reference string¦null false none The client-provided external reference of the resource.
first_name string false none none
is_private boolean false none If contact information should be private or shared with the contractor.
last_name string false none none
phone_number string(telephone) false none none
role string false none The work order contact role
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
role property_manager
role tenant
role other_contact

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
201 X-Api-Version string date The date of version

Delete work order contact

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts/{contact_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts/{contact_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /work-orders/{work_order_uuid}/contacts/{contact_uuid}

This endpoint deletes a contact associated to a particular work order

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
contact_uuid path string(uuid) true UUID of the work order contact.

Example responses

401 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Get work order contact detail

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts/{contact_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts/{contact_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /work-orders/{work_order_uuid}/contacts/{contact_uuid}

This endpoint returns a contact associated to a particular work order

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
contact_uuid path string(uuid) true UUID of the work order contact.

Example responses

200 Response

{
  "email": "hello@email.com",
  "external_reference": "EG1234",
  "first_name": "John",
  "is_private": true,
  "last_name": "Doe",
  "phone_number": "+441234567890",
  "role": "property_manager",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Work Order Contact Detail Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
email string(email) false none none
external_reference string¦null false none The client-provided external reference of the resource.
first_name string false none none
is_private boolean false none If contact information should be private or shared with the contractor.
last_name string false none none
phone_number string(telephone) false none none
role string false none The work order contact role
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
role property_manager
role tenant
role other_contact

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Patch work order contact

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts/{contact_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/contacts/{contact_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /work-orders/{work_order_uuid}/contacts/{contact_uuid}

This endpoint patches a contact associated to a particular work order

Body parameter

{
  "email": "hello@email.com",
  "first_name": "John",
  "is_private": true,
  "last_name": "Doe",
  "phone_number": "+441234567890",
  "role": "tenant"
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
contact_uuid path string(uuid) true UUID of the work order contact.
body body object true This is the body that can be used to patch a Work Order Contact.
email body string(email) false none
first_name body string false none
is_private body boolean false If contact information should be private or shared with the contractor.
last_name body string false none
phone_number body string(telephone) false none
role body string false The work order contact role for create and patch usage

Enumerated Values

Parameter Value
role tenant
role other_contact

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

List all faults

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/faults', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/faults \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /work-orders/{work_order_uuid}/faults

This endpoint returns all faults for a specific work order.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.
work_order_uuid path string(uuid) true UUID of the work order.

Example responses

200 Response

[
  {
    "description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked.",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Work order faults list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
description string false none This is the detailed explanation of the fault.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Delete a fault

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.delete('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/faults/{fault_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X DELETE https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/faults/{fault_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

DELETE /work-orders/{work_order_uuid}/faults/{fault_uuid}

This endpoint deletes a work order's fault

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
fault_uuid path string(uuid) true UUID of the work order's fault.

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

Retrieve fault details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/faults/{fault_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/faults/{fault_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /work-orders/{work_order_uuid}/faults/{fault_uuid}

This endpoint returns details of a specific fault for a work order.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
fault_uuid path string(uuid) true UUID of the work order's fault.

Example responses

200 Response

{
  "attachments": [
    "e75665c2-9f6e-4017-8596-ed13db0c8851",
    "f9219b92-e00d-4357-84df-e274737eb06e"
  ],
  "description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked.",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Fault detail Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
attachments [string] false none none
description string false none This is the detailed explanation of the fault.
uuid string(uuid) false none A UUID that references a resource.

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update a fault

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/faults/{fault_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/faults/{fault_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /work-orders/{work_order_uuid}/faults/{fault_uuid}

This endpoint updates an existing work order's fault

Body parameter

{
  "attachments": [
    "e75665c2-9f6e-4017-8596-ed13db0c8851",
    "f9219b92-e00d-4357-84df-e274737eb06e"
  ],
  "description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked."
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
fault_uuid path string(uuid) true UUID of the work order's fault.
body body object true none
attachments body [string] false none
description body string false This is the detailed explanation of the fault.

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

List all work order messages

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/messages', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/messages \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /work-orders/{work_order_uuid}/messages

This endpoint returns all the messages associated to jobs of a particular work order

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.

Example responses

200 Response

[
  {
    "attachments": [
      "string"
    ],
    "author": {
      "first_name": "John",
      "last_name": "Doe"
    },
    "created": "2023-03-28T15:49:30Z",
    "text": "Assessment and survey will be free",
    "type": "CHAT",
    "uuid": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK Work order messages list Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
attachments [string] false none none
author object false none none
first_name string false none none
last_name string false none none
created string(date-time) false none none
text string false none none
type string false none none
uuid string(uuid) false none none

Enumerated Values

Property Value
type CHAT

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

List all outstanding issues

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/outstanding-issues', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/outstanding-issues \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /work-orders/{work_order_uuid}/outstanding-issues

This endpoint returns all outstanding issues for a specific work order.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.
work_order_uuid path string(uuid) true UUID of the work order.

Example responses

200 Response

[
  {
    "closed": false,
    "closing_description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked.",
    "closing_timestamp": "2020-11-12 09:52:20.051000+00:00",
    "closing_user_email": "deprecated@dontuse.me",
    "opening_description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked.",
    "opening_timestamp": "2020-11-12 09:52:20.051000+00:00",
    "opening_user_email": "deprecated@dontuse.me",
    "reason": "CANNOT_CONTACT_TENANT",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Work order outstanding issues list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
closed boolean false none This is the detailed explanation of the outstanding issues.
closing_description string false none This is the closing description.
closing_timestamp string(date-time) false none This is the closing date-time.
closing_user_email string(email) false none Email of an user that closed outstanding issue
opening_description string false none This is the opening description.
opening_timestamp string(date-time) false none This is the opening date-time.
opening_user_email string(email) false none Email of an user that opened outstanding issue
reason string false none This is the reason for outstanding issue.
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
reason CANNOT_CONTACT_TENANT
reason CANNOT_BOOK
reason REPAIR_NOT_REQUIRED
reason SUSPECTED_ASBESTOS
reason SAFETY_CONCERN

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Retrieve outstanding issue details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/outstanding-issues/{outstanding_issue_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/outstanding-issues/{outstanding_issue_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /work-orders/{work_order_uuid}/outstanding-issues/{outstanding_issue_uuid}

This endpoint returns details of a specific outstanding issue for a work order.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
outstanding_issue_uuid path string(uuid) true UUID of the work order's outstanding issue.

Example responses

200 Response

{
  "closed": false,
  "closing_description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked.",
  "closing_timestamp": "2020-11-12 09:52:20.051000+00:00",
  "closing_user_email": "deprecated@dontuse.me",
  "opening_description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked.",
  "opening_timestamp": "2020-11-12 09:52:20.051000+00:00",
  "opening_user_email": "deprecated@dontuse.me",
  "reason": "CANNOT_CONTACT_TENANT",
  "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
}

Responses

Status Meaning Description Schema
200 OK Outstanding issue detail Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
closed boolean false none This is the detailed explanation of the outstanding issues.
closing_description string false none This is the closing description.
closing_timestamp string(date-time) false none This is the closing date-time.
closing_user_email string(email) false none Email of an user that closed outstanding issue
opening_description string false none This is the opening description.
opening_timestamp string(date-time) false none This is the opening date-time.
opening_user_email string(email) false none Email of an user that opened outstanding issue
reason string false none This is the reason for outstanding issue.
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
reason CANNOT_CONTACT_TENANT
reason CANNOT_BOOK
reason REPAIR_NOT_REQUIRED
reason SUSPECTED_ASBESTOS
reason SAFETY_CONCERN

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version

Update an outstanding issue

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.patch('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/outstanding-issues/{outstanding_issue_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X PATCH https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/outstanding-issues/{outstanding_issue_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

PATCH /work-orders/{work_order_uuid}/outstanding-issues/{outstanding_issue_uuid}

This endpoint updates an existing work order's outstanding issue

Body parameter

{
  "closed": false,
  "closing_description": "Gas boiler not working. Error code (C7) advises fan not running or airflow blocked."
}

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
outstanding_issue_uuid path string(uuid) true UUID of the work order's outstanding issue.
body body object true none
closed body boolean false This is the detailed explanation of the outstanding issues.
closing_description body string false This is the closing description.

Example responses

400 Response

{
  "detail": "string"
}

Responses

Status Meaning Description Schema
204 No Content There is no response here None
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
204 X-Api-Version string date The date of version

List all quotes

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'X-Pagination-Limit': '100',
  'X-Pagination-Offset': '0'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/quotes', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/quotes \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'X-Pagination-Limit: 100' \
  -H 'X-Pagination-Offset: 0'

GET /work-orders/{work_order_uuid}/quotes

This endpoint returns all quotes provided by contractors for a specific work order.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
X-Pagination-Limit header number false Requested number of items per page. Default 100, max. 200.
X-Pagination-Offset header number false Requested offset of the results.
work_order_uuid path string(uuid) true UUID of the work order.

Example responses

200 Response

[
  {
    "attachments": [
      "e2d7c1f1-b561-4937-82c9-195e109d4581",
      "160d959e-e9d8-4113-a692-3f136874383b"
    ],
    "created": "2020-11-12 09:52:20.051000+00:00",
    "is_quote_variation": true,
    "status": "accepted",
    "uuid": "15791638-f098-49ca-b1a6-40da5bc47255"
  }
]

Responses

Status Meaning Description Schema
200 OK Work order quotes list Inline
400 Bad Request Validation error details Inline
401 Unauthorized Authorisation error details Inline
403 Forbidden Authorisation error details Inline
404 Not Found Resource Not Found None
500 Internal Server Error Internal Server Error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
attachments [string] false none List of pdf file UUIDs that are attached to a Quote.
created string(date-time) false none The creation date-time of a resource
is_quote_variation boolean false none Indicates whether a quote is a variation
status string false none The status of the quote
uuid string(uuid) false none A UUID that references a resource.

Enumerated Values

Property Value
status accepted
status cancelled
status declined
status deposit_paid
status pending
status superseded
status varied

Status Code 400

Name Type Required Restrictions Description
detail string false none Error details

Status Code 401

Name Type Required Restrictions Description
detail string false none Error details

Status Code 403

Name Type Required Restrictions Description
detail string false none Error details

Response Headers

Status Header Type Format Description
200 X-Api-Version string date The date of version
200 X-Pagination-Count integer Total number of results
200 X-Pagination-Limit integer Number of results per page
200 X-Pagination-Offset integer Current offset for returned results

Retrieve quote details

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/quotes/{quote_uuid}', params={

}, headers = headers)

print r.json()

# You can also use wget
curl -X GET https://api.plentific.com/2023-02-01/work-orders/{work_order_uuid}/quotes/{quote_uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'

GET /work-orders/{work_order_uuid}/quotes/{quote_uuid}

This endpoint returns details of a specific quote for a work order.

Parameters

Name In Type Required Description
Authorization header string true Authorization header
work_order_uuid path string(uuid) true UUID of the work order.
quote_uuid path string(uuid) true UUID of the quote.

Example responses

200 Response

{
  "accepted_on": "2023-03-28T15:49:30Z",
  "approval_steps": [
    {