NAV

Introduction

The Jobman API allows you to create and interact with Jobman through a simple REST API.

Changelog

18th March 2024

URI

Jobman API is hosted on the following base URI:

https://api.jobmanapp.com/

Headers

Make sure you have the following content type headers are set on every request:

Accept: application/json
Content-Type: application/json

Errors

Jobman uses conventional HTTP response codes to indicate the success or failure of an API request. The table below contains a summary of the typical response codes:

Code Description
200 Everything is ok
204 No content
400 Valid data was given but the request has failed
401 No valid API Key was given
403 You don't have permission to access this resource
404 The request resource could not be found
422 The payload has missing required parameters or invalid data was given
429 Too many attempts
500 Request failed due to an internal error in Jobman
503 Jobman is offline for maintenance

Authentication

To interact with the API from your user account, you can authenticate your request by including a Personal Access Token as a bearer token value:

authorisation: Bearer {personalAccessToken}

OAuth 2.0

Jobman also supports the OAuth 2.0 protocol for authorizing API requests. Authorized requests to the API should use an authorisation header with an access token obtained through the OAuth flow.

authorisation: Bearer {accessToken}

All authorisation requests must use a different base URI:

https://identity.jobmanapp.com/

1. Redirect Users

To initiate the authorisation process, redirect users to

https://identity.jobmanapp.com/oauth/authorize

Provide the following query parameters:

Key Value
client_id The client ID configured for your OAuth App
redirect_uri The redirect URI configured for your OAuth App
scope Space-separated list of scopes (see below)
state An optional string to be passed back upon completion

The available scopes are:

Scope Privileges
account Account details
organisation Organisation access
kiosk Kiosk mode access
agenda Agenda screen access

2. Handle User authorisation

If the user authorises your application, Jobman will redirect to the specified redirect_uri.

This redirection will contain a temporary code query parameter. These authorisation codes may only be exchanged once, and will expire after 10 minutes.

This redirection will also contain the previously passed state value, as a query parameter. If this state value does not match, the request may be compromised and you should abort the authorisation

3. Exchange the authorisation code for an access token

Make a POST request to:

https://identity.jobmanapp.com/oauth/token

The request body should include the following values:

Key Value
grant_type authorisation_code
code The code you were provided in the previous step
redirect_uri The redirect URI configured for your OAuth App
client_id The client ID configured for your OAuth App
client_secret The client secret configured for your OAuth App

Note: Please avoid exposing your client secret

The returned response body should contain a JSON payload with the following key/value pairs

Key Value
access_token The value represents the string to add to the authorisation header of future API requests
token_type The value will be Bearer
expires_in The value indicates the number of seconds until the access token will be invalid
refresh_token The value indicates the string to use to generate another access token
scope A space-separated string indicating the scopes that the access token can use

Use the generated access_token value to make API requests on behalf of the authorized user.

4. Refreshing access & refresh tokens

Access tokens expire after 60 minutes. Your app can refresh an access token using a refresh token. Refresh tokens expire after 28 days.

Make a POST request to:

https://identity.jobmanapp.com/oauth/token

The request body should include the following values:

Key Value
grant_type refresh_token
refresh_token The refresh token for your OAuth App
client_id The client ID configured for your OAuth App
client_secret The client secret configured for your OAuth App

Note: Please avoid exposing your client secret

The returned response body should contain a JSON payload with the following key/value pairs:

Key Value
access_token The value represents the string to add to the authorisation header of future API requests
expires_in The value indicates the number of seconds until the access token will be invalid
refresh_token The value indicates the string to use to generate another access token

Use the generated access_token value to make API requests on behalf of the authorized user.

Requests

Pagination

Example Response

{
  "data": [],
  "links": {
    "first": "http://api.jobman.io/api/v1/organisations/{organisation}/quotes?page=1",
    "last": "http://api.jobman.io/api/v1/organisations/{organisation}/quotes?page=4",
    "prev": "http://api.jobman.io/api/v1/organisations/{organisation}/quotes?page=1",
    "next": "http://api.jobman.io/api/v1/organisations/{organisation}/quotes?page=3"
  },
  "meta": {
    "current_page": 2,
    "from": 16,
    "last_page": 4,
    "links": [
      {
        "url": "http://api.jobman.io/api/v1/organisations/{organisation}/quotes?page=1",
        "label": "« Previous",
        "active": false
      },
      {
        "url": "http://api.jobman.io/api/v1/organisations/{organisation}/quotes?page=1",
        "label": "1",
        "active": false
      },
      {
        "url": "http://api.jobman.io/api/v1/organisations/{organisation}/quotes?page=2",
        "label": "2",
        "active": true
      },
      {
        "url": "http://api.jobman.io/api/v1/organisations/{organisation}/quotes?page=3",
        "label": "3",
        "active": false
      },
      {
        "url": "http://api.jobman.io/api/v1/organisations/{organisation}/quotes?page=4",
        "label": "4",
        "active": false
      },
      {
        "url": "http://api.jobman.io/api/v1/organisations/{organisation}/quotes?page=3",
        "label": "Next »",
        "active": false
      }
    ],
    "path": "http://api.jobman.io/api/v1/organisations/{organisation}/quotes",
    "per_page": 15,
    "to": 30,
    "total": 58
  }
}    

Pagination is available when listing some resources by appending the page and/or limit query parameters.

?page=1&limit=10

Parameter Description
page The page number to fetch
limit The number of rows to return per page

Sorting

To control to sort order of results returned an array of properties can be appended using the sort query parameter. The allows for sorting on multiple properties.

?sort=[{"property":"name","direction":"ASC"}]

Parameter Description
sort Array of sorting properties

Each sorting property can have the following structure:

Parameter Description
property The column to sort by
direction The direction to sort by (asc or desc)

Searching

Basic searching across the most relevant properties can be performed by appending the search query parameter.

?search=JO12345

Parameter Description
search The search query term

Filtering

For more precise filtering than the basic search term an array of filters can be appended using the filter query parameter. The allows for filtering on multiple properties.

?filter=[{"property":"name","value":"Hello"}]

Parameter Description
filter Array of filters

Each filter property can have the following structure:

Parameter Description
property The column to filter by
value The term to search for

User

Get your user account

Response

{
  "user": {
    "id": "5f9b75e7-907d-4314-ba76-d92bdf14aba2",
    "name": "John Smith",
    "first_name": "John",
    "last_name": "Smith",
    "email": "demo@example.com",
    "language": "en_AU",
    "timezone": "Australia/Perth",
    "created_at": "2030-01-01T00:00:00.000000Z",
    "updated_at": "2030-01-01T00:00:00.000000Z",
    "date_format": "DD-MM-YYYY"
  }
}

This endpoint retrieves your Jobman user account information. Note that each user account can be connected as staff members to multiple organisations (see Profile).

HTTP Request

GET /api/v1/user

Accounts

List all Accounts (Accounting)

HTTP Request

GET /api/v1/organisations/{organisationId}/accounts

This endpoint allows you to list all active Accounts for an organisation.

Response

{
  "accounts": {
    "data": [
      {
        "id": "3bf18753-02da-4aa8-bd22-975bedbf9066",
        "name": "Purchases",
        "code": "300",
        "is_default": false,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "created_at": "2022-10-26T01:02:43.000000Z",
        "updated_at": "2022-10-26T01:02:43.000000Z"
      },
      {
        "id": "66f72b93-c3f2-42df-9a9f-e2578fea747f",
        "name": "Sales",
        "code": "200",
        "is_default": true,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "created_at": "2022-10-26T01:02:43.000000Z",
        "updated_at": "2022-10-26T01:02:43.000000Z"
      }
    ]
  }
}

For more see Settings > Accounting > Accounts.

Accounting Drivers

List Accounting Drivers

Response

{
    "accounting_drivers": [
        {
            "id": "xero",
            "name": "xero"
        },
        {
            "id": "myob",
            "name": "MYOB"
        },
        {
            "id": "quickbooks_online",
            "name": "Quickbooks Online"
        }
    ]
}

This endpoint retrieves the available accounting drivers in Jobman.

HTTP Request

GET /api/v1/accounting-drivers

Catalogue Item Types

List Catalogue Item Types

Response

{
  "catalogue_item_types": [
    {
      "id": "material",
      "name": "Material"
    },
    {
      "id": "service",
      "name": "Service"
    },
    {
      "id": "appliance",
      "name": "Appliance"
    },
    {
      "id": "sundry",
      "name": "Sundry"
    }
  ]
}

This endpoint retrieves the catalogue item types in Jobman.

HTTP Request

GET /api/v1/catalogue-item-types

Catalogue Item Statuses

List Catalogue Item Statuses

Response

{
  "catalogue_item_statuses": [
    {
      "id": "available",
      "name": "Available to order"
    },
    {
      "id": "not_available",
      "name": "Not available to order"
    }
  ]
}

This endpoint retrieves the catalogue item statuses in Jobman.

HTTP Request

GET /api/v1/catalogue-item-statuses

Catalogue Materials

List all Catalogue Materials

HTTP Request

GET /api/v1/organisations/{organisationId}/catalogue/materials

This endpoint allows you to list all catalogue material items for an organisation.

Response

{
  "catalogue_items": {
    "data": [
      {
        "id": "49473cc2-c307-4ccd-a240-b0a8dc28225d",
        "name": "FM E0 Colorpanel MDF MR Gloss",
        "sku": "FM-954580",
        "created_at": "2022-10-18T05:09:28.000000Z",
        "updated_at": "2022-10-18T05:09:28.000000Z"
      },
      {
        "id": "70f989a3-0290-427b-9e69-e853a0c050aa",
        "name": "Polytec Truffle Lini Createc ABS 1mm",
        "sku": "12724",
        "created_at": "2022-10-18T05:11:59.000000Z",
        "updated_at": "2022-10-18T05:13:11.000000Z"
      }
    ]
  }
}
Parameter Description Required
category The Uuid for the category of the item No
supplier The Uuid for the supplier of the item No
brand The Uuid for the brand of the item No
trashed Boolean flag to filter by trashed status No

Get a specific Catalogue Material

HTTP Request

GET /api/v1/organisations/{organisationId}/catalogue/materials/{catalogueItemId}

This endpoint retrieves a specific catalogue material item for an organisation.

Response

{
  "catalogue_item": {
    "id": "49473cc2-c307-4ccd-a240-b0a8dc28225d",
    "name": "FM E0 Colorpanel MDF MR Gloss",
    "sku": "FM-954580",
    "created_at": "2022-10-18T05:09:28.000000Z",
    "updated_at": "2022-10-18T05:09:28.000000Z"
  }
}

Add a Catalogue Material

Response

{
  "catalogue_item": {
    "id": "49473cc2-c307-4ccd-a240-b0a8dc28225d",
    "name": "FM E0 Colorpanel MDF MR Gloss",
    "sku": "FM-954580",
    "created_at": "2022-10-18T05:09:28.000000Z",
    "updated_at": "2022-10-18T05:09:28.000000Z"
  }
}

This endpoint adds a new catalogue item to an organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/catalogue/materials

Parameter Description Required
name The name of the Item Yes
supplier_id The contact id that supplies the Item No
sku The sku or product code for the Item No
barcode The barcode for the Item No
catalogue_item_category_id The Id for the category of the item Yes
catalogue_item_brand_id The Id for the brand of the Item No
catalogue_item_finish_id The Id for the finish of the item No
colour The colour of the item No
range The range the item belongs to No
size_width The width of the item No
size_length The length of the item No
size_depth The depth of the item No
size_length_unit_id The Id of the unit of measurement for length of the item No
size_volume The volume of the item No
size_volume_unit_id The Id of the unit of measurement for volume of the item No
size_mass The mass of the item No
size_mass_unit_id The Id of the unit of measurement for mass of the item No
price The price of the item Yes
price_unit_id The Id of the unit of measurement for the price of the item No
units_per_price The number if units that are contained within the item Yes
unit_price The price of each unit in the item Yes
unit_price_unit_id The Id of the unit of measurement for the price of each unit in the item No
sell_pricing_strategy The Id of the selling strategy applied to the item No
sell_unit_price_fixed The fixed sell price of the item if sell_pricing_strategy = 'fixed'
custom_overhead_percent The overhead percentage of the item No
custom_wastage_percent The wastage percentage of the item No
custom_profit_percent The profit percentage of the item No
optimisation_id The unit used to optimise the item No
status The status of the Item No
notes The notes for the item No

Update a Catalogue Material

Response

{
  "catalogue_item": {
    "id": "49473cc2-c307-4ccd-a240-b0a8dc28225d",
    "name": "FM E0 Colorpanel MDF MR Satin",
    "sku": "FM-954501",
    "created_at": "2022-10-18T05:09:28.000000Z",
    "updated_at": "2022-10-18T05:09:28.000000Z"
  }
}

This endpoint modifies an existing catalogue item for an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/catalogue/materials/{catalogueItemId}

Parameter Description Required
name The name of the Item No
supplier_id The contact id that supplies the Item No
sku The sku or product code for the Item No
barcode The barcode for the Item No
catalogue_item_category_id The Id for the category of the item No
catalogue_item_brand_id The Id for the brand of the Item No
catalogue_item_finish_id The Id for the category of the item No
colour The colour of the item No
range The range the item belongs to No
size_width The width of the item No
size_length The length of the item No
size_depth The depth of the item No
size_length_unit_id The Id of the unit of measurement for length of the item No
size_volume The volume of the item No
size_volume_unit_id The Id of the unit of measurement for volume of the item No
size_mass The mass of the item No
size_mass_unit_id The Id of the unit of measurement for mass of the item No
price The price of the item No
price_unit_id The Id of the unit of measurement for the price of the item No
units_per_price The number if units that are contained within the item No
unit_price The price of each unit in the item No
unit_price_unit_id The Id of the unit of measurement for the price of each unit in the item No
sell_unit_price_fixed The fixed sell price of the item if sell_pricing_strategy = 'fixed'
custom_overhead_percent The overhead percentage of the item No
custom_wastage_percent The wastage percentage of the item No
custom_profit_percent The profit percentage of the item No
optimisation_id The unit used to optimise the item No
status The status of the Item No
notes The notes for the item No

Delete a Catalogue Material

Response

204 | No content

This endpoint deletes a specific catalogue item.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/catalogue/materials/{catalogueItemId}

Delete multiple Catalogue Materials

Response

204 | No content

This endpoint deletes multiple catalogue items.

HTTP Request

POST /api/v1/organisations/{organisationId}/catalogue/materials/delete`

Parameter Description Required
ids An array of catalogue item Ids Yes

Restore Catalogue Materials

Response

204 | No content

This endpoint restores one or multiple catalogue items.

HTTP Request

POST /api/v1/organisations/{organisationId}/catalogue/materials/restore

Parameter Description Required
ids An array of catalogue item Ids Yes

Set Catalogue Materials as Preferred

Response

204 | No content

This endpoint sets one or more catalogue items as preferred

HTTP Request

POST /api/v1/organisations/{organisationId}/catalogue/materials/set-preferred

Parameter Description Required
ids An array of catalogue item Ids Yes

Set Catalogue Materials as Not Preferred

Response

204 | No content

This endpoint sets one or more catalogue items as not preferred

HTTP Request

POST /api/v1/organisations/{organisationId}/catalogue/materials/set-not-preferred

Parameter Description Required
ids An array of catalogue item Ids Yes

Catalogue Products

List all Catalogue Products

HTTP Request

GET /api/v1/organisations/{organisationId}/catalogue/products

This endpoint allows you to list all catalogue products for an organisation.

Response

{
  "products": {
    "data": [
      {
        "id": "1ac39187-de8e-4e4f-81d6-53cdc3231240",
        "name": "Appliance Cab",
        "created_at": "2023-05-23T03:24:37.000000Z",
        "updated_at": "2023-05-23T03:24:37.000000Z"
      },
      {
        "id": "fcd5e7be-40b6-440b-98d5-6435ea55bf94",
        "name": "B1 Door",
        "created_at": "2023-05-23T03:24:37.000000Z",
        "updated_at": "2023-05-23T03:24:37.000000Z"
      }
    ]
  }
}
Parameter Description Required
type The Uuid for the product type of the product No
trashed Boolean flag to filter by trashed status No

Get a specific Catalogue Product

HTTP Request

GET /api/v1/organisations/{organisationId}/catalogue/products/{catalogueProductId}

This endpoint retrieves a specific catalogue product for an organisation.

Response

{
  "product": {
    "id": "1ac39187-de8e-4e4f-81d6-53cdc3231240",
    "name": "Appliance Cab",
    "created_at": "2023-05-23T03:24:37.000000Z",
    "updated_at": "2023-05-23T03:24:37.000000Z"
  }
}

Add a Catalogue Product

Response

{
  "product": {
    "id": "2e426a0f-e177-418e-b00b-57155b1ea706",
    "name": "Aluminium - Laminex Handle (869968)",
    "created_at": "2023-05-24T06:08:20.000000Z",
    "updated_at": "2023-05-24T06:08:20.000000Z"
  }
}

This endpoint adds a new catalogue product to an organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/catalogue/products

Parameter Description Required
name The name of the Product Yes
sku The sku or product code for the Product No
barcode The barcode for the Item No
product_type_id The Uuid for the Product Type of the Product Yes
size_width The width of the item No
size_length The length of the item No
size_depth The depth of the item No
size_length_unit_id The Id of the unit of measurement for length of the item No
size_volume The volume of the item No
size_volume_unit_id The Id of the unit of measurement for volume of the item No
size_mass The mass of the item No
size_mass_unit_id The Id of the unit of measurement for mass of the item No
sell_pricing_strategy The Id of the selling strategy applied to the item No
sell_unit_price_fixed The fixed sell price of the item if sell_pricing_strategy = 'fixed'

Update a Catalogue Product

Response

{
  "product": {
    "id": "1ac39187-de8e-4e4f-81d6-53cdc3231240",
    "name": "Appliance Cab",
    "created_at": "2023-05-23T03:24:37.000000Z",
    "updated_at": "2023-05-23T03:24:37.000000Z"
  }
}

This endpoint modifies an existing catalogue product for an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/catalogue/products/{catalogueProductId}

Parameter Description Required
name The name of the Product No
sku The sku or product code for the Product No
barcode The barcode for the Item No
product_type_id The Uuid for the Product Type of the Product No
size_width The width of the item No
size_length The length of the item No
size_depth The depth of the item No
size_length_unit_id The Id of the unit of measurement for length of the item No
size_volume The volume of the item No
size_volume_unit_id The Id of the unit of measurement for volume of the item No
size_mass The mass of the item No
size_mass_unit_id The Id of the unit of measurement for mass of the item No
sell_pricing_strategy The Id of the selling strategy applied to the item No
sell_unit_price_fixed The fixed sell price of the item if sell_pricing_strategy = 'fixed'

Delete a Catalogue Product

Response

204 | No content

This endpoint deletes a specific catalogue product.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/catalogue/products/{catalogueProductId}

Delete multiple Catalogue Products

Response

204 | No content

This endpoint deletes multiple catalogue products.

HTTP Request

POST /api/v1/organisations/{organisationId}/catalogue/products/delete

Parameter Description Required
ids An array of catalogue product Ids Yes

Restore Catalogue Products

Response

204 | No content

This endpoint restores one or multiple catalogue products.

HTTP Request

POST /api/v1/organisations/{organisationId}/catalogue/products/restore

Parameter Description Required
ids An array of catalogue product Ids Yes

Catalogue Services

List all Catalogue Services

HTTP Request

GET /api/v1/organisations/{organisationId}/catalogue/services

This endpoint allows you to list all catalogue services for an organisation.

Response

{
  "catalogue_items": {
    "data": [
      {
        "id": "8dcee9a6-24b7-4cf0-8dcd-5945aa100299",
        "name": "Electrical Certification",
        "sku": "BELECCERT",
        "created_at": "2023-05-24T07:43:44.000000Z",
        "updated_at": "2023-05-24T07:43:44.000000Z"
      }
    ]
  }
}

Parameter Description Required
category The Uuid for the category of the service No
supplier The Uuid for the supplier of the service No
trashed Boolean flag to filter by trashed status No

Get a specific Catalogue Service

HTTP Request

GET /api/v1/organisations/{organisationId}/catalogue/services/{catalogueServiceId}

This endpoint retrieves a specific catalogue service for an organisation.

Response

{
  "catalogue_item": {
    "id": "8dcee9a6-24b7-4cf0-8dcd-5945aa100299",
    "name": "Electrical Certification",
    "sku": "BELECCERT",
    "created_at": "2023-05-24T07:43:44.000000Z",
    "updated_at": "2023-05-24T07:43:44.000000Z"
  }
}

Add a Catalogue Service

Response

{
  "catalogue_item": {
    "id": "8dcee9a6-24b7-4cf0-8dcd-5945aa100299",
    "name": "Electrical Certification",
    "sku": "BELECCERT",
    "created_at": "2023-05-24T07:43:44.000000Z",
    "updated_at": "2023-05-24T07:43:44.000000Z"
  }
}

This endpoint adds a new catalogue service to an organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/catalogue/services

Parameter Description Required
name The name of the Service Yes
supplier_id The Uuid for the supplier of the Service Yes
sku The sku or service code for the Service No
barcode The barcode for the Item No
catalogue_item_category_id The Uuid for the Category of the Service Yes
price The price of the services Yes
price_unit_id The Id of the unit of measurement for the price of the item No
units_per_price The number if units that are contained within the item Yes
unit_price The price of each unit in the item Yes
unit_price_unit_id The Id of the unit of measurement for the price of each unit in the item Yes
sell_pricing_strategy The Id of the selling strategy applied to the item No
sell_unit_price_fixed The fixed sell price of the item if sell_pricing_strategy = 'fixed'
custom_overhead_percent The overhead percentage of the item No
custom_wastage_percent The wastage percentage of the item No
custom_profit_percent The profit percentage of the item No
status The status of the Item No
notes The notes for the item No

Update a Catalogue Service

Response

{
  "catalogue_item": {
    "id": "8dcee9a6-24b7-4cf0-8dcd-5945aa100299",
    "name": "Electrical Certification",
    "sku": "BELECCERT",
    "created_at": "2023-05-24T07:43:44.000000Z",
    "updated_at": "2023-05-24T07:43:44.000000Z"
  }
}

This endpoint modifies an existing catalogue service for an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/catalogue/services/{catalogueServiceId}

Parameter Description Required
name The name of the Service No
supplier_id The Uuid for the supplier of the Service No
sku The sku or service code for the Service No
barcode The barcode for the Item No
catalogue_item_category_id The Uuid for the Category of the Service No
price The price of the services No
price_unit_id The Id of the unit of measurement for the price of the item No
units_per_price The number if units that are contained within the item No
unit_price The price of each unit in the item No
unit_price_unit_id The Id of the unit of measurement for the price of each unit in the item No
sell_pricing_strategy The Id of the selling strategy applied to the item No
sell_unit_price_fixed The fixed sell price of the item if sell_pricing_strategy = 'fixed'
custom_overhead_percent The overhead percentage of the item No
custom_wastage_percent The wastage percentage of the item No
custom_profit_percent The profit percentage of the item No
status The status of the Item No
notes The notes for the item No

Delete a Catalogue Service

Response

204 | No content

This endpoint deletes a specific catalogue service.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/catalogue/services/{catalogueServiceId}

Delete multiple Catalogue Services

Response

204 | No content

This endpoint deletes multiple catalogue services.

HTTP Request

POST /api/v1/organisations/{organisationId}/catalogue/services/delete

Parameter Description Required
ids An array of catalogue service Ids Yes

Restore Catalogue Services

Response

204 | No content

This endpoint restores one or multiple catalogue services.

HTTP Request

POST /api/v1/organisations/{organisationId}/catalogue/services/restore

Parameter Description Required
ids An array of catalogue service Ids Yes

Catalogue Pricing Strategies

List Catalogue Item Pricing Strategies

Response

{
  "pricing_strategies": [
    {
      "id": "variable",
      "name": "Variable"
    },
    {
      "id": "fixed",
      "name": "Fixed Price"
    }
  ]
}

This endpoint retrieves the catalogue pricing strategies for catalogue items in Jobman.

HTTP Request

GET /api/v1/catalogue-item-pricing-strategies

List Catalogue Product Pricing Strategies

Response

{
  "pricing_strategies": [
    {
      "id": "variable",
      "name": "Variable"
    },
    {
      "id": "fixed",
      "name": "Fixed Price"
    }
  ]
}

This endpoint retrieves the catalogue pricing strategies for catalogue products in Jobman.

HTTP Request

GET /api/v1/catalogue-product-pricing-strategies

List Catalogue Product Part Pricing Strategies

Response

{
  "pricing_strategies": [
    {
      "id": "fixed",
      "name": "Fixed Price"
    },
    {
      "id": "markup_percent",
      "name": "Markup Percentage"
    },
    {
      "id": "markup_amount",
      "name": "Markup Amount"
    }
  ]
}

This endpoint retrieves the catalogue pricing strategies for catalogue product parts in Jobman.

HTTP Request

GET /api/v1/catalogue-product-part-pricing-strategies

Contacts

List Contacts

Response

{
  "contacts": {
    "data": [
      {
        "id": "84952a49-59a0-4b45-af54-6c1e0b52593f",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "name": "Abbott Ltd",
        "contact_type_id": "c58a1e72-6d3a-4351-9acb-3e9626603ec5",
        "contact_type_name": "Commercial",
        "contact_source_id": null,
        "contact_source_name": null,
        "phone": "(03)-3099-7889",
        "mobile": null,
        "email": "justin@jobman.com.au",
        "website": "http://www.hermann.com",
        "street_address": "94 Brady Chase, \nCruickshankville, Queensland Pitcairn 2666",
        "street_address_line1": "94 Brady Chase",
        "street_address_line2": null,
        "street_address_city": "Cruickshankville",
        "street_address_region": "Queensland",
        "street_address_postal_code": "2666",
        "street_address_country_id": "PN",
        "street_address_country_name": "Pitcairn",
        "street_address_map_latitude": "-26.627146",
        "street_address_map_longitude": "136.632755",
        "street_address_map_zoom": "10",
        "postal_address": "528 Jacquelyn Freeway, \nPort Juvenalside, Tasmania Russian Federation 0855",
        "postal_address_line1": "528 Jacquelyn Freeway",
        "postal_address_line2": null,
        "postal_address_city": "Port Juvenalside",
        "postal_address_region": "Tasmania",
        "postal_address_postal_code": "0855",
        "postal_address_country_id": "RU",
        "postal_address_country_name": "Russian Federation",
        "primary_contact_person_id": "c72b1101-b592-4a0e-a2b8-5aa66029ce37",
        "primary_contact_person_name": "Yessenia Witting",
        "primary_contact_person_email": "marcellus21@example.com",
        "primary_contact_person_job_title": "Public Relations Specialist",
        "primary_contact_person_phone": "+61 3 6832 2521",
        "primary_contact_person_mobile": null,
        "email_inbox": "abbott-ltd+33b929e35d849524c6a3-email@inbound-dev.jobmanmail.com",
        "email_inbox_unread_count": 0,
        "email_outbox_count": 0,
        "email_scheduled_count": 0,
        "email_drafts_count": 0,
        "created_at": "2022-04-30T20:45:08.000000Z",
        "updated_at": "2022-10-20T01:02:34.000000Z",
        "archived_at": null,
        "bill_payment_term_id": null,
        "bill_payment_term_days": null,
        "bill_payment_term_label": "14 days after bill date",
        "sales_payment_term_id": null,
        "sales_payment_term_days": null,
        "sales_payment_term_label": "30 days after invoice date",
        "created_by": "4590dff6-90fe-498b-8686-230f6335d4ff",
        "created_by_name": "Michael Cockrem",
        "discount_percent": null,
        "discount_percent_label": "No discount",
        "accounting_xero_id": null,
        "accounting_myob_id": null,
        "accounting_quickbooks_online_id": null,
        "accounting_url": null,
        "tax_number": null,
        "value": "0.0000",
      },
      {
        "id": "2e2845ae-6358-4eda-ac9d-db9f55645f07",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "name": "Abernathy Inc",
        "contact_type_id": "f52574b5-ad7c-45e9-bc6e-bdc06a9e27bb",
        "contact_type_name": "Supplier",
        "contact_source_id": null,
        "contact_source_name": null,
        "phone": "02.1824.1532",
        "mobile": null,
        "email": "fcarroll@hotmail.com.au",
        "website": "http://www.dare.info",
        "street_address": "Unit 60 245 Oswaldo Cruiseway, \nEast Blake, Western Australia Pitcairn 2901",
        "street_address_line1": "Unit 60 245 Oswaldo Cruiseway",
        "street_address_line2": null,
        "street_address_city": "East Blake",
        "street_address_region": "Western Australia",
        "street_address_postal_code": "2901",
        "street_address_country_id": "PN",
        "street_address_country_name": "Pitcairn",
        "street_address_map_latitude": "-23.924693",
        "street_address_map_longitude": "131.288597",
        "street_address_map_zoom": "11",
        "postal_address": "4 Leannon Arcade, \nEbertmouth, Victoria Cyprus 2349",
        "postal_address_line1": "4 Leannon Arcade",
        "postal_address_line2": null,
        "postal_address_city": "Ebertmouth",
        "postal_address_region": "Victoria",
        "postal_address_postal_code": "2349",
        "postal_address_country_id": "CY",
        "postal_address_country_name": "Cyprus",
        "primary_contact_person_id": null,
        "primary_contact_person_name": null,
        "primary_contact_person_email": null,
        "primary_contact_person_job_title": null,
        "primary_contact_person_phone": null,
        "primary_contact_person_mobile": null,
        "email_inbox": "abernathy-inc+33b929e35d2e284951da-email@inbound-dev.jobmanmail.com",
        "email_inbox_unread_count": 0,
        "email_outbox_count": 0,
        "email_scheduled_count": 0,
        "email_drafts_count": 0,
        "created_at": "2021-08-06T04:05:02.000000Z",
        "updated_at": "2022-10-18T01:18:29.000000Z",
        "archived_at": null,
        "bill_payment_term_id": null,
        "bill_payment_term_days": null,
        "bill_payment_term_label": "14 days after bill date",
        "sales_payment_term_id": null,
        "sales_payment_term_days": null,
        "sales_payment_term_label": "30 days after invoice date",
        "created_by": "a58bf080-049e-4140-84c0-fd83e3d4f58f",
        "created_by_name": "Aaron Crees",
        "discount_percent": null,
        "discount_percent_label": "No discount",
        "accounting_xero_id": null,
        "accounting_myob_id": null,
        "accounting_quickbooks_online_id": null,
        "accounting_url": null,
        "tax_number": null,
        "value": "0.0000"
      }
    ]
  }
}

This endpoint retrieves all the contacts for a specific organisation.

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts

Parameter Description Required
type The Uuid of the type of the contact No
archived Boolean flag to filter by archived status No

Get a specific Contact

Response

{
  "contact": {
    "id": "84952a49-59a0-4b45-af54-6c1e0b52593f",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "name": "Abbott Ltd",
    "contact_type_id": "c58a1e72-6d3a-4351-9acb-3e9626603ec5",
    "contact_source_id": null,
    "phone": "(03)-3099-7889",
    "mobile": null,
    "email": "justin@jobman.com.au",
    "website": "http://www.hermann.com",
    "street_address": "94 Brady Chase, \nCruickshankville, Queensland Pitcairn 2666",
    "street_address_line1": "94 Brady Chase",
    "street_address_line2": null,
    "street_address_city": "Cruickshankville",
    "street_address_region": "Queensland",
    "street_address_postal_code": "2666",
    "street_address_country_id": "PN",
    "postal_address": "528 Jacquelyn Freeway, \nPort Juvenalside, Tasmania Russian Federation 0855",
    "postal_address_line1": "528 Jacquelyn Freeway",
    "postal_address_line2": null,
    "postal_address_city": "Port Juvenalside",
    "postal_address_region": "Tasmania",
    "postal_address_postal_code": "0855",
    "postal_address_country_id": "RU",
    "primary_contact_person_id": "c72b1101-b592-4a0e-a2b8-5aa66029ce37",
    "primary_contact_person_name": "Yessenia Witting",
    "primary_contact_person_email": "marcellus21@example.com",
    "primary_contact_person_job_title": "Public Relations Specialist",
    "primary_contact_person_phone": "+61 3 6832 2521",
    "primary_contact_person_mobile": null,
    "created_at": "2022-04-30T20:45:08.000000Z",
    "updated_at": "2022-10-20T01:02:34.000000Z",
    "archived_at": null,
    "bill_payment_term_id": null,
    "bill_payment_term_days": null,
    "sales_payment_term_id": null,
    "sales_payment_term_days": null,
    "discount_percent": null,
    "accounting_xero_id": null,
    "accounting_myob_id": null,
    "accounting_quickbooks_online_id": null,
    "tax_number": null,
    "value": "0.0000"
  }
}

This endpoint retrieves a specific contact.

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/{contactId}

Add a Contact

Response

{
  "contact": {
    "id": "84952a49-59a0-4b45-af54-6c1e0b52593f",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "name": "Abbott Ltd",
    "contact_type_id": "c58a1e72-6d3a-4351-9acb-3e9626603ec5",
    "contact_source_id": null,
    "phone": "(03)-3099-7889",
    "mobile": null,
    "email": "justin@jobman.com.au",
    "website": "http://www.hermann.com",
    "street_address": "94 Brady Chase, \nCruickshankville, Queensland Pitcairn 2666",
    "street_address_line1": "94 Brady Chase",
    "street_address_line2": null,
    "street_address_city": "Cruickshankville",
    "street_address_region": "Queensland",
    "street_address_postal_code": "2666",
    "street_address_country_id": "PN",
    "postal_address": "528 Jacquelyn Freeway, \nPort Juvenalside, Tasmania Russian Federation 0855",
    "postal_address_line1": "528 Jacquelyn Freeway",
    "postal_address_line2": null,
    "postal_address_city": "Port Juvenalside",
    "postal_address_region": "Tasmania",
    "postal_address_postal_code": "0855",
    "postal_address_country_id": "RU",
    "primary_contact_person_id": "c72b1101-b592-4a0e-a2b8-5aa66029ce37",
    "primary_contact_person_name": "Yessenia Witting",
    "primary_contact_person_email": "marcellus21@example.com",
    "primary_contact_person_job_title": "Public Relations Specialist",
    "primary_contact_person_phone": "+61 3 6832 2521",
    "primary_contact_person_mobile": null,
    "created_at": "2022-04-30T20:45:08.000000Z",
    "updated_at": "2022-10-20T01:02:34.000000Z",
    "archived_at": null,
    "bill_payment_term_id": null,
    "bill_payment_term_days": null,
    "sales_payment_term_id": null,
    "sales_payment_term_days": null,
    "discount_percent": null,
    "accounting_xero_id": null,
    "accounting_myob_id": null,
    "accounting_quickbooks_online_id": null,
    "tax_number": null,
    "value": "0.0000"
  }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts

This endpoint allows you to add a contact

Parameter Description Required
name The name of the contact Yes
contact_type_id Id of the contact type Yes
contact_source_id Id of the contact source No
phone The phone number of the contact No
email The email of the contact No
website The website of the contact No
tax_number Tax number No
street_address_line1 The first line of the contacts address No
street_address_line2 The second line of the contacts address No
street_address_city The contacts city address No
street_address_region The contacts address region No
street_address_postal_code The contacts post code No
street_address_country_id The country Id for the contacts address No
street_address_map_latitude The contact address latitude No
street_address_map_longitude The contact address longtitude No
street_address_map_zoom The contacts map zoom setting No
postal_address_line1 The first line of the contacts postal address No
postal_address_line2 The second line of the contacts postal address No
postal_address_city The contacts city postal address No
postal_address_region The contacts postal address region No
postal_address_postal_code The contacts post code No
postal_address_country_id The country Id for the contacts address No
contact_persons[] Array of contact persons (see below) No

A contact person has the following properties

Parameter Description Required
first_name The persons first name Yes
last_name The persons last name No
job_title The persons job title No
email The persons email address No
phone The persons phone number No
mobile The persons phone number No

Update a Contact

Response

{
  "contact": {
    "id": "84952a49-59a0-4b45-af54-6c1e0b52593f",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "name": "Abbott Ltd",
    "contact_type_id": "c58a1e72-6d3a-4351-9acb-3e9626603ec5",
    "contact_source_id": null,
    "phone": "(03)-3099-7889",
    "mobile": null,
    "email": "justin@jobman.com.au",
    "website": "http://www.hermann.com",
    "street_address": "94 Brady Chase, \nCruickshankville, Queensland Pitcairn 2666",
    "street_address_line1": "94 Brady Chase",
    "street_address_line2": null,
    "street_address_city": "Cruickshankville",
    "street_address_region": "Queensland",
    "street_address_postal_code": "2666",
    "street_address_country_id": "PN",
    "postal_address": "528 Jacquelyn Freeway, \nPort Juvenalside, Tasmania Russian Federation 0855",
    "postal_address_line1": "528 Jacquelyn Freeway",
    "postal_address_line2": null,
    "postal_address_city": "Port Juvenalside",
    "postal_address_region": "Tasmania",
    "postal_address_postal_code": "0855",
    "postal_address_country_id": "RU",
    "primary_contact_person_id": "c72b1101-b592-4a0e-a2b8-5aa66029ce37",
    "primary_contact_person_name": "Yessenia Witting",
    "primary_contact_person_email": "marcellus21@example.com",
    "primary_contact_person_job_title": "Public Relations Specialist",
    "primary_contact_person_phone": "+61 3 6832 2521",
    "primary_contact_person_mobile": null,
    "created_at": "2022-04-30T20:45:08.000000Z",
    "updated_at": "2022-10-20T01:02:34.000000Z",
    "archived_at": null,
    "bill_payment_term_id": null,
    "bill_payment_term_days": null,
    "sales_payment_term_id": null,
    "sales_payment_term_days": null,
    "discount_percent": null,
    "accounting_xero_id": null,
    "accounting_myob_id": null,
    "accounting_quickbooks_online_id": null,
    "tax_number": null,
    "value": "0.0000"
  }
}

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/{contactId}

This endpoint allows you to update the details of a specific contact.

Parameter Description Required
name The name of the contact Yes
contact_type_id Id of the contact type Yes
contact_source_id Id of the contact source No
phone The phone number of the contact No
email The email of the contact No
website The website of the contact No
tax_number Tax number No
street_address_line1 The first line of the contacts address No
street_address_line2 The second line of the contacts address No
street_address_city The contacts city address No
street_address_region The contacts address region No
street_address_postal_code The contacts post code No
street_address_country_id The country Id for the contacts address No
street_address_map_latitude The contact address latitude No
street_address_map_longitude The contact address longtitude No
street_address_map_zoom The contacts map zoom setting No
postal_address_line1 The first line of the contacts postal address No
postal_address_line2 The second line of the contacts postal address No
postal_address_city The contacts city postal address No
postal_address_region The contacts postal address region No
postal_address_postal_code The contacts post code No
postal_address_country_id The country Id for the contacts address No

Archive a contact

Response

{
  "contact": {
    "id": "84952a49-59a0-4b45-af54-6c1e0b52593f",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "name": "Abbott Ltd",
    "contact_type_id": "c58a1e72-6d3a-4351-9acb-3e9626603ec5",
    "contact_source_id": null,
    "phone": "(03)-3099-7889",
    "mobile": null,
    "email": "justin@jobman.com.au",
    "website": "http://www.hermann.com",
    "street_address": "94 Brady Chase, \nCruickshankville, Queensland Pitcairn 2666",
    "street_address_line1": "94 Brady Chase",
    "street_address_line2": null,
    "street_address_city": "Cruickshankville",
    "street_address_region": "Queensland",
    "street_address_postal_code": "2666",
    "street_address_country_id": "PN",
    "postal_address": "528 Jacquelyn Freeway, \nPort Juvenalside, Tasmania Russian Federation 0855",
    "postal_address_line1": "528 Jacquelyn Freeway",
    "postal_address_line2": null,
    "postal_address_city": "Port Juvenalside",
    "postal_address_region": "Tasmania",
    "postal_address_postal_code": "0855",
    "postal_address_country_id": "RU",
    "primary_contact_person_id": "c72b1101-b592-4a0e-a2b8-5aa66029ce37",
    "primary_contact_person_name": "Yessenia Witting",
    "primary_contact_person_email": "marcellus21@example.com",
    "primary_contact_person_job_title": "Public Relations Specialist",
    "primary_contact_person_phone": "+61 3 6832 2521",
    "primary_contact_person_mobile": null,
    "created_at": "2022-04-30T20:45:08.000000Z",
    "updated_at": "2022-10-20T01:37:21.000000Z",
    "archived_at": "2022-10-20T01:37:21.000000Z",
    "bill_payment_term_id": null,
    "bill_payment_term_days": null,
    "sales_payment_term_id": null,
    "sales_payment_term_days": null,
    "discount_percent": null,
    "accounting_xero_id": null,
    "accounting_myob_id": null,
    "accounting_quickbooks_online_id": null,
    "tax_number": null,
    "value": "0.0000"
  }
}

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/{contactId}/archive

This endpoint allows you to archive a specific contact.

Unarchive a contact

Response

{
  "contact": {
    "id": "84952a49-59a0-4b45-af54-6c1e0b52593f",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "name": "Abbott Ltd",
    "contact_type_id": "c58a1e72-6d3a-4351-9acb-3e9626603ec5",
    "contact_source_id": null,
    "phone": "(03)-3099-7889",
    "mobile": null,
    "email": "justin@jobman.com.au",
    "website": "http://www.hermann.com",
    "street_address": "94 Brady Chase, \nCruickshankville, Queensland Pitcairn 2666",
    "street_address_line1": "94 Brady Chase",
    "street_address_line2": null,
    "street_address_city": "Cruickshankville",
    "street_address_region": "Queensland",
    "street_address_postal_code": "2666",
    "street_address_country_id": "PN",
    "postal_address": "528 Jacquelyn Freeway, \nPort Juvenalside, Tasmania Russian Federation 0855",
    "postal_address_line1": "528 Jacquelyn Freeway",
    "postal_address_line2": null,
    "postal_address_city": "Port Juvenalside",
    "postal_address_region": "Tasmania",
    "postal_address_postal_code": "0855",
    "postal_address_country_id": "RU",
    "primary_contact_person_id": "c72b1101-b592-4a0e-a2b8-5aa66029ce37",
    "primary_contact_person_name": "Yessenia Witting",
    "primary_contact_person_email": "marcellus21@example.com",
    "primary_contact_person_job_title": "Public Relations Specialist",
    "primary_contact_person_phone": "+61 3 6832 2521",
    "primary_contact_person_mobile": null,
    "created_at": "2022-04-30T20:45:08.000000Z",
    "updated_at": "2022-10-20T01:37:37.000000Z",
    "archived_at": null,
    "bill_payment_term_id": null,
    "bill_payment_term_days": null,
    "sales_payment_term_id": null,
    "sales_payment_term_days": null,
    "discount_percent": null,
    "accounting_xero_id": null,
    "accounting_myob_id": null,
    "accounting_quickbooks_online_id": null,
    "tax_number": null,
    "value": "0.0000"
  }
}

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/{contactId}/unarchive

This endpoint allows you to unarchive a specific contact.

Archive multiple contacts

Response

{
  "contacts": [
    {
      "id": "d491ecd4-ec1d-4506-aa2a-80aff1294cd6",
      "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
      "name": "Abshire PLC",
      "contact_type_id": "9291e54e-87f8-4e73-b92b-630931d9a7a9",
      "contact_source_id": null,
      "phone": "02 9078 9243",
      "mobile": null,
      "email": "justin@jobman.com.au",
      "website": "http://wilderman.com.au",
      "street_address": "Apt. 218 866 Kyla Block, \nCordeliaport, South Australia Chile 2652",
      "street_address_line1": "Apt. 218 866 Kyla Block",
      "street_address_line2": null,
      "street_address_city": "Cordeliaport",
      "street_address_region": "South Australia",
      "street_address_postal_code": "2652",
      "street_address_country_id": "CL",
      "postal_address": "560C Tillman Centreway, \nNorth Jasen, Australian Capital Territory Egypt 2471",
      "postal_address_line1": "560C Tillman Centreway",
      "postal_address_line2": null,
      "postal_address_city": "North Jasen",
      "postal_address_region": "Australian Capital Territory",
      "postal_address_postal_code": "2471",
      "postal_address_country_id": "EG",
      "primary_contact_person_id": "03157f2b-4a57-4ea8-bf66-1c071748480e",
      "primary_contact_person_name": "Karine Herzog",
      "primary_contact_person_email": "wheidenreich@example.com",
      "primary_contact_person_job_title": "Physician Assistant",
      "primary_contact_person_phone": "0293.9616",
      "primary_contact_person_mobile": null,
      "created_at": "2023-03-09T14:44:51.000000Z",
      "updated_at": "2023-05-25T02:06:09.000000Z",
      "archived_at": "2023-05-25T02:06:09.000000Z",
      "bill_payment_term_id": null,
      "bill_payment_term_days": null,
      "sales_payment_term_id": null,
      "sales_payment_term_days": null,
      "discount_percent": null,
      "accounting_xero_id": null,
      "accounting_myob_id": null,
      "accounting_quickbooks_online_id": null,
      "tax_number": null,
      "value": "0.0000"
    }
  ]
}

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/archive

This endpoint allows you to archive multiple contacts.

Parameter Description Required
ids Array of contact ids to be archived Yes

Unarchive multiple contacts

Response

{
  "contacts": [
    {
      "id": "d491ecd4-ec1d-4506-aa2a-80aff1294cd6",
      "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
      "name": "Abshire PLC",
      "contact_type_id": "9291e54e-87f8-4e73-b92b-630931d9a7a9",
      "contact_source_id": null,
      "phone": "02 9078 9243",
      "mobile": null,
      "email": "justin@jobman.com.au",
      "website": "http://wilderman.com.au",
      "street_address": "Apt. 218 866 Kyla Block, \nCordeliaport, South Australia Chile 2652",
      "street_address_line1": "Apt. 218 866 Kyla Block",
      "street_address_line2": null,
      "street_address_city": "Cordeliaport",
      "street_address_region": "South Australia",
      "street_address_postal_code": "2652",
      "street_address_country_id": "CL",
      "postal_address": "560C Tillman Centreway, \nNorth Jasen, Australian Capital Territory Egypt 2471",
      "postal_address_line1": "560C Tillman Centreway",
      "postal_address_line2": null,
      "postal_address_city": "North Jasen",
      "postal_address_region": "Australian Capital Territory",
      "postal_address_postal_code": "2471",
      "postal_address_country_id": "EG",
      "primary_contact_person_id": "03157f2b-4a57-4ea8-bf66-1c071748480e",
      "primary_contact_person_name": "Karine Herzog",
      "primary_contact_person_email": "wheidenreich@example.com",
      "primary_contact_person_job_title": "Physician Assistant",
      "primary_contact_person_phone": "0293.9616",
      "primary_contact_person_mobile": null,
      "created_at": "2023-03-09T14:44:51.000000Z",
      "updated_at": "2023-05-25T02:06:09.000000Z",
      "archived_at": "2023-05-25T02:06:09.000000Z",
      "bill_payment_term_id": null,
      "bill_payment_term_days": null,
      "sales_payment_term_id": null,
      "sales_payment_term_days": null,
      "discount_percent": null,
      "accounting_xero_id": null,
      "accounting_myob_id": null,
      "accounting_quickbooks_online_id": null,
      "tax_number": null,
      "value": "0.0000"
    }
  ]
}

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/unarchive

This endpoint allows you to unarchive multiple contacts.

Parameter Description Required
ids Array of contact ids to be unarchived Yes

Merge contacts

Response

{
  "contact": {
    "id": "84952a49-59a0-4b45-af54-6c1e0b52593f",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "name": "Abbott Ltd",
    "contact_type_id": "c58a1e72-6d3a-4351-9acb-3e9626603ec5",
    "contact_source_id": null,
    "phone": "(03)-3099-7889",
    "mobile": null,
    "email": "justin@jobman.com.au",
    "website": "http://www.hermann.com",
    "street_address": "94 Brady Chase, \nCruickshankville, Queensland Pitcairn 2666",
    "street_address_line1": "94 Brady Chase",
    "street_address_line2": null,
    "street_address_city": "Cruickshankville",
    "street_address_region": "Queensland",
    "street_address_postal_code": "2666",
    "street_address_country_id": "PN",
    "postal_address": "528 Jacquelyn Freeway, \nPort Juvenalside, Tasmania Russian Federation 0855",
    "postal_address_line1": "528 Jacquelyn Freeway",
    "postal_address_line2": null,
    "postal_address_city": "Port Juvenalside",
    "postal_address_region": "Tasmania",
    "postal_address_postal_code": "0855",
    "postal_address_country_id": "RU",
    "primary_contact_person_id": "c72b1101-b592-4a0e-a2b8-5aa66029ce37",
    "primary_contact_person_name": "Yessenia Witting",
    "primary_contact_person_email": "marcellus21@example.com",
    "primary_contact_person_job_title": "Public Relations Specialist",
    "primary_contact_person_phone": "+61 3 6832 2521",
    "primary_contact_person_mobile": null,
    "created_at": "2022-04-30T20:45:08.000000Z",
    "updated_at": "2022-10-20T01:37:37.000000Z",
    "archived_at": null,
    "bill_payment_term_id": null,
    "bill_payment_term_days": null,
    "sales_payment_term_id": null,
    "sales_payment_term_days": null,
    "discount_percent": null,
    "accounting_xero_id": null,
    "accounting_myob_id": null,
    "accounting_quickbooks_online_id": null,
    "tax_number": null,
    "value": "0.0000"
  }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/merge

This endpoint allows you to merge multiple contacts (ids) into a single contact (contactId).

Parameter Description Required
ids Array of contact ids to be merged Yes

Update multiple contact types

Response

{
  "contacts": [
    {
      "id": "6ebca6ec-9d92-4751-8cb0-1ffa9bf5fcdd",
      "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
      "name": "Auer, Predovic and Kub",
      "contact_type_id": "67688883-d413-4246-a07f-c360f09a39b4",
      "contact_source_id": null,
      "phone": "7221 5604",
      "mobile": null,
      "email": "chauncey.legros@hotmail.com",
      "website": "https://ryan.net",
      "street_address": "652D Hartmann Deviation, \nGerlachshire, Australian Capital Territory Jamaica 2312",
      "street_address_line1": "652D Hartmann Deviation",
      "street_address_line2": null,
      "street_address_city": "Gerlachshire",
      "street_address_region": "Australian Capital Territory",
      "street_address_postal_code": "2312",
      "street_address_country_id": "JM",
      "postal_address": "19C Ernser Service Way, \nShakirafurt, Australian Capital Territory Antigua and/or Barbuda 2656",
      "postal_address_line1": "19C Ernser Service Way",
      "postal_address_line2": null,
      "postal_address_city": "Shakirafurt",
      "postal_address_region": "Australian Capital Territory",
      "postal_address_postal_code": "2656",
      "postal_address_country_id": "AG",
      "primary_contact_person_id": "b828c95a-2633-4299-93b5-4670cbbd37b7",
      "primary_contact_person_name": "Ed Gorczany",
      "primary_contact_person_email": "hillard63@example.com",
      "primary_contact_person_job_title": "Recyclable Material Collector",
      "primary_contact_person_phone": "+61-7-5465-8906",
      "primary_contact_person_mobile": null,
      "created_at": "2022-08-11T20:50:02.000000Z",
      "updated_at": "2023-05-25T07:23:12.000000Z",
      "archived_at": null,
      "bill_payment_term_id": null,
      "bill_payment_term_days": null,
      "sales_payment_term_id": null,
      "sales_payment_term_days": null,
      "discount_percent": null,
      "accounting_xero_id": null,
      "accounting_myob_id": null,
      "accounting_quickbooks_online_id": null,
      "tax_number": null,
      "value": "0.0000"
    },
    {
      "id": "d491ecd4-ec1d-4506-aa2a-80aff1294cd6",
      "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
      "name": "Abshire PLC",
      "contact_type_id": "67688883-d413-4246-a07f-c360f09a39b4",
      "contact_source_id": null,
      "phone": "02 9078 9243",
      "mobile": null,
      "email": "justin@jobman.com.au",
      "website": "http://wilderman.com.au",
      "street_address": "Apt. 218 866 Kyla Block, \nCordeliaport, South Australia Chile 2652",
      "street_address_line1": "Apt. 218 866 Kyla Block",
      "street_address_line2": null,
      "street_address_city": "Cordeliaport",
      "street_address_region": "South Australia",
      "street_address_postal_code": "2652",
      "street_address_country_id": "CL",
      "postal_address": "560C Tillman Centreway, \nNorth Jasen, Australian Capital Territory Egypt 2471",
      "postal_address_line1": "560C Tillman Centreway",
      "postal_address_line2": null,
      "postal_address_city": "North Jasen",
      "postal_address_region": "Australian Capital Territory",
      "postal_address_postal_code": "2471",
      "postal_address_country_id": "EG",
      "primary_contact_person_id": "03157f2b-4a57-4ea8-bf66-1c071748480e",
      "primary_contact_person_name": "Karine Herzog",
      "primary_contact_person_email": "wheidenreich@example.com",
      "primary_contact_person_job_title": "Physician Assistant",
      "primary_contact_person_phone": "0293.9616",
      "primary_contact_person_mobile": null,
      "created_at": "2023-03-09T14:44:51.000000Z",
      "updated_at": "2023-05-25T07:22:40.000000Z",
      "archived_at": null,
      "bill_payment_term_id": null,
      "bill_payment_term_days": null,
      "sales_payment_term_id": null,
      "sales_payment_term_days": null,
      "discount_percent": null,
      "accounting_xero_id": null,
      "accounting_myob_id": null,
      "accounting_quickbooks_online_id": null,
      "tax_number": null,
      "value": "0.0000"
    }
  ]
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/update-contact-type

This endpoint allows you to change the contact type for multiple contacts.

Parameter Description Required
ids Array of contact ids to be updated Yes
contact_type_id The Uuid of the contact type Yes

Contact Emails

List Contact Emails

Response

{
    "emails": {
        "data": [
            {
                "id": "036d484f-5adb-4398-a409-5a573ccb1431",
                "from": "sales@jobman.com",
                "to": "sales@finessecabinets.com.au",
                "reply_to": null,
                "cc": ["info@example.com"],
                "bcc": ["md@finessecabinets.com.au"],
                "subject": "Quote 2206-001/01 Accepted",
                "body": "Find the attached items and prices",
                "attachments": null,
                "template_id": null,
                "created_at": "2022-06-21T05:02:12.000000Z",
                "updated_at": "2022-06-21T05:09:53.000000Z"
            },
            {
                "id": "390e3975-2617-4731-af3c-f9b7101c876a",
                "from": "sales@finessecabinets.com.au",
                "to": "darrell46@jaskolski.edu",
                "reply_to": null,
                "cc": [""],
                "bcc": [""],
                "subject": "Quote 2206-001/01",
                "body": "<p>Hi Abshire-Ferry,</p>\n\n<p>Thank you for your enquiry.</p>\n\n<p>Here's quote 2206-001/01 for $AUD 100.00.</p>\n\n<p>View your quote online:<br><a class=\"underline\" href=\"http://localhost:1962/#public/quotes/33b928af-f0b5-42f9-ae2f-48dba38929ca/7217353e-4ff0-4b04-bf5e-09b7600b25fd\">http://localhost:1962/#public/quotes/33b928af-f0b5-42f9-ae2f-48dba38929ca/7217353e-4ff0-4b04-bf5e-09b7600b25fd</a></p>\n\n<p>From your online quote, you can accept, decline, comment or print.</p>\n\n<p>Thanks,<br>\nFinesse Cabinets</p>",
                "attachments": [
                    {
                        "name": "quote.pdf",
                        "path": "/quote.pdf",
                        "type": "application/pdf",
                        "size": 17619,
                        "size_formatted": "17 KB",
                        "url": "http://identity.jobman.io/storage/main/quote.pdf",
                        "modified_at": 1656053602,
                        "extension": "pdf"
                    }
                ],
                "template_id": "6b93d18d-27a8-4489-85f1-7b752b61d84b",
                "created_at": "2022-06-21T04:57:18.000000Z",
                "updated_at": "2022-06-21T04:57:22.000000Z"
            }
        ]
    }
}

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/{contactId}/emails

This endpoint allows you to list all emails for a specific contact.

Parameter Description Required
thread The Uuid of the thread to filter emails by No
folder The id of the folder to filter emails by No
trashed Boolean flag to filter by trashed status No

Get a Contact Email

Response

{
    "email": {
        "id": "036d484f-5adb-4398-a409-5a573ccb1431",
        "from": "sales@jobman.com",
        "to": "sales@finessecabinets.com.au",
        "reply_to": null,
        "cc": ["info@example.com"],
        "bcc": [""],
        "subject": "Quote 2206-001/01 Accepted",
        "body": "Find the attached items and prices",
        "attachments": null,
        "template_id": null,
        "created_at": "2022-06-21T05:02:12.000000Z",
        "updated_at": "2022-06-21T05:09:53.000000Z"
    }
}

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/{contactId}/emails/{emailId}

This endpoint allows you to retrieve specific email for a contact.

Add a Contact Email

Response

{
    "email": {
        "id": "036d484f-5adb-4398-a409-5a573ccb1431",
        "from": "sales@jobman.com",
        "to": "sales@finessecabinets.com.au",
        "reply_to": null,
        "cc": ["testy@example.com"],
        "bcc": [""],
        "subject": "Quote 2206-001/01 Accepted",
        "body": "Find the attached items",
        "attachments": [
            {
                "name": "quote.pdf",
                "path": "/quote.pdf",
                "type": "application/pdf",
                "size": 17619,
                "size_formatted": "17 KB",
                "url": "http://identity.jobman.io/storage/main/quote.pdf",
                "modified_at": 1656053602,
                "extension": "pdf"
            }
        ],
        "template_id": null,
        "created_at": "2022-06-21T05:02:12.000000Z",
        "updated_at": "2022-06-21T05:09:53.000000Z"
    }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/emails

This endpoint allows you to create a specific email for a contact.

Parameter Description Required
to A valid email address No
cc An array of valid email addresses No
bcc An array of valid email addresses No
subject Short descriptive label for the email No
body Main content for the email No
attachments An array of files No
template_id The template for the mail No
replying_to_id The id of the email replied to No

Update a Contact Email

Response

{
    "email": {
        "id": "036d484f-5adb-4398-a409-5a573ccb1431",
        "from": "sales@jobman.com",
        "to": "sales@finessecabinets.com.au",
        "reply_to": null,
        "cc": ["testy@example.com"],
        "bcc": [""],
        "subject": "Quote 2206-001/01 Accepted",
        "body": "Find the attached items",
        "attachments": null,
        "template_id": null,
        "created_at": "2022-06-21T05:02:12.000000Z",
        "updated_at": "2022-06-21T05:09:53.000000Z"
    }
}

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/{contactId}/emails/{emailId}

This endpoint allows you to update a specific email for a contact.

Parameter Description Required
to A valid email address No
cc An array of valid email addresses No
bcc An array of valid email addresses No
subject Short descriptive label for the email No
body Main content for the email No
attachments An array of files No
template_id The template for the email No

Delete a Contact Email

Response

204 | No content

HTTP Request

DELETE /api/v1/organisations/{organisationId}/contacts/{contactId}/emails/{emailId}

This endpoint allows you to delete specific email for a contact.

Restore multiple Contact Emails

Response

204 | No content

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/emails/restore

This endpoint allows you to restore multiple emails for a contact.

Parameter Description Required
ids Array of contact email UUids to be restored Yes

Archive a Contact Email

Response

204 | No content

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/emails/{emailId}/archive

This endpoint allows you to archive a specific email for a contact.

Unarchive a Contact Email

Response

204 | No content

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/emails/{emailId}/unarchive

This endpoint allows you to unarchive a specific email for a contact.

Mark a Contact Email as unread

Response

204 | No content

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/emails/{emailId}/unread

This endpoint allows you to mark a specific email as unread.

Preview a Contact Email

Response

{
    "preview": {
        "template_id": "f4796e3a-5611-43bd-87a7-ca4a339c9ff3",
        "to": "test@test.com",
        "subject": "Latest Project",
        "body": "Please find the latest quote for your project",
        "content": "<!doctype html>\n<html>\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <script src=\"https://cdn.tailwindcss.com?plugins=typography\"></script>\n</head>\n<body class=\"font-sans p-4\">\n    <p class=\"my-6\">\n    <img style=\"width:auto;height:50px\" src=\"http://identity.jobman.io/storage/main/finessecabinets-logo.png\">\n    </p>\n    <div class=\"prose-sm\">\n        Please find the latest quote for your project\n    </div>\n</body>\n</html>",
        "content_url": "http://identity.jobman.io/storage/main/templates/d8f4bfb5-2f1d-4b20-afeb-00d324c34b79/content.html"
    }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/emails/preview

This endpoint allows you to preview the details for a specific email for a contact.

Parameter Description Required
template_id The id for the template used Yes
to The email address of the recipient Yes
cc An array of valid email addresses No
bcc An array of valid email addresses No
subject Short descriptive subject Yes
body The main content of the email Yes
replying_to_id The id of the email replied to No
name The name to be used in the "{{name}}" merge tag No

Send a Contact Email

Response

{
    "email": {
        "id": "c9817b71-34df-407f-b93b-40036dfce9de",
        "from": "sales@finessecabinets.com.au",
        "to": "johnjobman3@gmail.com",
        "reply_to": null,
        "cc": ["info@example.com"],
        "bcc": ["md@finessecabinets.com.au"],
        "subject": "New Test Email to be Scheduled",
        "body": "Here is the postman content",
        "attachments": null,
        "template_id": "7598fd02-e7f8-49b0-96e7-d6485f7564a3",
        "created_at": "2022-06-24T07:07:26.000000Z",
        "updated_at": "2022-06-24T07:07:33.000000Z"
    }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/emails/{emailId}/send

This endpoint allows you to send an email for a contact.

Contact Exports

List Contact Exports

Response

{
    "contact_exports": {
        "data": [
            {
                "id": "cfc1117b-e68f-4fa3-ae2b-ff0f0bd270fe",
                "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
                "batch": {
                    "id": "94807d37-99ef-48c6-a02b-11f22d83027e",
                    "status": "completed",
                    "status_name": "Completed",
                    "progress": 100,
                    "warnings": [],
                    "errors": [],
                    "stats": [],
                    "results": []
                },
                "types_selection": "all",
                "types_selection_ids": [],
                "include_archived": false,
                "created_at": "2021-09-28T02:22:54.000000Z",
                "updated_at": "2021-09-28T02:22:54.000000Z"
            },
            {
                "id": "51abd210-56fc-42dd-a902-ca891e8e887a",
                "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
                "batch": {
                    "id": "94807bc0-4a9f-489d-90c4-825a1fa6e09f",
                    "status": "completed",
                    "status_name": "Completed",
                    "progress": 100,
                    "warnings": [],
                    "errors": [],
                    "stats": [],
                    "results": []
                },
                "types_selection": "all",
                "types_selection_ids": [],
                "include_archived": false,
                "created_at": "2021-09-28T02:18:47.000000Z",
                "updated_at": "2021-09-28T02:18:47.000000Z"
            }
        ]
    }
}

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/exports

This endpoint allows you to list all contact exports.

Get a Contact Export

This endpoint allows you to retrieve specific export's details.

Response

{
    "contact_export": {
        "id": "cfc1117b-e68f-4fa3-ae2b-ff0f0bd270fe",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": "94807d37-99ef-48c6-a02b-11f22d83027e",
            "status": "completed",
            "status_name": "Completed",
            "progress": 100,
            "warnings": [],
            "errors": [],
            "stats": [],
            "results": []
        },
        "types_selection": "all",
        "types_selection_ids": [],
        "include_archived": false,
        "created_at": "2021-09-28T02:22:54.000000Z",
        "updated_at": "2021-09-28T02:22:54.000000Z"
    }
}

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/exports/{contactExportId}

Create a Contact Export

Response

{
    "contact_export": {
        "id": "5f65a660-357b-40a3-9385-4ba656755a9a",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": null,
            "status": "not_started",
            "status_name": "Not started",
            "progress": 0,
            "warnings": [],
            "errors": [],
            "stats": [],
            "results": []
        },
        "types_selection": "all",
        "types_selection_ids": [],
        "include_archived": true,
        "created_at": "2021-09-28T08:10:22.000000Z",
        "updated_at": "2021-09-28T08:10:22.000000Z"
    }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/exports

This endpoint allows you to create a contacts export.

Parameter Description Required
types_selection 'all' or 'selected' contact types Yes
types_selection_ids An array of contact type IDs if selection = 'selected'
include_archived true/false to include archived No, defaults to false

Update a Contact Export

Response

{
    "contact_export": {
        "id": "5f65a660-357b-40a3-9385-4ba656755a9a",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": null,
            "status": "not_started",
            "status_name": "Not started",
            "progress": 0,
            "warnings": [],
            "errors": [],
            "stats": [],
            "results": []
        },
        "types_selection": "all",
        "types_selection_ids": [],
        "include_archived": true,
        "created_at": "2021-09-28T08:10:22.000000Z"
    }
}

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/exports/{contactExportID}

This endpoint allows you to update the export

Parameter Description Required
types_selection 'all' or 'selected' contact types Yes
types_selection_ids An array of contact type IDs if selection = 'selected'
include_archived true/false to include archived No, defaults to false

Start a Contact Export

Response

{
    "contact_export": {
        "id": "5f65a660-357b-40a3-9385-4ba656755a9a",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": "9480fa19-1a7a-41d4-a088-67e259a5ec8d",
            "status": "started",
            "status_name": "Started",
            "progress": 100,
            "warnings": [],
            "errors": [],
            "stats": [],
            "results": []
        },
        "types_selection": "all",
        "types_selection_ids": [],
        "include_archived": true,
        "created_at": "2021-09-28T08:10:22.000000Z",
        "updated_at": "2021-09-28T08:10:22.000000Z"
    }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/exports/{contactExportID}/start

This endpoint starts the export.

Cancel a Contact Export

Response

{
    "contact_export": {
        "id": "5f65a660-357b-40a3-9385-4ba656755a9a",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": "9480fa19-1a7a-41d4-a088-67e259a5ec8d",
            "status": "cancelled",
            "status_name": "Cancelled",
            "progress": 100,
            "warnings": [],
            "errors": [],
            "stats": [],
            "results": []
        },
        "types_selection": "all",
        "types_selection_ids": [],
        "include_archived": true,
        "created_at": "2021-09-28T08:10:22.000000Z"
    }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/exports/{contactExportID}/cancel

This endpoint cancels the export.

Contact Files

List Contact files

Response

{
    "files": [
        {
            "name": "Images",
            "path": "Images",
            "type": "dir",
            "size": 0,
            "url": "",
            "last_modified": ""
        },
        {
            "name": "Videos",
            "path": "Videos",
            "type": "dir",
            "size": 0,
            "url": "",
            "last_modified": ""
        },
        {
            "name": "Photo.png",
            "path": "Photo.png",
            "type": "file",
            "size": 164847,
            "url": "https://jobmanapp.com/storage/files/Organisation%2FImages%2FCabinets%2FImage.png?organisation=33b928af-f0b5-42f9-ae2f-48dba38929ca&signature=e5a4bfe6cdfe78cf04afe016f082270847709144adb757ea439a686f5c24bb76",
            "last_modified": 1643961457,
            "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca"
        }
    ]
}

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/{contactId}/files

This endpoint allows you to list the contents of a folder or return a file resource at a given path.

Parameter Description Required
path the path of the file/folder No

Store Contact files

Response

{}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/files

This endpoint allows you to store uploaded files.

Parameter Description Required
files An array of upload resources, see Uploads Yes
path the path of the folder to upload the file into No

Create a Contact folder

Response

{}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/files/{path}

This endpoint allows you to create a folder.

Parameter Description Required
folder_name The folder's name Yes
path the path name of the folder to add the folder into No

Delete a Contact file or folder

Response

{}

HTTP Request

DELETE /api/v1/organisations/{organisationId}/contacts/{contactId}/files

This endpoint allows you to delete a contact file or folder.

Parameter Description Required
path the path of the file/folder to delete No

Rename a Contact file

Response

{}

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/{contactId}/files

This endpoint allows you to rename the file specified by the path using the file_name parameter.

Parameter Description Required
path the path of the file to rename Yes
file_name The new file name Yes

Rename a Contact folder

Response

{}

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/{contactId}/files

This endpoint allows you to rename the folder specified by the path using the folder_name parameter.

Parameter Description Required
path the path of the folder to rename Yes
folder_name The new folder name Yes

Move a Contact file or folder

Response

{}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/files/move

This endpoint allows you to move a file or folder to a different location within contact's directory.

Parameter Description Required
source The source path in url-encoded format Yes
destination The destination path in url-encoded format Yes, empty path implies the contact's root folder

Contact Imports

List Contact Imports

Response

{
    "contact_imports": {
        "data": [
            {
                "id": "a6f2990f-dbdb-4e9d-8182-e484a6f48fd5",
                "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
                "batch": {
                    "id": "94cb47a5-03bf-4cd0-ad22-e2c9d42b1963",
                    "status": "completed",
                    "status_name": "Completed",
                    "progress": 100,
                    "warnings": [],
                    "errors": [],
                    "stats": [],
                    "results": []
                },
                "created_at": "2021-11-04T06:40:10.000000Z",
                "uploaded_file": {
                    "name": "contact-import-template (1).csv",
                    "path": "9301f731-3f7a-4d3b-bf57-a211f2c11b23/contact-import-template (1).csv",
                    "type": "text/plain",
                    "size": 757,
                    "size_formatted": "757 B",
                    "url": "http://example.com/storage/main/9301f731-3f7a-4d3b-bf57-a211f2c11b23/contact-import-template.csv",
                    "modified_at": 1636008009
                },
                "add_new_types": false,
                "add_new_sources": false,
                "update_payment_terms": false
            },
            {
                "id": "e399523a-cb85-4bb9-bdbc-6ca81b52cee5",
                "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
                "batch": {
                    "id": null,
                    "status": "failed",
                    "status_name": "Failed",
                    "progress": 0,
                    "warnings": [],
                    "errors": ["Required columns not found in file: Street Address Line 1, Street Address Line 2"],
                    "stats": [],
                    "results": []
                },
                "created_at": "2021-11-04T06:38:00.000000Z",
                "uploaded_file": {
                    "name": "contact-import-template.csv",
                    "path": "8a882f72-3d9e-4fba-8886-cf1c15a5db35/contact-import-template.csv",
                    "type": "text/plain",
                    "size": 47,
                    "size_formatted": "47 B",
                    "url": "http://example.com/storage/main/8a882f72-3d9e-4fba-8886-cf1c15a5db35/contact-import-template.csv",
                    "modified_at": 1636007879
                },
                "add_new_types": false,
                "add_new_sources": false,
                "update_payment_terms": false
            }
        ]
    }
}

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/imports

This endpoint allows you to list all contact imports.

Get a Contact Import

Response

{
    "contact_import": {
        "id": "a6f2990f-dbdb-4e9d-8182-e484a6f48fd5",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": "94cb47a5-03bf-4cd0-ad22-e2c9d42b1963",
            "status": "completed",
            "status_name": "Completed",
            "progress": 100,
            "warnings": [],
            "errors": [],
            "stats": [],
            "results": []
        },
        "created_at": "2021-11-04T06:40:10.000000Z",
        "uploaded_file": {
            "name": "contact-import-template.csv",
            "path": "9301f731-3f7a-4d3b-bf57-a211f2c11b23/contact-import-template.csv",
            "type": "text/plain",
            "size": 757,
            "size_formatted": "757 B",
            "url": "http://example.com/storage/main/9301f731-3f7a-4d3b-bf57-a211f2c11b23/contact-import-template.csv",
            "modified_at": 1636008009
        },
        "add_new_types": false,
        "add_new_sources": false,
        "update_payment_terms": false
    }
}

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/imports/{contactImportId}

This endpoint allows you to retrieve specific import's details.

Create a Contact Import

Response

{
    "contact_import": {
        "id": "a6f2990f-dbdb-4e9d-8182-e484a6f48fd5",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": "94cb47a5-03bf-4cd0-ad22-e2c9d42b1963",
            "status": "not_started",
            "status_name": "Not started",
            "progress": 0,
            "warnings": [],
            "errors": [],
            "stats": []
        },
        "created_at": "2021-11-04T06:40:10.000000Z",
        "uploaded_file": {
            "name": "contact-import-template.csv",
            "path": "9301f731-3f7a-4d3b-bf57-a211f2c11b23/contact-import-template.csv",
            "type": "text/plain",
            "size": 757,
            "size_formatted": "757 B",
            "url": "http://example.com/storage/main/9301f731-3f7a-4d3b-bf57-a211f2c11b23/contact-import-template.csv",
            "modified_at": 1636008009
        },
        "add_new_types": false,
        "add_new_sources": false,
        "update_payment_terms": false
    }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/imports

This endpoint allows you to create a contacts import.

Parameter Description Required
uploaded_file The file containing the contacts to be uploaded Yes
add_new_types Boolean flag to create new contact types if they dont exist No default false
add_new_sources Boolean flag to create new contact sources if they dont exist No default false
update_payment_terms Boolean flag to update the contact's payment terms No default false

Update a Contact Import

Response

{
    "contact_import": {
        "id": "a6f2990f-dbdb-4e9d-8182-e484a6f48fd5",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": "94cb47a5-03bf-4cd0-ad22-e2c9d42b1963",
            "status": "not_started",
            "status_name": "Not started",
            "progress": 0,
            "warnings": [],
            "errors": [],
            "stats": []
        },
        "created_at": "2021-11-04T06:40:10.000000Z",
        "uploaded_file": {
            "name": "new-contact-import-template.csv",
            "path": "9301f731-3f7a-4d3b-bf57-a211f2c11b23/new-contact-import-template.csv",
            "type": "text/plain",
            "size": 757,
            "size_formatted": "757 B",
            "url": "http://example.com/storage/main/9301f731-3f7a-4d3b-bf57-a211f2c11b23/new-contact-import-template.csv",
            "modified_at": 1636008009
        },
        "add_new_types": false,
        "add_new_sources": false,
        "update_payment_terms": false
    }
}

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/imports/{contactImportID}

This endpoint allows you to update the import.

Parameter Description Required
uploaded_file The file containing the contacts to be uploaded Yes
add_new_types Boolean flag to create new contact types if they dont exist No default false
add_new_sources Boolean flag to create new contact sources if they dont exist No default false
update_payment_terms Boolean flag to update the contact's payment terms No default false

Start a Contact Import

Response

{
    "contact_import": {
        "id": "a6f2990f-dbdb-4e9d-8182-e484a6f48fd5",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": "94cb47a5-03bf-4cd0-ad22-e2c9d42b1963",
            "status": "started",
            "status_name": "Started",
            "progress": 50,
            "warnings": [],
            "errors": [],
            "stats": []
        },
        "created_at": "2021-11-04T06:40:10.000000Z",
        "uploaded_file": {
            "name": "contact-import-template.csv",
            "path": "9301f731-3f7a-4d3b-bf57-a211f2c11b23/contact-import-template.csv",
            "type": "text/plain",
            "size": 757,
            "size_formatted": "757 B",
            "url": "http://example.com/storage/main/9301f731-3f7a-4d3b-bf57-a211f2c11b23/contact-import-template.csv",
            "modified_at": 1636008009
        },
        "add_new_types": false,
        "add_new_sources": false,
        "update_payment_terms": fals
    }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/imports/{contactImportID}/start

This endpoint starts the import.

Cancel a Contact Import

Response

{
    "contact_import": {
        "id": "a6f2990f-dbdb-4e9d-8182-e484a6f48fd5",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": "94cb47a5-03bf-4cd0-ad22-e2c9d42b1963",
            "status": "cancelled",
            "status_name": "Cancelled",
            "progress": 100,
            "warnings": [],
            "errors": [],
            "stats": []
        },
        "created_at": "2021-11-04T06:40:10.000000Z",
        "uploaded_file": {
            "name": "contact-import-template.csv",
            "path": "9301f731-3f7a-4d3b-bf57-a211f2c11b23/contact-import-template.csv",
            "type": "text/plain",
            "size": 757,
            "size_formatted": "757 B",
            "url": "http://example.com/storage/main/9301f731-3f7a-4d3b-bf57-a211f2c11b23/contact-import-template.csv",
            "modified_at": 1636008009
        },
        "add_new_types": false,
        "add_new_sources": false,
        "update_payment_terms": false
    }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactImportID}/cancel

This endpoint cancels the import.

Contact Persons

List Persons associated with a Contact

Response

{
    "contact_persons": [
        {
            "id": "da877812-5bc1-421f-a7f2-9eaad1dc8631",
            "name": "Andreane Carroll",
            "first_name": "Andreane",
            "last_name": "Carroll",
            "job_title": "Aircraft Rigging Assembler",
            "phone": "(03)15723078",
            "mobile": null,
            "email": "malachi04@example.com",
            "created_at": "2021-09-02T08:41:34.000000Z",
            "updated_at": "2021-09-02T08:41:34.000000Z"
        },
        {
            "id": "bed2eea2-84f9-43d1-a707-62f7553782c8",
            "name": "Angelica Tremblay",
            "first_name": "Angelica",
            "last_name": "Tremblay",
            "job_title": "Radiologic Technician",
            "phone": "+61.2.2543.3631",
            "mobile": null,
            "email": "koepp.gregoria@example.com",
            "created_at": "2021-09-02T08:41:34.000000Z",
            "updated_at": "2021-09-02T08:41:34.000000Z"
        }
    ]
}

This endpoint retrieves all the contact persons for a specific contact.

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/{contactId}/persons

Add a Contact Person

Response

{
    "contact_person": {
        "id": "bed2eea2-84f9-43d1-a707-62f7553782c8",
        "name": "Angelica Tremblay",
        "first_name": "Angelica",
        "last_name": "Tremblay",
        "job_title": "Radiologic Technician",
        "phone": "+61.2.2543.3631",
        "mobile": null,
        "email": "koepp.gregoria@example.com",
        "created_at": "2021-09-02T08:41:34.000000Z",
        "updated_at": "2021-09-02T08:41:34.000000Z"
    }
}

This endpoint adds a new contact person to a specific contact.

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/persons

Parameter Description Required
first_name First name of the contact person Required if last_name is empty
last_name Last name of the contact person Required if first_name is empty
job_title Job title of the contact person No
email Email of the contact person No
phone Phone number of the contact person No
mobile Mobile number of the contact person No

Get a Contact Person

Response

{
    "contact_person": {
        "id": "3a9bb872-dfa6-4f6b-ac2d-e11f51fbaed6",
        "name": "Dorothea Stamm",
        "first_name": "Dorothea",
        "last_name": "Stamm",
        "job_title": "Natural Sciences Manager",
        "phone": "76235316",
        "email": "francisco.kessler@example.org",
        "created_at": "2021-09-02T08:41:34.000000Z",
        "updated_at": "2021-09-02T08:41:34.000000Z"
    }
}

This endpoint retrieves a specific contact person from a specific contact.

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/{contactId}/persons/{contactPersonId}

Update a Contact Person

Response

{
    "contact_person": {
        "id": "3a9bb872-dfa6-4f6b-ac2d-e11f51fbaed6",
        "name": "Dorothea Stamm",
        "first_name": "Dorothea",
        "last_name": "Stamm",
        "job_title": "Natural Sciences Manager",
        "phone": "76235316",
        "mobile": null,
        "email": "francisco.kessler@example.org",
        "created_at": "2021-09-02T08:41:34.000000Z",
        "updated_at": "2021-09-02T08:41:34.000000Z"
    }
}

This endpoint updates a specific contact person from a specific contact.

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/{contactId}/persons/{contactPersonId}

Parameter Description Required
first_name First name of the contact person Required if last_name is empty
last_name Last name of the contact person Required if first_name is empty
job_title Job title of the contact person No
email Email of the contact person No
phone Phone number of the contact person No
mobile Mobile number of the contact person No

Remove a Contact Person

Response

204 | No content

This endpoint deletes a specific contact person from a specific contact.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/contacts/{contactId}/persons/{contactPersonId}

Nominate a contact person as the primary contact

Response

{
  "primary_contact_person": {
    "id": "d491ecd4-ec1d-4506-aa2a-80aff1294cd6",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "name": "Abshire PLC",
    "contact_type_id": "67688883-d413-4246-a07f-c360f09a39b4",
    "contact_source_id": null,
    "phone": "02 9078 9243",
    "mobile": null,
    "email": "justin@jobman.com.au",
    "website": "http://wilderman.com.au",
    "street_address": "Apt. 218 866 Kyla Block, \nCordeliaport, South Australia Chile 2652",
    "street_address_line1": "Apt. 218 866 Kyla Block",
    "street_address_line2": null,
    "street_address_city": "Cordeliaport",
    "street_address_region": "South Australia",
    "street_address_postal_code": "2652",
    "street_address_country_id": "CL",
    "postal_address": "560C Tillman Centreway, \nNorth Jasen, Australian Capital Territory Egypt 2471",
    "postal_address_line1": "560C Tillman Centreway",
    "postal_address_line2": null,
    "postal_address_city": "North Jasen",
    "postal_address_region": "Australian Capital Territory",
    "postal_address_postal_code": "2471",
    "postal_address_country_id": "EG",
    "primary_contact_person_id": "96303342-27d9-4dc5-9aa4-e367d224db9a",
    "primary_contact_person_name": "John Smith",
    "primary_contact_person_avatar": "https://ui-avatars.com/api/?format=svg&bold=true&background=FE5000&color=FFFFFF&rounded=true&name=John+Smith",
    "primary_contact_person_email": "example@jobman.com.au",
    "primary_contact_person_job_title": "Owner",
    "primary_contact_person_phone": "0855555555",
    "primary_contact_person_mobile": null,
    "created_at": "2023-03-09T14:44:51.000000Z",
    "updated_at": "2023-05-26T06:18:07.000000Z",
    "archived_at": null,
    "bill_payment_term_id": null,
    "bill_payment_term_days": null,
    "sales_payment_term_id": null,
    "sales_payment_term_days": null,
    "discount_percent": null,
    "accounting_xero_id": null,
    "accounting_myob_id": null,
    "accounting_quickbooks_online_id": null,
    "tax_number": null,
    "value": "0.0000"
  }
}

This endpoint allocates a contact person to the primary contact person role

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/{contactId}/primary-contact-person

Parameter Description Required
contact_person_id Id of the contact person Yes

Contact Sources

List contact sources

Response

{
  "contact_sources": {
    "data": [
      {
        "id": "3f76b411-795a-45b4-849c-ea70fff024f8",
        "name": "Facebook",
        "created_at": "2021-08-13T08:05:42.000000Z",
        "updated_at": "2021-08-13T08:05:42.000000Z"
      },
      {
        "id": "545a34b8-86c8-466f-8ad3-695ae2bce286",
        "name": "Google",
        "created_at": "2021-08-13T07:37:52.000000Z",
        "updated_at": "2021-08-13T07:37:52.000000Z"
      }
    ]
  }
}

This endpoint retrieves all active contact sources for the organisation.

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/sources

For more see Settings > Contact Sources.

Add new contact source

Response

{
  "contact_source": {
    "id": "c65f03d3-4f68-4f74-9886-a807b9c1264f",
    "name": "Twitter",
    "created_at": "2021-08-16T03:44:14.000000Z",
    "updated_at": "2021-08-16T03:44:14.000000Z"
  }
}

This endpoint adds a new contact source.

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/sources

Parameter Description
name Name of new contact source

For more see Settings > Contact Sources.

Contact Syncs

List all contact synchronisations

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/syncs

This endpoint allows you to list all contact synchronisations.

Response

{
    "contact_syncs": {
        "data": [
            {
                "id": "cfc1117b-e68f-4fa3-ae2b-ff0f0bd270fe",
                "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
                "batch": {
                    "id": "94807d37-99ef-48c6-a02b-11f22d83027e",
                    "status": "completed",
                    "status_name": "Completed",
                    "progress": 100,
                    "warnings": [],
                    "errors": [],
                    "stats": {
                        "xero_api_called.total": 2,
                        "synced_from_jobman.total": 1,
                        "synced_from_jobman.updated_in_provider": 1,
                        "synced_from_xero.total": 1,
                        "synced_from_provider.updated_in_jobman": 1,
                        "cache.skipped": 1
                    },
                    "results": ["1 existing contact updated in Xero", "1 existing contact was updated from Xero"]
                },
                "created_at": "2021-09-28T02:22:54.000000Z"
            },
            {
                "id": "bd32cf29-bcb2-447f-8f62-65d9631e565c",
                "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
                "batch": {
                    "id": "9480725e-e0a6-4a72-9edd-4d52786da450",
                    "status": "started",
                    "status_name": "Started",
                    "progress": 100,
                    "warnings": [],
                    "errors": [],
                    "stats": [],
                    "results": []
                },
                "created_at": "2021-09-28T01:52:27.000000Z"
            }
        ]
    }
}

Get a specific contact synchronisation

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/syncs/{contactSyncId}

This endpoint allows you to retrieve specific synchronisation's details.

Response

{
    "contact_sync": {
        "id": "cfc1117b-e68f-4fa3-ae2b-ff0f0bd270fe",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": "94807d37-99ef-48c6-a02b-11f22d83027e",
            "status": "completed",
            "status_name": "Completed",
            "progress": 100,
            "warnings": [],
            "errors": [],
            "stats": {
                "xero_api_called.total": 2,
                "synced_from_jobman.total": 1,
                "synced_from_jobman.updated_in_provider": 1,
                "synced_from_xero.total": 1,
                "synced_from_provider.updated_in_jobman": 1,
                "cache.skipped": 1
            },
            "results": ["1 existing contact updated in Xero", "1 existing contact was updated from Xero"]
        },
        "created_at": "2021-09-28T02:22:54.000000Z"
    }
}

Create a synchronisation

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/syncs

This endpoint allows you to create a contacts synchronisation.

Response

{
    "contact_sync": {
        "id": "5f65a660-357b-40a3-9385-4ba656755a9a",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": null,
            "status": "not_started",
            "status_name": "Not started",
            "progress": 0,
            "warnings": [],
            "errors": [],
            "stats": [],
            "results": []
        },
        "created_at": "2021-09-28T08:10:22.000000Z"
    }
}

Update an contact synchronisation

HTTP Request

PUT /api/v1/organisations/{organisationId}/contacts/syncs/{contactSyncId}

This endpoint allows you to update a contact synchronisation.

Response

{
    "contact_sync": {
        "id": "5f65a660-357b-40a3-9385-4ba656755a9a",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": null,
            "status": "not_started",
            "status_name": "Not started",
            "progress": 0,
            "warnings": [],
            "errors": [],
            "stats": [],
            "results": []
        },
        "created_at": "2021-09-28T08:10:22.000000Z"
    }
}

Start a contact synchronisation

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/syncs/{contactSyncId}/start

This endpoint starts a specific synchronisation.

Response

{
    "contact_sync": {
        "id": "5f65a660-357b-40a3-9385-4ba656755a9a",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": "9480fa19-1a7a-41d4-a088-67e259a5ec8d",
            "status": "started",
            "status_name": "Started",
            "progress": 100,
            "warnings": [],
            "errors": [],
            "stats": [],
            "results": []
        },
        "created_at": "2021-09-28T08:10:22.000000Z"
    }
}

Cancel a contact synchronisation

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/syncs/{contactSyncId}/cancel

This endpoint cancels a specific synchronisation.

Response

{
    "contact_sync": {
        "id": "5f65a660-357b-40a3-9385-4ba656755a9a",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "batch": {
            "id": "9480fa19-1a7a-41d4-a088-67e259a5ec8d",
            "status": "cancelled",
            "status_name": "Cancelled",
            "progress": 100,
            "warnings": [],
            "errors": [],
            "stats": {
                "xero_api_called.total": 2,
                "synced_from_xero.total": 1,
                "synced_from_provider.updated_in_jobman": 1,
                "synced_from_jobman.total": 1,
                "synced_from_jobman.updated_in_provider": 1,
                "cache.skipped": 1
            },
            "results": ["1 existing contact updated in Xero", "1 existing contact was updated from Xero"]
        },
        "created_at": "2021-09-28T08:10:22.000000Z"
    }
}

Contact Types

List contact types

Response

{
  "contact_types": {
    "data": [
      {
        "id": "cacc120b-239a-41dd-9ce7-108a837e8a5b",
        "name": "Commercial",
        "bill_payment_term_id": null,
        "bill_payment_term_days": null,
        "created_at": "2023-05-23T03:24:33.000000Z",
        "sales_payment_term_id": null,
        "sales_payment_term_days": null,
        "updated_at": "2023-05-23T03:24:33.000000Z",
        "discount_percent": null,
        "staff_role_selection": "all",
        "staff_roles": []
      },
      {
        "id": "0029d319-6172-43d2-a799-8adde0927563",
        "name": "Supplier",
        "bill_payment_term_id": null,
        "bill_payment_term_days": null,
        "created_at": "2023-05-23T03:24:28.000000Z",
        "sales_payment_term_id": null,
        "sales_payment_term_days": null,
        "updated_at": "2023-05-23T03:24:28.000000Z",
        "discount_percent": null,
        "staff_role_selection": "all",
        "staff_roles": []
      }
    ]
  }
}

This endpoint retrieves the active contact types for a specific organisation.

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/types

Parameter Description Required
trashed Boolean flag to filter by trashed status No

For more see Settings > Contact Types.

Add new contact type

Response

{
  "contact_type": {
    "id": "04f3b51a-d340-4d6d-ae12-c2a3087ef0e2",
    "name": "Architect",
    "bill_payment_term_id": "DAYSAFTERBILLDATE",
    "bill_payment_term_days": "14",
    "created_at": "2023-05-26T07:14:52.000000Z",
    "sales_payment_term_id": "DAYSAFTERBILLDATE",
    "sales_payment_term_days": "30",
    "updated_at": "2023-05-26T07:14:52.000000Z",
    "discount_percent": "0",
    "staff_role_selection": "selected",
    "staff_roles": [
      {
        "id": "f360a647-44e2-4087-a6a2-360f1d4835af",
        "name": "Administrator"
      }
    ]
  }
}

This endpoint retrieves creates a contact type for a specific organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/types

Parameter Description Required
name The name of the contact Yes
discount_percent The default discount percentage for this contact type No
is_individual Boolean flag if the contact type is for an individual No default false
is_supplier Boolean flag if the contact type is for a supplier No default false
can_have_job Boolean flag if the contact type can be assigned to a job No default false
bill_payment_term_id The Id of the Payment Term for bills No
bill_payment_term_days The number of days after the payment term date a bill is due Required with bill_payment_term_id
sales_payment_term_id The Id of the Payment Term for invoices No
sales_payment_term_days The number of days after the payment term date an invoice is due Required with bill_payment_term_id
staff_role_selection Which staff roles can have access to this contact type No - "all" or "selected"
staff_role_ids Array of staff role Id's that can access this contact type No

For more see Settings > Contact Types.

Contact Members

List Contact Members

Response

{
    "contact_members": {
        "data": [
            {
                "id": "f518f3ed-d8cb-431b-964c-7b1cc0669931",
                "staff_id": "c91c6de9-863b-4a07-8b64-00186bf4eadf"
            },
            {
                "id": "64522a64-5b07-48f0-843a-e796e881d83a",
                "staff_id": "d9cee972-4d35-4a90-a8b6-45ac88534eeb"
            }
        ]
    }
}

This endpoint retrieves all the members of a Contact.

HTTP Request

GET /api/v1/organisations/{organisationId}/contacts/{contactId}/members

Add a Contact Member

Response

204 | No content

This endpoint adds a Staff Member to a Contact.

HTTP Request

POST /api/v1/organisations/{organisationId}/contacts/{contactId}/members

Parameter Description Required
staff_id The id of the Staff Member Yes

Delete a Contact Member

Response

204 | No content

This endpoint removes a Staff Member from a Contact.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/contacts/{contactId}/members/{contactMemberId}

Countries

List Countries

Response

{
    "countries": [
        {
            "id": "AL",
            "name": "Albania"
        },
        {
            "id": "DZ",
            "name": "Algeria"
        },
        {
            "id": "AS",
            "name": "American Samoa"
        }
    ]
}

This endpoint retrieves the countries in Jobman.

HTTP Request

GET /api/v1/countries

Currencies

List Currencies

Response

{
    "currencies": [
        {
            "id": "AUD",
            "name": "AUD - Australian Dollar"
        },
        {
            "id": "USD",
            "name": "USD - US Dollar"
        },
        {
            "id": "EUR",
            "name": "EUR - Euro"
        }
    ]
}

This endpoint retrieves the currencies in Jobman.

HTTP Request

GET /api/v1/currencies

Date Formats

List Date Formats

Response

{
    "date_formats": [
        {
            "id": "DD-MM-YYYY",
            "name": "DD-MM-YYYY"
        },
        {
            "id": "MM-DD-YYYY",
            "name": "MM-DD-YYYY"
        }
    ]
}

This endpoint retrieves the date formats in Jobman.

HTTP Request

GET /api/v1/date-formats

Detail Question Types

List Detail Question Types

Response

{
  "question_types": [
    {
      "id": "text",
      "name": "Text"
    },
    {
      "id": "paragraph_text",
      "name": "Paragraph Text"
    },
    {
      "id": "email",
      "name": "Email Address"
    },
    {
      "id": "url",
      "name": "URL"
    },
    {
      "id": "number",
      "name": "Number"
    },
    {
      "id": "dropdown",
      "name": "Dropdown"
    },
    {
      "id": "checkbox",
      "name": "Checkbox"
    },
    {
      "id": "staff",
      "name": "Staff Member"
    }
  ]
}

This endpoint retrieves the detail question types in Jobman.

HTTP Request

GET /api/v1/detail-question-types

Genders

List Genders

Response

{
    "genders": [
        {
            "id": "male",
            "name": "Male"
        },
        {
            "id": "female",
            "name": "Female"
        },
        {
            "id": "non_binary",
            "name": "Non Binary"
        },
        {
            "id": "not_stated",
            "name": "Not Stated"
        }
    ]
}

This endpoint retrieves the genders in Jobman.

HTTP Request

GET /api/v1/genders

Inventory Materials

List all Inventory Materials

HTTP Request

GET /api/v1/organisations/{organisationId}/inventory/materials

This endpoint allows you to list all inventory materials for an organisation.

Parameter Description Required
category The uuid for the category of the item No
supplier The uuid for the supplier of the item No
brand The uuid for the brand of the item No
location The uuid for the location of the item No
assigned Boolean flag to filter items assigned to jobs No
trashed Boolean flag to filter by trashed status No

Response

{
  "inventory_items": {
    "data": [
      {
        "id": "4dab6720-8605-4463-823d-3a36ec248c2b",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "name": "16mm Black Melamine",
        "created_at": "2023-09-05T01:39:39.000000Z",
        "updated_at": "2023-09-05T05:36:20.000000Z"
      },
      {
        "id": "0f861ee7-3bda-40e1-bc56-78ddad28bb18",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "name": "16mm Black Melamine",
        "created_at": "2023-09-05T01:36:53.000000Z",
        "updated_at": "2023-09-05T05:36:20.000000Z"
      }
    ]
  }
}

Get a specific Inventory Material

HTTP Request

GET /api/v1/organisations/{organisationId}/inventory/materials/{inventoryItemId}

This endpoint retrieves a specific inventory material for an organisation.

Response

{
  "inventory_item": {
    "id": "4dab6720-8605-4463-823d-3a36ec248c2b",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "number": "00000007",
    "supplier_id": "cde91223-a294-4852-8c90-7101ef5046da",
    "catalogue_item_category_id": "2fffc2d2-01c2-4da3-abb1-b72fb7511b4d",
    "catalogue_item_type": "material",
    "catalogue_item_brand_id": "06fc5b91-7933-4d62-81a0-e3c2e1903add",
    "catalogue_item_finish_id": "172c4875-ca19-476d-8958-0f199945f0b7",
    "name": "16mm Black Melamine",
    "sku": "QPBLML16",
    "range": "Black Melamine",
    "colour": null,
    "barcode": null,
    "size_length": 2400,
    "size_width": 1200,
    "size_depth": 16,
    "size_length_unit_id": "millimetres",
    "size_volume": null,
    "size_volume_unit_id": null,
    "size_mass": null,
    "size_mass_unit_id": null,
    "price": 57.6,
    "price_unit_id": "sheet",
    "units_per_price": 2.88,
    "unit_price": 20,
    "unit_price_unit_id": "square_metre",
    "location_id": "7424f9d4-c769-485b-96fa-1b1b5fb9931b",
    "bay_location": null,
    "units": "28.8000",
    "picked_units": "0.0000",
    "job_id": null,
    "created_at": "2023-09-05T01:39:39.000000Z",
    "updated_at": "2023-09-05T05:36:20.000000Z",
    "created_by": "2f032b27-9b4e-4387-aa74-a669a7e6d0f1"
  }
}

Add an Inventory Material

Response

{
  "inventory_item": {
    "id": "4dab6720-8605-4463-823d-3a36ec248c2b",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "number": "00000007",
    "supplier_id": "cde91223-a294-4852-8c90-7101ef5046da",
    "catalogue_item_category_id": "2fffc2d2-01c2-4da3-abb1-b72fb7511b4d",
    "catalogue_item_type": "material",
    "catalogue_item_brand_id": "06fc5b91-7933-4d62-81a0-e3c2e1903add",
    "catalogue_item_finish_id": "172c4875-ca19-476d-8958-0f199945f0b7",
    "name": "16mm Black Melamine",
    "sku": "QPBLML16",
    "range": "Black Melamine",
    "colour": null,
    "barcode": null,
    "size_length": 2400,
    "size_width": 1200,
    "size_depth": 16,
    "size_length_unit_id": "millimetres",
    "size_volume": null,
    "size_volume_unit_id": null,
    "size_mass": null,
    "size_mass_unit_id": null,
    "price": 57.6,
    "price_unit_id": "sheet",
    "units_per_price": 2.88,
    "unit_price": 20,
    "unit_price_unit_id": "square_metre",
    "location_id": "7424f9d4-c769-485b-96fa-1b1b5fb9931b",
    "bay_location": null,
    "units": "28.8000",
    "picked_units": "0.0000",
    "job_id": null,
    "created_at": "2023-09-05T01:39:39.000000Z",
    "updated_at": "2023-09-05T05:36:20.000000Z",
    "created_by": "2f032b27-9b4e-4387-aa74-a669a7e6d0f1"
  }
}

This endpoint adds a new inventory material to an organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/inventory/materials

Parameter Description Required
name The name of the Item Yes
location_id The uuid of the location the Item is assigned to Yes
units The number of units in Inventory Yes
catalogue_item_category_id The uuid for the category of the item Yes
price The price of the item Yes
price_unit_id The uuid of the unit of measurement for the price of the item Yes
units_per_price The number if units that are contained within the item Yes
unit_price The price of each unit in the item Yes
unit_price_unit_id The uuid of the unit of measurement for the price of each unit in the item No
bay_location The name/identifier of the bay the Item is stored in No
supplier_id The contact uuid that supplies the Item No
sku The sku or product code for the Item No
barcode The barcode for the Item No
size_width The width of the item No
size_length The length of the item No
size_depth The depth of the item No
size_length_unit_id The uuid of the unit of measurement for length of the item No
size_volume The volume of the item No
size_volume_unit_id The uuid of the unit of measurement for volume of the item No
size_mass The mass of the item No
size_mass_unit_id The uuid of the unit of measurement for mass of the item No
catalogue_item_brand_id The uuid for the brand of the Item No
catalogue_item_finish_id The uuid for the finish of the item No
colour The colour of the item No
range The range the item belongs to No

Update an Inventory Material

Response

{
  "inventory_item": {
    "id": "4dab6720-8605-4463-823d-3a36ec248c2b",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "number": "00000007",
    "supplier_id": "cde91223-a294-4852-8c90-7101ef5046da",
    "catalogue_item_category_id": "2fffc2d2-01c2-4da3-abb1-b72fb7511b4d",
    "catalogue_item_type": "material",
    "catalogue_item_brand_id": "06fc5b91-7933-4d62-81a0-e3c2e1903add",
    "catalogue_item_finish_id": "172c4875-ca19-476d-8958-0f199945f0b7",
    "name": "16mm Black Melamine",
    "sku": "QPBLML16",
    "range": "Black Melamine",
    "colour": null,
    "barcode": null,
    "size_length": 2400,
    "size_width": 1200,
    "size_depth": 16,
    "size_length_unit_id": "millimetres",
    "size_volume": null,
    "size_volume_unit_id": null,
    "size_mass": null,
    "size_mass_unit_id": null,
    "price": 57.6,
    "price_unit_id": "sheet",
    "units_per_price": 2.88,
    "unit_price": 20,
    "unit_price_unit_id": "square_metre",
    "location_id": "7424f9d4-c769-485b-96fa-1b1b5fb9931b",
    "bay_location": null,
    "units": "28.8000",
    "picked_units": "0.0000",
    "job_id": null,
    "created_at": "2023-09-05T01:39:39.000000Z",
    "updated_at": "2023-09-05T05:36:20.000000Z",
    "created_by": "2f032b27-9b4e-4387-aa74-a669a7e6d0f1"
  }
}

This endpoint modifies an existing inventory material for an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/inventory/materials/{inventoryItemId}

Parameter Description Required
name The name of the Item No
location_id The uuid of the location the Item is assigned to No
units The number of units in Inventory No
catalogue_item_category_id The uuid for the category of the item No
price The price of the item No
price_unit_id The uuid of the unit of measurement for the price of the item No
units_per_price The number if units that are contained within the item No
unit_price The price of each unit in the item No
unit_price_unit_id The uuid of the unit of measurement for the price of each unit in the item No
bay_location The name/identifier of the bay the Item is stored in No
supplier_id The contact uuid that supplies the Item No
sku The sku or product code for the Item No
barcode The barcode for the Item No
size_width The width of the item No
size_length The length of the item No
size_depth The depth of the item No
size_length_unit_id The uuid of the unit of measurement for length of the item No
size_volume The volume of the item No
size_volume_unit_id The uuid of the unit of measurement for volume of the item No
size_mass The mass of the item No
size_mass_unit_id The uuid of the unit of measurement for mass of the item No
catalogue_item_brand_id The uuid for the brand of the Item No
catalogue_item_finish_id The uuid for the finish of the item No
colour The colour of the item No
range The range the item belongs to No

Delete an Inventory Material

Response

204 | No content

This endpoint deletes a specific inventory material.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/inventory/materials/{inventoryItemId}

Delete multiple Inventory Materials

Response

204 | No content

This endpoint deletes multiple inventory materials.

HTTP Request

POST /api/v1/organisations/{organisationId}/inventory/materials/delete`

Parameter Description Required
ids An array of inventory item Ids Yes

Restore Inventory Materials

Response

204 | No content

This endpoint restores one or multiple inventory items.

HTTP Request

POST /api/v1/organisations/{organisationId}/inventory/materials/restore

Parameter Description Required
ids An array of inventory item Ids Yes

Invoices

List all invoices

HTTP Request

GET /api/v1/organisations/{organisationId}/invoices

This endpoint allows you to list all invoices for an organisation.

Response

{
  "invoices": {
    "data": [
      {
        "id": "faca0581-b16d-4a8d-88ce-41aefd23767e",
        "number": "PR22-0001",
        "contact_id": "1c09bbb5-c583-43b7-b065-a4c5072976a1",
        "lead_id": "8299691b-8dfe-4cf3-9af7-a28919ccfe83",
        "project_id": null,
        "job_id": null,
        "contact_name": "Abbott-Hartmann",
        "invoice_status_id": "bb15af05-129b-4b59-9cda-8a00c2809eea",
        "invoice_type_id": "b92ee34a-1fd4-40e5-b4a9-34ebc916ef1b",
        "date": "2022-07-19T00:00:00.000000Z",
        "due_date": "2022-08-18T00:00:00.000000Z",
        "template_id": "f5ee1fdd-b66e-4f06-b874-cf92a59e59a8",
        "subtotal": "500.0000",
        "tax": "00.0000",
        "total": "500.0000",
        "created_at": "2022-07-19T03:53:52.000000Z",
        "updated_at": "2022-07-19T03:53:52.000000Z"
      },
      {
        "id": "faca0581-b16d-4a8d-88ce-41aefd23767e",
        "number": "PR22-0002",
        "contact_id": "1c09bbb5-c583-43b7-b065-a4c5072976a1",
        "lead_id": "8299691b-8dfe-4cf3-9af7-a28919ccfe83",
        "project_id": null,
        "job_id": "b92ee34a-1fd4-40e5-b4a9-34ebc436hijg",
        "contact_name": "Abbott-Hartmann",
        "invoice_status_id": "bb15af05-129b-4b59-9cda-8a00c2809eea",
        "invoice_type_id": "b92ee34a-1fd4-40e5-b4a9-34ebc916ef1b",
        "date": "2022-07-19T00:00:00.000000Z",
        "due_date": "2022-08-18T00:00:00.000000Z",
        "template_id": "f5ee1fdd-b66e-4f06-b874-cf92a59e59a8",
        "subtotal": "500.0000",
        "tax": "50.0000",
        "total": "550.0000",
        "created_at": "2022-07-19T03:53:52.000000Z",
        "updated_at": "2022-07-19T03:53:52.000000Z"
      }
    ]
  }
}
Parameter Description Required
trashed Boolean flag to filter by trashed status No

Get a specific invoice

HTTP Request

GET /api/v1/organisations/{organisationId}/invoice/{invoiceId}

This endpoint retrieves a specific invoice for an organisation.

Response

{
  "invoice": {
    "id": "faca0581-b16d-4a8d-88ce-41aefd23767e",
    "number": "PR22-0001",
    "contact_id": "1c09bbb5-c583-43b7-b065-a4c5072976a1",
    "lead_id": null,
    "project_id": null,
    "job_id": "8299691b-8dfe-4cf3-9af7-a28919ccfe83",
    "invoice_status_id": "bb15af05-129b-4b59-9cda-8a00c2809eea",
    "invoice_type_id": "b92ee34a-1fd4-40e5-b4a9-34ebc916ef1b",
    "date": "2022-07-19T00:00:00.000000Z",
    "due_date": "2022-08-18T00:00:00.000000Z",
    "template_id": "f5ee1fdd-b66e-4f06-b874-cf92a59e59a8",
    "subtotal": "500.0000",
    "tax": "50.0000",
    "total": "550.0000",
    "created_at": "2022-07-19T03:53:52.000000Z",
    "updated_at": "2022-07-19T03:53:52.000000Z"
  }
}

Add a new invoice

Response

{
  "invoice": {
    "id": "90411368-8c3d-4a8a-84dd-b8a7c8966afd",
    "number": "PR22-0002",
    "contact_id": "1c09bbb5-c583-43b7-b065-a4c5072976a1",
    "lead_id": null,
    "project_id": null,
    "job_id": "8299691b-8dfe-4cf3-9af7-a28919ccfe83",
    "contact_name": "Abbott-Hartmann",
    "invoice_status_id": "bb15af05-129b-4b59-9cda-8a00c2809eea",
    "invoice_type_id": "b92ee34a-1fd4-40e5-b4a9-34ebc916ef1b",
    "date": "2022-07-19T00:00:00.000000Z",
    "due_date": "2022-08-18T00:00:00.000000Z",
    "template_id": "f5ee1fdd-b66e-4f06-b874-cf92a59e59a8",
    "subtotal": "500.0000",
    "tax": "20.0000",
    "total": "520.0000",
    "created_at": "2022-07-19T05:15:47.000000Z",
    "updated_at": "2022-07-19T05:15:47.000000Z"
  }
}

This endpoint adds a new invoice to an organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/invoices

Parameter Description Required
contact_id The ID of the contact receiving the invoice Yes
invoice_type_id The ID for the type of the invoice Yes
reference A short descriptive label No

Update an invoice

Response

{
  "invoice": {
    "id": "faca0581-b16d-4a8d-88ce-41aefd23767e",
    "number": "PR22-0231",
    "contact_id": "e14fa78d-7c0f-41b0-91b0-fe1bb850cee6",
    "lead_id": null,
    "project_id": null,
    "job_id": "8299691b-8dfe-4cf3-9af7-a28919ccfe83",
    "contact_name": "Abshire Ltd",
    "invoice_status_id": "bb15af05-129b-4b59-9cda-8a00c2809eea",
    "invoice_type_id": "ed728fd1-dc01-4911-8236-8311ac71e23f",
    "date": "2022-07-19T00:00:00.000000Z",
    "due_date": "2022-08-18T00:00:00.000000Z",
    "template_id": "f5ee1fdd-b66e-4f06-b874-cf92a59e59a8",
    "subtotal": "500.0000",
    "tax": "00.0000",
    "total": "500.0000",
    "created_at": "2022-07-19T03:53:52.000000Z",
    "updated_at": "2022-07-19T05:21:20.000000Z"
  }
}

This endpoint modifies an existing invoice for an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/invoices/{invoiceId}

Parameter Description Required
number The invoice's number No
reference A short descriptive label No
template_id The ID of the template used to create the invoice No
date Date of issue No
due_date Date the invoice is due for payment No

Update an Invoice Status

Response

{
  "invoice": {
    "id": "faca0581-b16d-4a8d-88ce-41aefd23767e",
    "number": "PR22-0231",
    "contact_id": "e14fa78d-7c0f-41b0-91b0-fe1bb850cee6",
    "lead_id": null,
    "project_id": null,
    "job_id": "8299691b-8dfe-4cf3-9af7-a28919ccfe83",
    "contact_name": "Abshire Ltd",
    "invoice_status_id": "f4d38626-4cc2-483e-841c-717f13449e70",
    "invoice_type_id": "ed728fd1-dc01-4911-8236-8311ac71e23f",
    "date": "2022-07-19T00:00:00.000000Z",
    "due_date": "2022-08-18T00:00:00.000000Z",
    "template_id": "f5ee1fdd-b66e-4f06-b874-cf92a59e59a8",
    "subtotal": "500.0000",
    "tax": "20.0000",
    "total": "520.0000",
    "created_at": "2022-07-19T03:53:52.000000Z",
    "updated_at": "2022-07-19T05:24:33.000000Z"
  }
}

This endpoint updates the status of a specific invoice for an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/invoices/{invoiceId}/status

Parameter Description Required
invoice_status_id The ID for the status of the invoice Yes

Update an Invoice Type

Response

{
  "invoice": {
    "id": "faca0581-b16d-4a8d-88ce-41aefd23767e",
    "number": "PR22-0231",
    "contact_id": "e14fa78d-7c0f-41b0-91b0-fe1bb850cee6",
    "lead_id": null,
    "project_id": null,
    "job_id": "8299691b-8dfe-4cf3-9af7-a28919ccfe83",
    "contact_name": "Abshire Ltd",
    "invoice_status_id": "f4d38626-4cc2-483e-841c-717f13449e70",
    "invoice_type_id": "dbbcd1a4-9cf3-4de7-8ff0-b7b915ab6ee7",
    "date": "2022-07-19T00:00:00.000000Z",
    "due_date": "2022-08-18T00:00:00.000000Z",
    "template_id": "f5ee1fdd-b66e-4f06-b874-cf92a59e59a8",
    "subtotal": "500.0000",
    "tax": "0.0000",
    "total": "500.0000",
    "subtotal": "500.0000",
    "created_at": "2022-07-19T03:53:52.000000Z",
    "updated_at": "2022-07-19T05:24:33.000000Z"
  }
}

This endpoint updates the type of a specific invoice for an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/invoices/{invoiceId}/type

Parameter Description Required
invoice_type_id The ID for the type of the invoice Yes

Delete an Invoice

Response

204 | No content

This endpoint deletes a specific invoice.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/invoices/{invoiceId}

Delete multiple invoices

Response

204 | No content

This endpoint deletes multiple invoices.

HTTP Request

POST /api/v1/organisations/{organisationId}/invoices/delete

Parameter Description Required
ids An array of Invoice Ids Yes

Restore Invoices

Response

204 | No content

This endpoint restores one or multiple invoices.

HTTP Request

POST /api/v1/organisations/{organisationId}/invoices/restore

Parameter Description Required
ids An array of invoice Ids Yes

Generate an invoice PDF

Response

{
  "url": "http://jobmanappexample.com/storage/main/d1e008f9-1eb1-4571-980e-b7a70be4bf7d/Invoice.pdf"
}

HTTP Request

GET /api/v1/organisations/{organisationId}/invoice/{invoiceId}/pdf

This endpoint generates a url to a pdf of a specific invoice

Send an Invoice Email

Response

{
  "email": {
    "id": "06a10003-8548-471c-88f6-d4707af951e3",
    "from": "john@finessecabinets.com.au",
    "to": "example@example.com",
    "reply_to": null,
    "cc": ["sales@finessecabinets.com.auy"],
    "bcc": ["infor@finessacabinets.com.au"],
    "subject": "Invoice",
    "body": "Please find attached the requested invoice",
    "attachments": [
      {
        "name": "invoice.pdf",
        "path": "aa75e996-5119-48d9-b65c-f35c219340a5/invoice.pdf",
        "type": "application/pdf",
        "size": 59753,
        "size_formatted": "58 KB",
        "url": "http://identity.jobman.io/storage/main/aa75e996-5119-48d9-b65c-f35c219340a5/invoice.pdf",
        "modified_at": 1660177440,
        "extension": "pdf"
      }
    ],
    "template_id": "67416c5a-bd27-447a-9371-55d0dfb9aab5",
    "created_at": "2022-08-11T00:23:58.000000Z",
    "updated_at": "2022-08-11T00:24:02.000000Z"
  }
}

HTTP Request

POST /api/v1/organisations/{organisationId}/invoices/{invoiceId}/email/send

This endpoint allows you to send an email for an invoice.

Parameter Description Required
template_id The id for the template used Yes
to The email address of the recipient Yes
cc An array of valid email addresses No
bcc An array of valid email addresses No
subject Short descriptive label for the email Yes
body Main content for the email Yes
attachments An array of files No

Invoice Items

List Invoice Items

HTTP Request

GET /api/v1/organisations/{organisationId}/invoices/items

This endpoint allows you to list all invoice Items for an organisation.

Response

{
  "invoice_items": [
    {
      "id": "c92ad57e-0524-49be-a076-c801116a09a8",
      "name": "Stainless Handles",
      "created_at": "2022-10-20T06:32:11.000000Z",
      "updated_at": "2022-10-20T06:32:11.000000Z"
    },
    {
      "id": "05352edd-a7ac-4dfa-9a0a-81d556f90fed",
      "name": "Alumium Handles",
      "created_at": "2022-10-20T06:32:29.000000Z",
      "updated_at": "2022-10-20T06:32:45.000000Z"
    },
    {
      "id": "6d45c9a8-2a33-4863-a81f-d44230cfda0c",
      "name": "Brass Handles",
      "created_at": "2022-10-20T06:33:00.000000Z",
      "updated_at": "2022-10-20T06:33:00.000000Z"
    }
  ]
}

Add an Invoice Item

Response

{
  "invoice_item": {
    "id": "ac82f896-adcc-4e52-9935-b24dd3e5b861",
    "name": "Brass Handles",
    "created_at": "2022-10-20T06:42:13.000000Z",
    "updated_at": "2022-10-20T06:42:13.000000Z"
  }
}

This endpoint adds a new invoice item to an invoice.

HTTP Request

POST /api/v1/organisations/{organisationId}/invoices/{invoiceId}/items

Parameter Description Required
name Item name Yes
description A short descriptive label No
quantity The amount of items No
unit_price The cost for each item No
discount_percent The discount applied to the item No
tax_type_id The Id for this items Tax Type No
account_id The Id for this items Account No

Update an Invoice Item

Response

{
  "invoice_item": {
    "id": "ac82f896-adcc-4e52-9935-b24dd3e5b861",
    "name": "Steel Handles",
    "created_at": "2022-10-20T06:42:13.000000Z",
    "updated_at": "2022-10-20T06:42:13.000000Z"
  }
}

This endpoint modifies an existing item in an invoice.

HTTP Request

POST /api/v1/organisations/{organisationId}/invoices/{invoiceId}/items

Parameter Description Required
name Item name No
description A short descriptive label No
quantity The amount of items No
unit_price The cost for each item No
discount_percent The discount applied to the item No
tax_type_id The Id for this items Tax Type No
account_id The Id for this items Account No

Delete an Invoice Item

Response

204 | No content

This endpoint deletes a specific invoice item.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/invoices/{invoiceId}/items/{invoiceItemId}

Delete multiple Invoice Items

Response

204 | No content

This endpoint deletes multiple invoice items.

HTTP Request

POST /api/v1/organisations/{organisationId}/invoices/{invoiceId}/items/delete

Parameter Description Required
ids An array of Invoice Item ids Yes

Restore Invoice Items

Response

204 | No content

This endpoint restores Invoice Items.

HTTP Request

POST /api/v1/organisations/{organisationId}/invoices/{invoiceId}/items/restore

Parameter Description Required
ids An array of Invoice Item ids Yes

Sort Invoice Items

Response

204 | No content

This endpoint sets the default order for Invoice Items.

HTTP Request

POST /api/v1/organisations/{organisationId}/invoices/{invoiceId}/items/sort

Parameter Description Required
ids Sorted in the preferred order Yes

Invoice Types

List Invoice Types

HTTP Request

GET /api/v1/organisations/{organisationId}/invoices/types

This endpoint allows you to list all invoice types for an organisation.

Response

{
  "invoice_types": [
    {
      "id": "ed728fd1-dc01-4911-8236-8311ac71e23f",
      "name": "Bills",
      "created_at": "2022-07-19T03:38:22.000000Z",
      "updated_at": "2022-07-19T03:38:22.000000Z"
    },
    {
      "id": "8ec836f0-a4bd-42d5-8410-ee5ce9da5809",
      "name": "Credit Note",
      "created_at": "2022-07-19T03:38:22.000000Z",
      "updated_at": "2022-07-19T03:38:22.000000Z"
    },
    {
      "id": "07309823-024e-4a1a-b941-418d5116f92b",
      "name": "Deposit Invoice",
      "created_at": "2022-07-19T03:38:22.000000Z",
      "updated_at": "2022-07-19T03:38:22.000000Z"
    },
    {
      "id": "59ad40d0-b7bc-4fe1-8cce-fd9d71bc93f8",
      "name": "Full Invoice",
      "created_at": "2022-07-19T03:38:22.000000Z",
      "updated_at": "2022-07-19T03:38:22.000000Z"
    },
    {
      "id": "0e77bf07-5d91-4c8a-b452-fcd06a3b4089",
      "name": "Partial Invoice",
      "created_at": "2022-07-19T03:38:22.000000Z",
      "updated_at": "2022-07-19T03:38:22.000000Z"
    },
    {
      "id": "35c541b7-b7a8-414e-bad6-3e22b2787fc9",
      "name": "Variation",
      "created_at": "2022-07-19T03:38:22.000000Z",
      "updated_at": "2022-07-19T03:38:22.000000Z"
    }
  ]
}

Invoice Statuses

List Invoice Statuses

HTTP Request

GET /api/v1/organisations/{organisationId}/invoices/statuses

This endpoint allows you to list all invoice statuses for an organisation.

Response

{
  "invoice_statuses": [
    {
      "id": "bb15af05-129b-4b59-9cda-8a00c2809eea",
      "name": "Draft",
      "is_default": true,
      "is_sent": false,
      "created_at": "2022-07-19T03:38:22.000000Z",
      "updated_at": "2022-07-19T03:38:22.000000Z"
    },
    {
      "id": "f4d38626-4cc2-483e-841c-717f13449e70",
      "name": "Submitted",
      "is_default": false,
      "is_sent": true,
      "created_at": "2022-07-19T03:38:22.000000Z",
      "updated_at": "2022-07-19T03:38:22.000000Z"
    },
    {
      "id": "44fe8e30-72e7-418a-9ea0-92764f140516",
      "name": "Authorised",
      "is_default": false,
      "is_sent": false,
      "created_at": "2022-07-19T03:38:22.000000Z",
      "updated_at": "2022-07-19T03:38:22.000000Z"
    },
    {
      "id": "1568222a-66d6-4b0d-b622-31f3067fed38",
      "name": "Paid",
      "is_default": false,
      "is_sent": false,
      "created_at": "2022-07-19T03:38:22.000000Z",
      "updated_at": "2022-07-19T03:38:22.000000Z"
    }
  ]
}

Items

List all Items

Response

{
  "items": [
    {
      "id": "project",
      "name": "Project"
    },
    {
      "id": "lead",
      "name": "Lead"
    },
    {
      "id": "job",
      "name": "Job"
    }
  ]
}

This endpoint retrieves all the items for a specific organisation.

HTTP Request

GET /api/v1/organisations/{organisationId}/items

For more see Settings > Accounting > Accounts.

Jobs

List all jobs

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs

This endpoint allows you to list all jobs for an organisation.

Response

{
  "jobs": {
    "data": [
      {
        "id": "6f116aa1-e693-4ea6-a4ab-0988e8e44f24",
        "number": "00002",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "types": [],
        "job_status_id": "9a5017f8-b3bf-47f1-b166-0a7ac8206355",
        "contact_id": "779dc961-1ff8-4a29-aa9a-f27f5112572b",
        "workflow_id": "e91f6aac-912b-4adc-a781-3f94ad9f6a57",
        "address": null,
        "address_line1": null,
        "address_line2": null,
        "address_city": null,
        "address_region": null,
        "address_postal_code": null,
        "address_country_id": null,
        "notes": null,
        "created_at": "2022-10-04T07:48:59.000000Z",
        "updated_at": "2022-10-04T07:49:02.000000Z",
        "trashed_at": null
      },
      {
        "id": "f09822ab-e287-494a-9b05-fee15532d9ad",
        "number": "00001",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "types": [
          {
            "id": "93fdcebc-42a6-41a3-bdea-75d8d5d03894",
            "name": "Flat Pack",
            "created_at": "2022-10-04T07:09:24.000000Z",
            "updated_at": "2022-10-04T07:09:24.000000Z"
          }
        ],
        "job_status_id": "9a5017f8-b3bf-47f1-b166-0a7ac8206355",
        "contact_id": "ff37a3d5-938e-403f-9081-9b9782564393",
        "workflow_id": "e91f6aac-912b-4adc-a781-3f94ad9f6a57",
        "address": null,
        "address_line1": null,
        "address_line2": null,
        "address_city": null,
        "address_region": null,
        "address_postal_code": null,
        "address_country_id": null,
        "notes": null,
        "created_at": "2022-10-04T07:34:36.000000Z",
        "updated_at": "2022-10-04T07:34:39.000000Z",
        "trashed_at": null
      }
    ]
  }
}
Parameter Description Required
trashed Boolean flag to filter by trashed status No

Get a specific job

HTTP Request

GET /api/v1/organisations/{organisationId}/job/{jobId}

This endpoint retrieves a specific job for an organisation.

Response

{
  "id": "f09822ab-e287-494a-9b05-fee15532d9ad",
  "number": "00001",
  "description": null,
  "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
  "types": [
    {
      "id": "93fdcebc-42a6-41a3-bdea-75d8d5d03894",
      "name": "Flat Pack",
      "created_at": "2022-10-04T07:09:24.000000Z",
      "updated_at": "2022-10-04T07:09:24.000000Z"
    }
  ],
  "job_status_id": "9a5017f8-b3bf-47f1-b166-0a7ac8206355",
  "contact_id": "ff37a3d5-938e-403f-9081-9b9782564393",
  "workflow_id": "e91f6aac-912b-4adc-a781-3f94ad9f6a57",
  "address": null,
  "address_line1": null,
  "address_line2": null,
  "address_city": null,
  "address_region": null,
  "address_postal_code": null,
  "address_country_id": null,
  "notes": null,
  "created_at": "2022-10-04T07:34:36.000000Z",
  "updated_at": "2022-10-04T07:34:39.000000Z",
  "trashed_at": null
}

Add a new job

Response

{
  "id": "f09822ab-e287-494a-9b05-fee15532d9ad",
  "number": "00001",
  "description": null,
  "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
  "types": [
    {
      "id": "93fdcebc-42a6-41a3-bdea-75d8d5d03894",
      "name": "Flat Pack",
      "created_at": "2022-10-04T07:09:24.000000Z",
      "updated_at": "2022-10-04T07:09:24.000000Z"
    }
  ],
  "job_status_id": "9a5017f8-b3bf-47f1-b166-0a7ac8206355",
  "contact_id": "ff37a3d5-938e-403f-9081-9b9782564393",
  "workflow_id": "e91f6aac-912b-4adc-a781-3f94ad9f6a57",
  "address": null,
  "address_line1": null,
  "address_line2": null,
  "address_city": null,
  "address_region": null,
  "address_postal_code": null,
  "address_country_id": null,
  "notes": null,
  "created_at": "2022-10-04T07:34:36.000000Z",
  "updated_at": "2022-10-04T07:34:39.000000Z",
  "trashed_at": null
}

This endpoint adds a new job to an organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs

Parameter Description Required
contact_id The contact's id this job is assigned to Yes
types An array with job type Ids Yes
description A short descriptive label No
workflow_id The Id for the this jobs workflow No
address_line1 The first line of the locations address No
address_line2 The second line of the locations address No
address_city The locations city address No
address_region The locations address region No
address_postal_code The locations post code No
address_country_id The country Id for the locations address No
address_map_latitude The location address latitude No
address_map_longitude The location address longtitude No
address_map_zoom The locations map zoom setting No
notes Additional information about the job No

Update a job

Response

{
  "id": "ddf47d8f-568f-4f4f-b0cb-bb64305a49dd",
  "number": "00006",
  "description": null,
  "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
  "types": [
    {
      "id": "a9e57027-f6bf-40cd-aa94-d696624cda07",
      "name": "Painted",
      "created_at": "2022-10-04T01:57:07.000000Z",
      "updated_at": "2022-10-04T01:57:07.000000Z"
    }
  ],
  "job_status_id": "10ccfaee-8523-4e10-a4c2-d1d8014589fb",
  "contact_id": "edb5e788-9143-4200-987d-3eca870aaaaa",
  "workflow_id": "7f30bd76-8764-42ca-afc7-d4d636830a71",
  "address": null,
  "address_line1": null,
  "address_line2": null,
  "address_city": null,
  "address_region": null,
  "address_postal_code": null,
  "address_country_id": null,
  "created_at": "2022-10-04T03:28:02.000000Z",
  "updated_at": "2022-10-04T04:25:24.000000Z",
  "trashed_at": null
}

This endpoint modifies an existing job for an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}

Parameter Description Required
contact_id The contact's id this job is assigned to No
number The job's number No
types An array with job type Ids No
description A short descriptive label No
workflow_id The Id for this jobs workflow No
address_line1 The first line of the locations address No
address_line2 The second line of the locations address No
address_city The locations city address No
address_region The locations address region No
address_postal_code The locations post code No
address_country_id The country Id for the locations address No
address_map_latitude The location address latitude No
address_map_longitude The location address longtitude No
address_map_zoom The locations map zoom setting No
notes Additional information about the job No

Update a Job Status

Response

{
  "job": {
    "id": "2e9180e6-bba1-466b-8618-8b90fdf76e4a",
    "number": "00005",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "types": [
      {
        "id": "18b09b0b-ed12-4ec0-b085-730025bb783e",
        "name": "Remote Installation"
      }
    ],
    "job_status_id": "67a60163-9f58-40e3-909d-76c662c62862",
    "contact_id": "bba08e46-2997-4c39-aedf-87c0049b179a",
    "created_at": "2022-06-15T06:04:06.000000Z",
    "updated_at": "2022-06-15T06:04:06.000000Z",
    "trashed_at": null
  }
}

This endpoint updates the status of a specific job for an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/status

Parameter Description Required
job_status_id The ID for the status of the job Yes

Delete a job

Response

204 | No content

This endpoint deletes a specific job.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/jobs/{jobId}

Delete multiple jobs

Response

204 | No content

This endpoint deletes multiple jobs.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/delete

Parameter Description Required
ids An array of job Ids Yes

Restore jobs

Response

204 | No content

This endpoint restores one or multiple jobs.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/restore

Parameter Description Required
ids An array of job Ids Yes

List all Job Workflows

Response

{
  "workflows": {
    "data": [
      {
        "id": "750eb0fe-5f53-4bf0-a8a2-eb7fe69ff966",
        "name": "Default Job Workflow",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item": "job",
        "is_default": false,
        "created_at": "2022-02-09T02:57:28.000000Z",
        "updated_at": "2022-02-09T02:57:28.000000Z"
      }
    ]
  }
}

This endpoint retrieves all active Job Workflows for an organisation.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/workflows

Job Alerts

List all job alerts

Response

{
  "job_alerts": {
    "data": [
      {
        "id": "32c00309-5469-4d2d-adad-670ca960e929",
        "number": "0001",
        "job_id": "4def9adf-894b-425f-b9e3-4365cdc2d387",
        "work_order_id": null,
        "details": null,
        "job_alert_type_id": "95ddb9a0-2469-49fd-949c-edcf2e86ec76",
        "job_alert_status_id": "8e4b7d53-d007-4ea5-b524-573015298d22",
        "reported_at": "2023-11-14 01:40:00",
        "reported_by": "0df7cc4f-0bba-4b52-9e12-7d674aea9e09",
        "staff": [
          {
            "id": "7f4b3cd0-bed1-4802-8089-c312fe3a42f5",
            "avatar": "https://ui-avatars.com/api/..."
          }
        ],
        "created_at": "2023-11-14T01:41:05.000000Z",
        "updated_at": "2023-11-14T01:41:05.000000Z"
      }
    ]
  }
}

This endpoint allows you to list all job alerts for an organisation.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/alerts

Parameter Description Required
trashed Boolean flag to filter by trashed status No

Get a specific job alert

Response

{
  "job_alert": {
    "id": "32c00309-5469-4d2d-adad-670ca960e929",
    "number": "0001",
    "job_id": "4def9adf-894b-425f-b9e3-4365cdc2d387",
    "work_order_id": null,
    "details": null,
    "job_alert_type_id": "95ddb9a0-2469-49fd-949c-edcf2e86ec76",
    "job_alert_status_id": "8e4b7d53-d007-4ea5-b524-573015298d22",
    "reported_at": "2023-11-14 01:40:00",
    "reported_by": "0df7cc4f-0bba-4b52-9e12-7d674aea9e09",
    "staff": [
      {
        "id": "7f4b3cd0-bed1-4802-8089-c312fe3a42f5",
        "avatar": "https://ui-avatars.com/api/..."
      }
    ],
    "created_at": "2023-11-14T01:41:05.000000Z",
    "updated_at": "2023-11-14T01:41:05.000000Z"
  }
}

This endpoint retrieves a specific job alert for an organisation.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/alerts/{jobAlertId}

Add a new job alert

Response

{
  "job_alert": {
    "id": "05263644-b70d-40bb-bcdf-e5543a4cad06",
    "number": "0002",
    "job_id": null,
    "work_order_id": null,
    "details": "Testing weird characters\nIsn't this a wonderful apostrophe?",
    "job_alert_type_id": "95ddb9a0-2469-49fd-949c-edcf2e86ec76",
    "job_alert_status_id": "8e4b7d53-d007-4ea5-b524-573015298d22",
    "reported_at": "2021-05-26 02:01:00",
    "reported_by": "0df7cc4f-0bba-4b52-9e12-7d674aea9e09",
    "staff": [
      {
        "id": "f1fac9d1-0860-4d96-a9ec-cfe64b0365d0",
        "avatar": "https://ui-avatars.com/api/..."
      }
    ],
    "created_at": "2023-11-14T02:17:56.000000Z",
    "updated_at": "2023-11-14T02:17:56.000000Z"
  }
}

This endpoint adds a new job alert to an organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/alerts

Parameter Description Required
job_alert_type_id The id of the alert type See Alert Types Yes
job_alert_status_id The id of the alert status See Alert Statuses Yes
job_id The id of the job that the alert pertains to No
details A description of the issue No
reported_by The id of the staff member who reported the alert No
reported_at The date of the report No
staff_ids The id for the staff member who are assigned to the job alert No
files The files to be uploaded. This should be included in the form data of the request. No

Update a job alert

Response

{
  "job_alert": {
    "id": "32c00309-5469-4d2d-adad-670ca960e929",
    "number": "0001",
    "job_id": "4def9adf-894b-425f-b9e3-4365cdc2d387",
    "work_order_id": null,
    "details": null,
    "job_alert_type_id": "95ddb9a0-2469-49fd-949c-edcf2e86ec76",
    "job_alert_status_id": "8e4b7d53-d007-4ea5-b524-573015298d22",
    "reported_at": "2023-11-14 01:40:00",
    "reported_by": "0df7cc4f-0bba-4b52-9e12-7d674aea9e09",
    "staff": [
      {
        "id": "7f4b3cd0-bed1-4802-8089-c312fe3a42f5",
        "avatar": "https://ui-avatars.com/api/..."
      }
    ],
    "created_at": "2023-11-14T01:41:05.000000Z",
    "updated_at": "2023-11-14T01:41:05.000000Z"
  }
}

This endpoint updates a specific job alert to an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/alerts/{jobAlertId}

Parameter Description Required
job_alert_type_id The id of the alert type See Alert Types No
job_alert_status_id The id of the alert status See Alert Statuses No
job_id The id of the job that the alert pertains to No
details A description of the issue No
reported_by The id of the staff member who reported the alert No
reported_at The date of the report No
staff_ids An array of ids for the staff members who are assigned No

Delete a job alert

Response

204 | No content

This endpoint delete a specific job alert to an organisation.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/jobs/alerts/{jobAlertId}

Restore job alerts

Response

204 | No content

HTTP Request

This endpoint restores one or multiple job alerts.

POST /api/v1/organisations/{organisationId}/jobs/alerts/restore

Parameter Description Required
ids An array of job alert ids Yes

Job Alert Statuses

List all job alert statuses

Response

{
  "job_alert_statuses": {
    "data": [
      {
        "id": "8e4b7d53-d007-4ea5-b524-573015298d22",
        "name": "Reported",
        "is_default": true,
        "created_at": "2023-11-08T06:17:50.000000Z",
        "updated_at": "2023-11-08T06:17:50.000000Z"
      },
      {
        "id": "068bc1b9-96d4-4249-9e39-098dd8edd0e0",
        "name": "In Progress",
        "is_default": false,
        "created_at": "2023-11-08T06:17:50.000000Z",
        "updated_at": "2023-11-08T06:17:50.000000Z"
      },
      {
        "id": "ef9ada8e-79a0-4d6e-84cb-e52aca400720",
        "name": "Actioned",
        "is_default": false,
        "created_at": "2023-11-08T06:17:50.000000Z",
        "updated_at": "2023-11-08T06:17:50.000000Z"
      }
    ]
  }
}

This endpoint allows you to list all job alert statuses for an organisation.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/alerts/statuses

Job Alert Types

List all job alert types

Response

{
  "job_alert_types": {
    "data": [
      {
        "id": "95ddb9a0-2469-49fd-949c-edcf2e86ec76",
        "name": "Damaged Part",
        "default_details": null,
        "created_at": "2023-11-08T06:17:50.000000Z",
        "updated_at": "2023-11-08T06:17:50.000000Z"
      },
      {
        "id": "228f4d7e-0d96-4db9-ad9e-cc8f159d529b",
        "name": "Damaged Stock",
        "default_details": null,
        "created_at": "2023-11-08T06:17:50.000000Z",
        "updated_at": "2023-11-08T06:17:50.000000Z"
      },
      {
        "id": "74e35762-91a0-453e-8fe1-ac552b199e17",
        "name": "Incorrectly Drafted",
        "default_details": null,
        "created_at": "2023-11-08T06:17:50.000000Z",
        "updated_at": "2023-11-08T06:17:50.000000Z"
      }
    ]
  }
}

This endpoint allows you to list all job alert types for an organisation.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/alerts/types

Job Items

List Job Items

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/{jobId}/items

Parameter Description Required
trashed Boolean flag to filter by trashed status No

This endpoint allows you to list the contents of a folder or return a file resource at a given path.

Response

{
  "job_items": {
    "data": [
      {
        "id": "d0c9b539-494e-4fa6-9d05-341d16c1fdfd",
        "name": "Kitchen",
        "item_type_id": null,
        "quantity": 1,
        "item_specifications": [],
        "lead_id": "d9882115-08d2-4be8-9525-ab146142ae18",
        "created_at": "2023-09-07T07:19:16.000000Z",
        "updated_at": "2023-09-11T00:22:52.000000Z"
      },
      {
        "id": "08d63299-5e4f-4b8e-bcef-0661a65af762",
        "name": "Bathroom",
        "item_type_id": "03723154-22c2-4b3e-b854-61a07662beff",
        "quantity": 2,
        "item_specifications": [],
        "lead_id": null,
        "created_at": "2023-09-11T00:11:48.000000Z",
        "updated_at": "2023-09-11T00:23:23.000000Z"
      }
    ]
  }
}

Get a Job Item

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/{jobId}/items/{jobItemId}

This endpoint retrieves a specific job item.

Response

{
  "job_item": {
    "id": "08d63299-5e4f-4b8e-bcef-0661a65af762",
    "name": "Bathroom",
    "item_type_id": "03723154-22c2-4b3e-b854-61a07662beff",
    "quantity": 2,
    "item_specifications": [
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "c3d3bf1d-858c-4a5b-9461-aeda44646df3",
        "repeating_index": 0,
        "value": "value"
      },
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "0f18a00f-03c9-4d4f-8940-871c3a216d26",
        "repeating_index": 0,
        "value": "1"
      }
    ],
    "lead_id": "3bbdffd7-bd93-450f-a478-56f9bfdedfd2",
    "job_id": "40eee117-7a8a-436b-babb-3d83df7b7198",
    "created_at": "2023-09-11T00:11:48.000000Z",
    "updated_at": "2023-09-11T00:23:23.000000Z"
  }
}

Add a Job Item

Response

{
  "job_item": {
    "id": "08d63299-5e4f-4b8e-bcef-0661a65af762",
    "name": "Bathroom",
    "item_type_id": "03723154-22c2-4b3e-b854-61a07662beff",
    "quantity": 2,
    "item_specifications": [
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "c3d3bf1d-858c-4a5b-9461-aeda44646df3",
        "repeating_index": 0,
        "value": "value"
      },
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "0f18a00f-03c9-4d4f-8940-871c3a216d26",
        "repeating_index": 0,
        "value": "1"
      }
    ],
    "lead_id": "3bbdffd7-bd93-450f-a478-56f9bfdedfd2",
    "job_id": "40eee117-7a8a-436b-babb-3d83df7b7198",
    "created_at": "2023-09-11T00:11:48.000000Z",
    "updated_at": "2023-09-11T00:23:23.000000Z"
  }
}

This endpoint adds a new job item for an organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/items

Parameter Description Required
name Job item's name Yes
item_type_id UUID for the item type No
quantity The amount of items No
specifications Array of specification questions/values No

Specifications Array Parameters

Parameter Description Required
item_specification_group_id UUID for the Item Specification Group Yes
item_specification_question_id UUID for the Item Specification Question Yes
repeating_index The index of the repeated Item Specification No
value The answer/value for the Specification Question No

Update a Job Item

Response

{
  "job_item": {
    "id": "08d63299-5e4f-4b8e-bcef-0661a65af762",
    "name": "Bathroom",
    "item_type_id": "03723154-22c2-4b3e-b854-61a07662beff",
    "quantity": 2,
    "item_specifications": [
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "c3d3bf1d-858c-4a5b-9461-aeda44646df3",
        "repeating_index": 0,
        "value": "value"
      },
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "0f18a00f-03c9-4d4f-8940-871c3a216d26",
        "repeating_index": 0,
        "value": "1"
      }
    ],
    "lead_id": "3bbdffd7-bd93-450f-a478-56f9bfdedfd2",
    "job_id": "40eee117-7a8a-436b-babb-3d83df7b7198",
    "created_at": "2023-09-11T00:11:48.000000Z",
    "updated_at": "2023-09-11T00:23:23.000000Z"
  }
}

This endpoint modifies an existing job item.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/items/{jobItemId}

Parameter Description Required
name Job item's name No
item_type_id UUID for the item type No
quantity The amount of items No
specifications Array of specification questions/values No

Specifications Array Parameters

Parameter Description Required
item_specification_group_id UUID for the Item Specification Group Yes
item_specification_question_id UUID for the Item Specification Question Yes
repeating_index The index of the repeated Item Specification No
value The answer/value for the Specification Question No

Delete a Job Item

Response

204 | No content

This endpoint deletes a specific job item.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/jobs/{jobId}/items/{jobItemId}

Delete multiple Job Items

Response

204 | No content

This endpoint deletes multiple job items.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/items/delete

Parameter Description Required
ids An array of job item Ids Yes

Restore multiple Job Items

Response

204 | No content

This endpoint restores multiple job items.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/items/restore

Parameter Description Required
ids An array of job item Ids Yes

Sort Job Items

Response

204 | No content

This endpoint sets the default order for job item

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/items/sort

Parameter Description Required
ids Sorted in the preferred order Yes

Copy a job item

Response

{
  "job_item": {
    "id": "08d63299-5e4f-4b8e-bcef-0661a65af762",
    "name": "Bathroom",
    "item_type_id": "03723154-22c2-4b3e-b854-61a07662beff",
    "quantity": 2,
    "item_specifications": [
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "c3d3bf1d-858c-4a5b-9461-aeda44646df3",
        "repeating_index": 0,
        "value": "value"
      },
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "0f18a00f-03c9-4d4f-8940-871c3a216d26",
        "repeating_index": 0,
        "value": "1"
      }
    ],
    "lead_id": "3bbdffd7-bd93-450f-a478-56f9bfdedfd2",
    "job_id": "40eee117-7a8a-436b-babb-3d83df7b7198",
    "created_at": "2023-09-11T00:11:48.000000Z",
    "updated_at": "2023-09-11T00:23:23.000000Z"
  }
}

This endpoint duplicates a specific job item within a job.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/items/{itemId}/copy

Job Files

List Job files

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/{jobId}/files/{path}

This endpoint allows you to list the contents of a folder or return a file resource at a given path.

Response

{
    "files": [
        {
            "name": "Images",
            "path": "Images",
            "type": "dir",
            "size": 0,
            "url": "",
            "last_modified": ""
        },
        {
            "name": "Videos",
            "path": "Videos",
            "type": "dir",
            "size": 0,
            "url": "",
            "last_modified": ""
        },
        {
            "name": "Photo.png",
            "path": "Photo.png",
            "type": "file",
            "size": 164847,
            "url": "https://jobmanapp.com/storage/files/Organisation%2FImages%2FCabinets%2FImage.png?organisation=33b928af-f0b5-42f9-ae2f-48dba38929ca&signature=e5a4bfe6cdfe78cf04afe016f082270847709144adb757ea439a686f5c24bb76",
            "last_modified": 1643961457,
            "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca"
        }
    ]
}

Store Job files

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/files/{path}

This endpoint allows you to store uploaded files.

Parameter Description Required
files An array of upload resources, see Uploads Yes

Response

{}

Create a Job folder

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/files/{path}

This endpoint allows you to create a folder.

Parameter Description Required
folder_name The folder's name Yes

Response

{}

Delete a Job file or folder

HTTP Request

DELETE /api/v1/organisations/{organisationId}/jobs/{jobId}/files/{path}

This endpoint allows you to delete a job file or folder.

Response

{}

Rename a Job file

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/files/{path}

This endpoint allows you to rename the file specified by the path using the file_name parameter.

Parameter Description Required
file_name The new file name Yes

Response

{}

Rename a Job folder

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/files/{path}

This endpoint allows you to rename the folder specified by the path using the folder_name parameter.

Parameter Description Required
folder_name The new folder name Yes

Response

{}

Move a Job file or folder

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/files/move

This endpoint allows you to move a file or folder to a different location within job's directory.

Parameter Description Required
source The source path in url-encoded format Yes
destination The destination path in url-encoded format Yes, empty path implies the job's root folder

Response

{}

Job Steps

List all Job Steps

Response

{
  "steps": [
    {
      "id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
      "name": "Pre Sale",
      "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
      "tasks": [
        {
          "id": "10ed4b85-748e-4e42-b771-5b04bb4d8561",
          "name": "Create CNC Code",
          "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
          "description": null,
          "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
          "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
          "staff_qty": 1,
          "operation_id": "87234146-24b6-4533-9ecc-393649ebf3f1",
          "estimated_time": 324,
          "actual_time": 259500,
          "target_date_calculation": 0,
          "estimated_day": null,
          "status": "not_started",
          "progress": 0,
          "start_date": null,
          "target_date": null,
          "target_date_locked": false,
          "labour_centres": [
            {
              "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
              "name": "Accounts",
              "selected": false
            },
            {
              "id": "ea362068-d5ca-4cd7-9341-80f6dd872e17",
              "name": "Drafting",
              "selected": false
            }
          ],
          "members": [],
          "requires_selection": "all",
          "requires_selection_ids": [],
          "types_selection": "all",
          "types_selection_ids": [],
          "created_at": "2022-10-18T04:36:34.000000Z",
          "updated_at": "2022-10-18T04:36:34.000000Z"
        },
        {
          "id": "f1d88b56-3367-4af1-8f6e-3db232bb6aa0",
          "name": "Machining",
          "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
          "description": null,
          "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
          "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
          "staff_qty": 1,
          "operation_id": "844f8e59-cdbc-4b54-9e3d-0c8b804ed3b9",
          "estimated_time": 7200,
          "actual_time": 0,
          "target_date_calculation": 4,
          "estimated_day": null,
          "status": "not_started",
          "progress": 0,
          "start_date": null,
          "target_date": null,
          "target_date_locked": false,
          "labour_centres": [],
          "members": [],
          "requires_selection": "all",
          "requires_selection_ids": [],
          "types_selection": "all",
          "types_selection_ids": [],
          "created_at": "2022-10-18T04:36:34.000000Z",
          "updated_at": "2022-10-18T04:36:34.000000Z"
        }
      ],
      "created_at": "2022-10-18T04:36:34.000000Z",
      "updated_at": "2022-10-18T04:36:34.000000Z"
    },
    {
      "id": "16a4e88b-bd88-4332-b984-2ec2472d090d",
      "name": "Receive Painted Parts",
      "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
      "tasks": [
        {
          "id": "47f36ea0-e13f-4e70-ab6a-6ace6c813b70",
          "name": "Job Specs Complete",
          "step_id": "16a4e88b-bd88-4332-b984-2ec2472d090d",
          "description": null,
          "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
          "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
          "staff_qty": 1,
          "operation_id": "9f0184f7-fa1c-446c-9181-8413592a5f0a",
          "estimated_time": 3600,
          "actual_time": 0,
          "target_date_calculation": 0,
          "estimated_day": null,
          "status": "not_started",
          "progress": 0,
          "start_date": null,
          "target_date": null,
          "target_date_locked": false,
          "labour_centres": [
            {
              "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
              "name": "Accounts",
              "selected": false
            },
            {
              "id": "ea362068-d5ca-4cd7-9341-80f6dd872e17",
              "name": "Drafting",
              "selected": false
            }
          ],
          "members": [],
          "requires_selection": "all",
          "requires_selection_ids": [],
          "types_selection": "all",
          "types_selection_ids": [],
          "created_at": "2022-10-18T04:36:34.000000Z",
          "updated_at": "2022-10-18T04:36:34.000000Z"
        }
      ],
      "created_at": "2022-10-18T04:36:34.000000Z",
      "updated_at": "2022-10-18T04:36:34.000000Z"
    }
  ]
}

This endpoint retrieves all the steps for a job.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/{jobId)/steps

Get a Job Step

Response

{
  "step": {
    "id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "name": "Receive Painted Parts",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "tasks": [
      {
        "id": "10ed4b85-748e-4e42-b771-5b04bb4d8561",
        "name": "Job Setup",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": 1,
        "operation_id": "87234146-24b6-4533-9ecc-393649ebf3f1",
        "estimated_time": 324,
        "actual_time": 259500,
        "target_date_calculation": 0,
        "estimated_day": null,
        "status": "not_started",
        "progress": 0,
        "start_date": null,
        "target_date": null,
        "target_date_locked": false,
        "labour_centres": [
          {
            "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
            "name": "Accounts",
            "selected": false
          },
          {
            "id": "ea362068-d5ca-4cd7-9341-80f6dd872e17",
            "name": "Drafting",
            "selected": false
          }
        ],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-18T04:36:34.000000Z",
        "updated_at": "2022-10-18T04:36:34.000000Z"
      },
      {
        "id": "f1d88b56-3367-4af1-8f6e-3db232bb6aa0",
        "name": "Showroom Consultation Complete",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": 1,
        "operation_id": "844f8e59-cdbc-4b54-9e3d-0c8b804ed3b9",
        "estimated_time": 7200,
        "actual_time": 0,
        "target_date_calculation": 4,
        "estimated_day": null,
        "status": "not_started",
        "progress": 0,
        "start_date": null,
        "target_date": null,
        "target_date_locked": false,
        "labour_centres": [],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-18T04:36:34.000000Z",
        "updated_at": "2022-10-18T04:36:34.000000Z"
      },
      {
        "id": "1eed505f-8d93-481a-9856-f0ecb4d2484e",
        "name": "Booked Site Visit",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": 1,
        "operation_id": "25a2054b-1051-4023-9c08-3c35868e1ba9",
        "estimated_time": 900,
        "actual_time": 0,
        "target_date_calculation": 1,
        "estimated_day": null,
        "status": "not_started",
        "progress": 0,
        "start_date": null,
        "target_date": null,
        "target_date_locked": false,
        "labour_centres": [],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-18T04:36:34.000000Z",
        "updated_at": "2022-10-18T04:36:34.000000Z"
      }
    ],
    "created_at": "2022-10-18T04:36:34.000000Z",
    "updated_at": "2022-10-18T04:36:34.000000Z"
  }
}

This endpoint retrieves a step from a job.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/{jobId)/steps/{stepId}

Add a Job Step

Response

{
  "step": {
    "id": "ec2be2e5-1330-4180-b2b8-4be0bd68b676",
    "name": "Painting",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "tasks": [],
    "created_at": "2022-10-20T03:58:25.000000Z",
    "updated_at": "2022-10-20T03:58:25.000000Z"
  }
}

This endpoint adds a step to job.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/steps

Parameter Description Required
name The name of the step Yes
status_id The id of step status Yes

Delete a Job Step

Response

204 | No content

This endpoint deletes a step from a job.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/jobs/{jobId}/steps/{stepId}

Update a Job Step

Response

{
  "step": {
    "id": "39e11519-006b-4cdd-a055-feb4e51ac243",
    "name": "Receive Painted Parts",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "tasks": [],
    "created_at": "2022-10-20T01:57:51.000000Z",
    "updated_at": "2022-10-20T01:57:51.000000Z"
  }
}

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/steps/{stepId}

This endpoint allows you to update the details of a step in a job.

Parameter Description Required
name The name of the step Yes
status_id The id of step status Yes

Sort Job Steps

Response

204 | No content

This endpoint sets the default order for job steps.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/steps/sort

Parameter Description Required
ids Sorted in the preferred order Yes

Job Tasks

List all job Tasks

Response

{
  "tasks": {
    "data": [
      {
        "id": "10ed4b85-748e-4e42-b771-5b04bb4d8561",
        "name": "Job Setup",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": 1,
        "operation_id": "87234146-24b6-4533-9ecc-393649ebf3f1",
        "estimated_time": 324,
        "actual_time": 259500,
        "target_date_calculation": 0,
        "estimated_day": null,
        "status": "not_started",
        "progress": 0,
        "start_date": null,
        "target_date": null,
        "target_date_locked": false,
        "labour_centres": [
          {
            "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
            "name": "Accounts",
            "selected": false
          }
        ],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-18T04:36:34.000000Z",
        "updated_at": "2022-10-18T04:36:34.000000Z"
      },
      {
        "id": "f3dad1c8-5a81-47d6-829e-528dc690dc12",
        "name": "Final Drafting",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": 1,
        "operation_id": "31e3dab7-a65d-4458-a3ed-c205dcebd1d2",
        "estimated_time": 900,
        "actual_time": 0,
        "target_date_calculation": 0,
        "estimated_day": null,
        "status": "not_started",
        "progress": 0,
        "start_date": null,
        "target_date": null,
        "target_date_locked": false,
        "labour_centres": [
          {
            "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
            "name": "Accounts",
            "selected": false
          },
          {
            "id": "ea362068-d5ca-4cd7-9341-80f6dd872e17",
            "name": "Drafting",
            "selected": false
          }
        ],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-18T04:36:34.000000Z",
        "updated_at": "2022-10-18T04:36:34.000000Z"
      }
    ]
  }
}

This endpoint retrieves all the tasks for a step.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/{jobId)/tasks

Get a job Task

Response

{
  "task": {
    "id": "10ed4b85-748e-4e42-b771-5b04bb4d8561",
    "name": "Job Setup",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 1,
    "operation_id": "87234146-24b6-4533-9ecc-393649ebf3f1",
    "estimated_time": 324,
    "actual_time": 259500,
    "target_date_calculation": 0,
    "estimated_day": null,
    "status": "not_started",
    "progress": 0,
    "start_date": null,
    "target_date": null,
    "target_date_locked": false,
    "labour_centres": [
      {
        "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
        "name": "Accounts",
        "selected": false
      }
    ],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-18T04:36:34.000000Z",
    "updated_at": "2022-10-18T04:36:34.000000Z"
  }
}

This endpoint retrieves a task from a step.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/{jobId)/tasks/{taskId}

Add a Job Task

Response

{
    "task": {
        "id": "0f18a3c2-8baf-47a0-8a7a-6ad0c6853423",
        "name": "Final Inspection",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": "2",
        "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
        "estimated_time": "3600",
        "actual_time": 0,
        "target_date_calculation": "5",
        "estimated_day": null,
        "status": "not_started",
        "progress": null,
        "start_date": null,
        "target_date": null,
        "target_date_locked": null,
        "labour_centres": [
            {
                "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
                "name": "Accounts",
                "selected": false
            },
            {
                "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
                "name": "Installation",
                "selected": false
            },
            {
                "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
                "name": "Manufacture",
                "selected": false
            }
        ],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-20T02:10:54.000000Z",
        "updated_at": "2022-10-20T02:10:54.000000Z"
    }
}
}

This endpoint adds a task to a step.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks

Parameter Description Required
name The name of the task Yes
step_id The id of step for the task Yes
description The description of the task No
staff_qty The estimated number of staff members involved in the task Yes
operation_id The id of operation for the task Yes
estimated_time The total time for the task in seconds Yes
target_date_calculation The number of days to be scheduled for the task No
requires_selection 'all' or 'selected' tasks No
requires_selection_ids An array of task IDs from the workflow to be completed prior to the task if selection = 'selected'
types_selection 'all' or 'selected' job types No
types_selection_ids An array of job type IDs if selection = 'selected'

Update a Job Task

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Drafting Approval",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "not_started",
    "progress": 0,
    "start_date": null,
    "target_date": null,
    "target_date_locked": false,
    "labour_centres": [
      {
        "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
        "name": "Accounts",
        "selected": false
      },
      {
        "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
        "name": "Installation",
        "selected": false
      },
      {
        "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
        "name": "Manufacture",
        "selected": false
      }
    ],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:41:32.000000Z"
  }
}

This endpoint updates a task in a step.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}

Parameter Description Required
name The name of the task No
step_id The id of step for the task No
description The description of the task No
staff_qty The estimated number of staff members involved in the task No
operation_id The id of operation for the task No
estimated_time The total time for the task in seconds No
target_date_calculation The number of days to be scheduled for the task No
progress An integer between 0 and 100 No
requires_selection 'all' or 'selected' tasks No
requires_selection_ids An array of task IDs from the workflow to be completed prior to the task if selection = 'selected'
types_selection 'all' or 'selected' job types No
types_selection_ids An array of job type IDs if selection = 'selected'

Update a Job Task Progress

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Drafting Approval",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "in_progress",
    "progress": "50",
    "start_date": null,
    "target_date": null,
    "target_date_locked": false,
    "labour_centres": [
      {
        "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
        "name": "Accounts",
        "selected": false
      },
      {
        "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
        "name": "Installation",
        "selected": false
      },
      {
        "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
        "name": "Manufacture",
        "selected": false
      }
    ],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:53:26.000000Z"
  }
}

This endpoint set the task's progress.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/progress

Parameter Description Required
progress An integer between 0 and 100 Yes

Update a Job Task Start Date

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Drafting Approval",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "in_progress",
    "progress": 50,
    "start_date": "2024-11-20T16:00:00.000000Z",
    "target_date": "2024-11-20T16:00:00.000000Z",
    "target_date_locked": false,
    "labour_centres": [
      {
        "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
        "name": "Accounts",
        "selected": false
      },
      {
        "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
        "name": "Installation",
        "selected": false
      },
      {
        "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
        "name": "Manufacture",
        "selected": false
      }
    ],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:54:57.000000Z"
  }
}

This endpoint set the task's start date.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/start-date

Parameter Description Required
start_date The start date formatted as "YYYY-MM-DD" Yes
recalculate_target_dates Recalculate target date. Accepted values are 'all', 'after', 'before', 'none' Yes

Update a Job Task Target Date

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Drafting Approval",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "in_progress",
    "progress": 50,
    "start_date": "2024-11-20T16:00:00.000000Z",
    "target_date": "2024-11-20T16:00:00.000000Z",
    "target_date_locked": false,
    "labour_centres": [
      {
        "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
        "name": "Accounts",
        "selected": false
      },
      {
        "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
        "name": "Installation",
        "selected": false
      },
      {
        "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
        "name": "Manufacture",
        "selected": false
      }
    ],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:54:57.000000Z"
  }
}

This endpoint set the task's target date.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/target-date

Parameter Description Required
target_date The target date formatted as "YYYY-MM-DD" Yes
recalculate_target_dates Recalculate target date. Accepted values are 'all', 'after', 'before', 'none' Yes

Lock a Job Task Target Date

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Drafting Approval",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "in_progress",
    "progress": 50,
    "start_date": "2024-11-20T16:00:00.000000Z",
    "target_date": "2024-11-20T16:00:00.000000Z",
    "target_date_locked": true,
    "labour_centres": [
      {
        "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
        "name": "Accounts",
        "selected": false
      },
      {
        "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
        "name": "Installation",
        "selected": false
      },
      {
        "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
        "name": "Manufacture",
        "selected": false
      }
    ],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:55:42.000000Z"
  }
}

This endpoint locks the task's target date.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/lock-target-date

Unlock a Job task Target Date

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Drafting Approval",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "in_progress",
    "progress": 50,
    "start_date": "2024-11-20T16:00:00.000000Z",
    "target_date": "2024-11-20T16:00:00.000000Z",
    "target_date_locked": false,
    "labour_centres": [
      {
        "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
        "name": "Accounts",
        "selected": false
      },
      {
        "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
        "name": "Installation",
        "selected": false
      },
      {
        "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
        "name": "Manufacture",
        "selected": false
      }
    ],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:56:06.000000Z"
  }
}

This endpoint unlocks the task's target date.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/unlock-target-date

Set Job Task Labour Centre

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Drafting Approval",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "in_progress",
    "progress": 50,
    "start_date": "2024-11-20T16:00:00.000000Z",
    "target_date": "2024-11-20T16:00:00.000000Z",
    "target_date_locked": false,
    "labour_centres": [],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:56:22.000000Z"
  }
}

This endpoint sets the task's labour centre.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/labour-centre

Parameter Description Required
labour_centre_id A labour centre ID belonging to the tasks operation Yes

Mark a Job Task as Applicable

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Drafting Approval",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "in_progress",
    "progress": 50,
    "start_date": "2024-11-20T16:00:00.000000Z",
    "target_date": "2024-11-20T16:00:00.000000Z",
    "target_date_locked": false,
    "labour_centres": [],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:56:22.000000Z"
  }
}

This endpoint marks a single task as applicable.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/applicable

Mark a Job Tasks as Applicable

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Drafting Approval",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "in_progress",
    "progress": 50,
    "start_date": "2024-11-20T16:00:00.000000Z",
    "target_date": "2024-11-20T16:00:00.000000Z",
    "target_date_locked": false,
    "labour_centres": [],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:56:22.000000Z"
  }
}

This endpoint marks a single task as applicable.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/applicable

Mark a Job Task as Not Applicable

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Drafting Approval",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "not_applicable",
    "progress": 50,
    "start_date": "2024-11-20T16:00:00.000000Z",
    "target_date": "2024-11-20T16:00:00.000000Z",
    "target_date_locked": false,
    "labour_centres": [],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:57:39.000000Z"
  }
}

This endpoint marks a single task as not applicable.

HTTP Request

PUT /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/not-applicable

Delete a job Task

Response

204 | No content

This endpoint deletes a task from a step.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}

Sort Job Tasks

Response

204 | No content

This endpoint sets the default order for job tasks.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/sort

Parameter Description Required
step_id The id of the step containing the tasks Yes
ids Sorted in the preferred order Yes

List Job Task Members

Response

{
  "task_members": {
    "data": [
      {
        "id": "f518f3ed-d8cb-431b-964c-7b1cc0669931",
        "staff_id": "c91c6de9-863b-4a07-8b64-00186bf4eadf"
      },
      {
        "id": "64522a64-5b07-48f0-843a-e796e881d83a",
        "staff_id": "d9cee972-4d35-4a90-a8b6-45ac88534eeb"
      }
    ]
  }
}

This endpoint retrieves all the members of a task.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/members

Add a Job Task Member

Response

204 | No content

This endpoint adds a Staff Member to a Task.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/members

Parameter Description Required
staff_id The id of the Staff Member Yes

Delete a Job Task Member

Response

204 | No content

This endpoint removes a Staff Member from a Task.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/{taskId}/members/{taskMemberId}

Mark Job Tasks as Applicable

Response

204 | No content

This endpoint marks multiple tasks as not applicable.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/applicable

Parameter Description Required
ids An array of task IDs Yes

Mark Job Tasks as Not Applicable

Response

204 | No content

This endpoint marks multiple tasks as not applicable.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/not-applicable

Parameter Description Required
ids An array of task IDs Yes

Mark Job Tasks as Completed

Response

204 | No content

This endpoint marks multiple tasks as completed.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/tasks/completed

Parameter Description Required
ids An array of task IDs Yes

Job Statuses

List Job Statuses

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/statuses

This endpoint allows you to list all active job statuses for an organisation.

For more see Settings > Job Statuses.

Response

{
  "job_statuses": [
    {
      "id": "a1cc068e-6338-4f2d-a8ed-d0a2e172577d",
      "name": "Production",
      "is_default": true,
      "is_finished": false,
      "created_at": "2022-03-04T02:06:45.000000Z",
      "updated_at": "2022-03-04T02:06:45.000000Z"
    },
    {
      "id": "a2855694-4b76-4806-8921-86684da6b96d",
      "name": "Machining",
      "is_default": false,
      "is_finished": false,
      "created_at": "2022-03-04T02:06:45.000000Z",
      "updated_at": "2022-03-04T02:06:45.000000Z"
    }
  ]
}

Job Types

List Job Types

This endpoint allows you to list all active job types for an organisation.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/types

For more see Settings > Job Types.

Response

{
  "job_types": [
    {
      "id": "2956de94-fbcc-4159-8dc9-0ca145628d12",
      "name": "Internal",
      "created_at": "2022-03-04T02:06:45.000000Z",
      "updated_at": "2022-03-04T02:06:45.000000Z"
    },
    {
      "id": "d5123250-fdcc-4e34-8a32-425a2a9aa7e9",
      "name": "Trades",
      "created_at": "2022-03-04T02:06:45.000000Z",
      "updated_at": "2022-03-04T02:06:45.000000Z"
    }
  ]
}

Add new Job Type

Response

{
  "job_type": {
    "id": "9a0f0c7a-a26d-4edb-8fd8-5255fc5c151f",
    "name": "Remote Installation",
    "created_at": "2022-03-04T05:24:57.000000Z",
    "updated_at": "2022-03-04T05:24:57.000000Z"
  }
}

This endpoint adds a new job type for an organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/types

Parameter Description Required
name Job type's name Yes

For more see Settings > Job Types.

Job Members

List Job Members

Response

{
    "job_members": {
        "data": [
            {
                "id": "f518f3ed-d8cb-431b-964c-7b1cc0669931",
                "staff_id": "c91c6de9-863b-4a07-8b64-00186bf4eadf"
            },
            {
                "id": "64522a64-5b07-48f0-843a-e796e881d83a",
                "staff_id": "d9cee972-4d35-4a90-a8b6-45ac88534eeb"
            }
        ]
    }
}

This endpoint retrieves all the members of a Job.

HTTP Request

GET /api/v1/organisations/{organisationId}/jobs/{jobId}/members

Add a Job Member

Response

204 | No content

This endpoint adds a Staff Member to a Job.

HTTP Request

POST /api/v1/organisations/{organisationId}/jobs/{jobId}/members

Parameter Description Required
staff_id The id of the Staff Member Yes

Delete a Job Member

Response

204 | No content

This endpoint removes a Staff Member from a Job.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/jobs/{jobId}/members/{jobMemberId}

Languages

List Languages

Response

{
    "languages": [
        {
            "id": "en_AU",
            "name": "English (Australia)"
        },
        {
            "id": "en_US",
            "name": "English (United States)"
        },
        {
            "id": "es",
            "name": "Spanish"
        }
    ]
}

This endpoint retrieves the languages in Jobman.

HTTP Request

GET /api/v1/languages

Leads

List all leads

HTTP Request

GET /api/v1/organisations/{organisationId}/leads

This endpoint allows you to list all leads for an organisation.

Response

{
  "leads": {
    "data": [
      {
        "id": "d2647dff-47e2-426d-946d-1a0bd1e7b3b5",
        "number": "2210-001",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "types": [],
        "lead_status_id": "ee6908a2-cbe5-41b7-829b-7db8220c3477",
        "contact_id": "779dc961-1ff8-4a29-aa9a-f27f5112572b",
        "workflow_id": "f93d0e79-398a-40fc-89cc-fa984faae842",
        "address": null,
        "address_line1": null,
        "address_line2": null,
        "address_city": null,
        "address_region": null,
        "address_postal_code": null,
        "address_country_id": null,
        "notes": null,
        "created_at": "2022-10-04T07:49:37.000000Z",
        "updated_at": "2022-10-04T07:49:39.000000Z",
        "trashed_at": null
      },
      {
        "id": "d2647dff-47e2-426d-946d-1a0bd1e7b3b5",
        "number": "2210-001",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "types": [],
        "lead_status_id": "ee6908a2-cbe5-41b7-829b-7db8220c3477",
        "contact_id": "779dc961-1ff8-4a29-aa9a-f27f5112572b",
        "workflow_id": "f93d0e79-398a-40fc-89cc-fa984faae842",
        "address": null,
        "address_line1": null,
        "address_line2": null,
        "address_city": null,
        "address_region": null,
        "address_postal_code": null,
        "address_country_id": null,
        "notes": null,
        "created_at": "2022-10-04T07:49:37.000000Z",
        "updated_at": "2022-10-04T07:49:39.000000Z",
        "trashed_at": null
      }
    ]
  }
}
Parameter Description Required
trashed Boolean flag to filter by trashed status No

Get a Lead

HTTP Request

GET /api/v1/organisations/{organisationId}/lead/{leadId}

This endpoint retrieves a specific lead for an organisation.

Response

{
  "lead": {
    "id": "d2647dff-47e2-426d-946d-1a0bd1e7b3b5",
    "number": "2210-001",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "types": [],
    "lead_status_id": "ee6908a2-cbe5-41b7-829b-7db8220c3477",
    "contact_id": "779dc961-1ff8-4a29-aa9a-f27f5112572b",
    "workflow_id": "f93d0e79-398a-40fc-89cc-fa984faae842",
    "address": null,
    "address_line1": null,
    "address_line2": null,
    "address_city": null,
    "address_region": null,
    "address_postal_code": null,
    "address_country_id": null,
    "notes": null,
    "created_at": "2022-10-04T07:49:37.000000Z",
    "updated_at": "2022-10-04T07:49:39.000000Z",
    "trashed_at": null
  }
}

Add a Lead

Response

{
  "lead": {
    "id": "73fc86ff-91d1-4a6f-a057-1588942ad220",
    "number": "2206-002",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "types": [
      {
        "id": "d7a0ce4a-5e50-464b-95f6-4f237eb580bd",
        "name": "Builder"
      }
    ],
    "lead_status_id": "ee6908a2-cbe5-41b7-829b-7db8220c3477",
    "contact_id": "779dc961-1ff8-4a29-aa9a-f27f5112572b",
    "workflow_id": "f93d0e79-398a-40fc-89cc-fa984faae842",
    "address": null,
    "address_line1": null,
    "address_line2": null,
    "address_city": null,
    "address_region": null,
    "address_postal_code": null,
    "address_country_id": null,
    "notes": null,
    "created_at": "2022-10-04T07:49:37.000000Z",
    "updated_at": "2022-10-04T07:49:39.000000Z",
    "trashed_at": null
  }
}

This endpoint adds a new lead to an organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads

Parameter Description Required
contact_id The contact's id this lead is assigned to Yes
types An array with lead type Ids Yes
description A short descriptive label No
workflow_id The Id for this leads workflow No
address_line1 The first line of the locations address No
address_line2 The second line of the locations address No
address_city The locations city address No
address_region The locations address region No
address_postal_code The locations post code No
address_country_id The country Id for the locations address No
address_map_latitude The location address latitude No
address_map_longitude The location address longtitude No
address_map_zoom The locations map zoom setting No
notes Additional information about the lead No

Update a Lead

Response

{
  "lead": {
    "id": "73fc86ff-91d1-4a6f-a057-1588942ad220",
    "number": "2206-002",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "types": [
      {
        "id": "d7a0ce4a-5e50-464b-95f6-4f237eb580bd",
        "name": "Builder"
      }
    ],
    "lead_status_id": "c9f7d503-b38e-451b-8f63-9b187451b9a3",
    "contact_id": "dbaf5e4a-cd6a-4b43-8e95-214eb173f6ba",
    "workflow_id": "a0154cb2-299c-44e5-9cc9-327cc8843324",
    "address": "102 South St, \nFremantle, Western Australia Australia 6160",
    "address_line1": "100 South St",
    "address_line2": null,
    "address_city": "Fremantle",
    "address_region": "Western Australia",
    "address_postal_code": "6160",
    "address_country_id": "AU",
    "created_at": "2022-06-15T05:58:17.000000Z",
    "updated_at": "2022-06-15T05:58:19.000000Z",
    "trashed_at": null
  }
}

This endpoint modifies an existing lead for an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/leads/{leadId}

Parameter Description Required
contact_id The contact's id this lead is assigned to No
number The lead's number No
types An array with lead type Ids No
description A short descriptive label No
workflow_id The Id for this leads workflow No
address_line1 The first line of the locations address No
address_line2 The second line of the locations address No
address_city The locations city address No
address_region The locations address region No
address_postal_code The locations post code No
address_country_id The country Id for the locations address No
address_map_latitude The location address latitude No
address_map_longitude The location address longtitude No
address_map_zoom The locations map zoom setting No
notes Additional information about the lead No

Update a Lead Status

Response

{
  "lead": {
    "id": "73fc86ff-91d1-4a6f-a057-1588942ad220",
    "number": "2206-002",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "types": [
      {
        "id": "d7a0ce4a-5e50-464b-95f6-4f237eb580bd",
        "name": "Builder"
      }
    ],
    "lead_status_id": "c9f7d503-b38e-451b-8f63-9b187451b9a3",
    "contact_id": "dbaf5e4a-cd6a-4b43-8e95-214eb173f6ba",
    "created_at": "2022-06-15T05:58:17.000000Z",
    "updated_at": "2022-06-15T05:58:19.000000Z",
    "trashed_at": null
  }
}

This endpoint updates the status of a specific lead for an organisation.

HTTP Request

PUT /api/v1/organisations/{organisationId}/leads/{leadId}/status

Parameter Description Required
lead_status_id The ID for the status of the lead Yes

Delete a Lead

Response

204 | No content

This endpoint deletes a specific lead.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/leads/{leadId}

Delete multiple Leads

Response

204 | No content

This endpoint deletes multiple leads.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/delete

Parameter Description Required
ids An array of lead Ids Yes

Restore leads

Response

204 | No content

This endpoint restores one or multiple leads.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/restore

Parameter Description Required
ids An array of lead Ids Yes

Add a new Job from a Lead

Response

{
  "job": {
    "id": "bae654b6-10c6-4a73-bf1e-3b28c63a4bcf",
    "number": "00002",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "types": [
      {
        "id": "18b09b0b-ed12-4ec0-b085-730025bb783e",
        "name": "Builder"
      }
    ],
    "job_status_id": "67a60163-9f58-40e3-909d-76c662c62862",
    "contact_id": "dbaf5e4a-cd6a-4b43-8e95-214eb173f6ba",
    "created_at": "2022-06-15T05:33:58.000000Z",
    "updated_at": "2022-06-15T05:33:58.000000Z",
    "trashed_at": null
  }
}

This endpoint generates a new Job based on a Lead.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/job

Parameter Description Required
types An array with Job type Ids Yes

Add a new Quote from a Lead

Response

{
  "quote": {
    "id": "c3786d1a-6282-42d9-a8ea-5ddbb05e53c7",
    "number": "2208-001/03",
    "description": "Apartment Kitchen",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "quote_status_id": "89836449-8e90-41ee-9bb1-8c326de2b8a7",
    "contact_id": "fb1f5aee-c5d4-4b67-b25c-7e7eddb97cd5",
    "template_id": "09a55080-9c06-470b-8b5e-702d234f8007",
    "contact_person_id": null,
    "date": "2022-08-25T00:48:20.000000Z",
    "expiry_date": "2022-09-24T00:48:20.000000Z",
    "created_at": "2022-08-25T00:48:20.000000Z",
    "updated_at": "2022-08-25T00:48:20.000000Z"
  }
}

This endpoint generates a new Quote based on a Lead.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/quote

List all Lead Workflows

Response

{
  "workflows": {
    "data": [
      {
        "id": "750eb0fe-5f53-4bf0-a8a2-eb7fe69ff966",
        "name": "Default Lead Workflow",
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item": "lead",
        "is_default": false,
        "created_at": "2022-02-09T02:57:28.000000Z",
        "updated_at": "2022-02-09T02:57:28.000000Z"
      }
    ]
  }
}

This endpoint retrieves all active Lead Workflows for an organisation.

HTTP Request

GET /api/v1/organisations/{organisationId}/leads/workflows

Lead Files

List Lead files

HTTP Request

GET /api/v1/organisations/{organisationId}/leads/{leadId}/files/{path}

This endpoint allows you to list the contents of a folder or return a file resource at a given path.

Response

{
    "files": [
        {
            "name": "Images",
            "path": "Images",
            "type": "dir",
            "size": 0,
            "url": "",
            "last_modified": ""
        },
        {
            "name": "Videos",
            "path": "Videos",
            "type": "dir",
            "size": 0,
            "url": "",
            "last_modified": ""
        },
        {
            "name": "Photo.png",
            "path": "Photo.png",
            "type": "file",
            "size": 164847,
            "url": "https://jobmanapp.com/storage/files/Organisation%2FImages%2FCabinets%2FImage.png?organisation=33b928af-f0b5-42f9-ae2f-48dba38929ca&signature=e5a4bfe6cdfe78cf04afe016f082270847709144adb757ea439a686f5c24bb76",
            "last_modified": 1643961457,
            "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca"
        }
    ]
}

Store Lead files

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/files/{path}

This endpoint allows you to store uploaded files.

Parameter Description Required
files An array of upload resources, see Uploads Yes

Response

{}

Create a Lead folder

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/files/{path}

This endpoint allows you to create a folder.

Parameter Description Required
folder_name The folder's name Yes

Response

{}

Delete a Lead file or folder

HTTP Request

DELETE /api/v1/organisations/{organisationId}/leads/{leadId}/files/{path}

This endpoint allows you to delete a lead file or folder.

Response

{}

Rename a file

HTTP Request

PUT /api/v1/organisations/{organisationId}/leads/{leadId}/files/{path}

This endpoint allows you to rename the file specified by the path using the file_name parameter.

Parameter Description Required
file_name The new file name Yes, if no folder_name is provided

Response

{}

Rename a Lead folder

HTTP Request

PUT /api/v1/organisations/{organisationId}/leads/{leadId}/files/{path}

This endpoint allows you to rename the folder specified by the path using the folder_name parameter.

Parameter Description Required
folder_name The new folder name Yes

Response

{}

Move a Lead file or folder

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/files/move

This endpoint allows you to move a file or folder to a different location within lead's directory.

Parameter Description Required
source The source path in url-encoded format Yes
destination The destination path in url-encoded format Yes, empty path implies the lead's root folder

Response

{}

Lead Items

List Lead Items

HTTP Request

GET /api/v1/organisations/{organisationId}/leads/{leadId}/items

Parameter Description Required
trashed Boolean flag to filter by trashed status No

This endpoint allows you to list all lead items for an organisation.

Response

{
    "lead_items": [
        {
          "id": "ff4fb24b-9a67-4e97-9c51-029910c37384",
          "name": "Kitchen",
          "item_type_id": null,
          "quantity": 1,
          "item_specifications": [],
          "created_at": "2023-08-30T07:38:21.000000Z",
          "updated_at": "2023-08-30T07:38:21.000000Z"
        },
        {
            "id": "89a0d26f-b63f-426e-8fc6-b09f7b2760e0",
            "name": "Bathroom",
            "item_type_id": null,
            "quantity": 1,
            "item_specifications": [],
            "created_at": "2022-07-07T01:16:21.000000Z",
            "updated_at": "2022-07-07T02:52:21.000000Z"
        }
    ]
}

Get a Lead Item

HTTP Request

GET /api/v1/organisations/{organisationId}/leads/{leadId}/items/{leadItemId}

This endpoint retrieves a specific lead item.

Response

{
    "lead_item": {
        "id": "ff4fb24b-9a67-4e97-9c51-029910c37384",
        "name": "Kitchen",
        "item_type_id": null,
        "quantity": 1,
        "item_specifications": [
          {
            "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
            "item_specification_question_id": "c3d3bf1d-858c-4a5b-9461-aeda44646df3",
            "repeating_index": 0,
            "value": "value"
          },
          {
            "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
            "item_specification_question_id": "0f18a00f-03c9-4d4f-8940-871c3a216d26",
            "repeating_index": 0,
            "value": "1"
          }
        ],
        "created_at": "2023-08-30T07:38:21.000000Z",
        "updated_at": "2023-08-30T07:38:21.000000Z"
    }
}

Add a Lead Item

Response

{
  "lead_item": {
    "id": "ff4fb24b-9a67-4e97-9c51-029910c37384",
    "name": "Kitchen",
    "item_type_id": null,
    "quantity": 1,
    "item_specifications": [
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "c3d3bf1d-858c-4a5b-9461-aeda44646df3",
        "repeating_index": 0,
        "value": "value"
      },
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "0f18a00f-03c9-4d4f-8940-871c3a216d26",
        "repeating_index": 0,
        "value": "1"
      }
    ],
    "created_at": "2023-08-30T07:38:21.000000Z",
    "updated_at": "2023-08-30T07:38:21.000000Z"
  }
}

This endpoint adds a new lead item for an organisation.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/items

Parameter Description Required
name Lead item's name Yes
item_type_id UUID for the item type No
quantity The amount of items No
specifications Array of specification questions/values No

Specifications Array Parameters

Parameter Description Required
item_specification_group_id UUID for the Item Specification Group Yes
item_specification_question_id UUID for the Item Specification Question Yes
repeating_index The index of the repeated Item Specification No
value The answer/value for the Specification Question No

Update a Lead Item

Response

{
  "lead_item": {
    "id": "ff4fb24b-9a67-4e97-9c51-029910c37384",
    "name": "Kitchen",
    "item_type_id": null,
    "quantity": 1,
    "item_specifications": [
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "c3d3bf1d-858c-4a5b-9461-aeda44646df3",
        "repeating_index": 0,
        "value": "value"
      },
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "0f18a00f-03c9-4d4f-8940-871c3a216d26",
        "repeating_index": 0,
        "value": "1"
      }
    ],
    "created_at": "2023-08-30T07:38:21.000000Z",
    "updated_at": "2023-08-30T07:38:21.000000Z"
  }
}

This endpoint modifies an existing lead item.

HTTP Request

PUT /api/v1/organisations/{organisationId}/leads/{leadId}/items/{leadItemId}

Parameter Description Required
name Lead item's name Yes
item_type_id UUID for the item type No
quantity The amount of items No
specifications Array of specification questions/values No

Specifications Array Parameters

Parameter Description Required
item_specification_group_id UUID for the Item Specification Group Yes
item_specification_question_id UUID for the Item Specification Question Yes
repeating_index The index of the repeated Item Specification No
value The answer/value for the Specification Question No

Delete a Lead Item

Response

204 | No content

This endpoint deletes a specific lead item.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/leads/{leadId}/items/{leadItemId}

Delete multiple Lead Items

Response

204 | No content

This endpoint deletes multiple lead items.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/items/delete

Parameter Description Required
ids An array of lead item Ids Yes

Restore multiple Lead Items

Response

204 | No content

This endpoint restores multiple lead items.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/items/restore

Parameter Description Required
ids An array of lead item Ids Yes

Sort Lead Items

Response

204 | No content

This endpoint sets the default order for lead item

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/items/sort

Parameter Description Required
ids Sorted in the preferred order Yes

Copy a lead item

Response

{
  "lead_item": {
    "id": "ff4fb24b-9a67-4e97-9c51-029910c37384",
    "name": "Kitchen",
    "item_type_id": null,
    "quantity": 1,
    "item_specifications": [
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "c3d3bf1d-858c-4a5b-9461-aeda44646df3",
        "repeating_index": 0,
        "value": "value"
      },
      {
        "item_specification_group_id": "aa977931-a55e-4729-9fa0-ced824e03c86",
        "item_specification_question_id": "0f18a00f-03c9-4d4f-8940-871c3a216d26",
        "repeating_index": 0,
        "value": "1"
      }
    ],
    "created_at": "2023-08-30T07:38:21.000000Z",
    "updated_at": "2023-08-30T07:38:21.000000Z"
  }
}

This endpoint duplicates a specific lead item within a lead.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/items/{itemId}/copy

Lead Item Specification Question Types

List Lead Item Specification Question Types

Response

{
    "question_types": [
        {
            "id": "text",
            "name": "Text"
        },
        {
            "id": "paragraph_text",
            "name": "Paragraph Text"
        },
        {
            "id": "email",
            "name": "Email Address"
        },
        {
            "id": "url",
            "name": "URL"
        },
        {
            "id": "number",
            "name": "Number"
        },
        {
            "id": "dropdown",
            "name": "Dropdown"
        },
        {
            "id": "checkbox",
            "name": "Checkbox"
        }
    ]
}

This endpoint retrieves the lead item specification question types in Jobman.

HTTP Request

GET /api/v1/lead-item-specification-question-types

Lead Members

List Lead Members

Response

{
    "lead_members": {
        "data": [
            {
                "id": "f518f3ed-d8cb-431b-964c-7b1cc0669931",
                "staff_id": "c91c6de9-863b-4a07-8b64-00186bf4eadf"
            },
            {
                "id": "64522a64-5b07-48f0-843a-e796e881d83a",
                "staff_id": "d9cee972-4d35-4a90-a8b6-45ac88534eeb"
            }
        ]
    }
}

This endpoint retrieves all the members of a Lead.

HTTP Request

GET /api/v1/organisations/{organisationId}/leads/{leadId}/members

Add a Lead Member

Response

204 | No content

This endpoint adds a Staff Member to a Lead.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/members

Parameter Description Required
staff_id The id of the Staff Member Yes

Delete a Lead Member

Response

204 | No content

This endpoint removes a Staff Member from a Lead.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/leads/{leadId}/members/{leadMemberId}

Lead Statuses

List Lead Statuses

HTTP Request

GET /api/v1/organisations/{organisationId}/leads/statuses

This endpoint allows you to list all lead active statuses for an organisation.

For more see Settings > Lead Statuses.

Response

{
  "lead_statuses": [
    {
      "id": "3fcaba85-9823-4805-8897-103bfb825937",
      "name": "Pre Sale",
      "is_default": true,
      "is_finished": false,
      "created_at": "2022-03-04T02:06:44.000000Z",
      "updated_at": "2022-03-04T02:06:44.000000Z"
    },
    {
      "id": "094b64c5-3760-4d59-a86f-c95dbd51fc05",
      "name": "Estimating",
      "is_default": false,
      "is_finished": false,
      "created_at": "2022-03-04T02:06:44.000000Z",
      "updated_at": "2022-03-04T02:06:44.000000Z"
    }
  ]
}

Lead Steps

List all Lead Steps

Response

{
  "steps": [
    {
      "id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
      "name": "Pre Sale",
      "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
      "tasks": [
        {
          "id": "10ed4b85-748e-4e42-b771-5b04bb4d8561",
          "name": "Lead Entered",
          "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
          "description": null,
          "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
          "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
          "staff_qty": 1,
          "operation_id": "87234146-24b6-4533-9ecc-393649ebf3f1",
          "estimated_time": 324,
          "actual_time": 259500,
          "target_date_calculation": 0,
          "estimated_day": null,
          "status": "not_started",
          "progress": 0,
          "start_date": null,
          "target_date": null,
          "target_date_locked": false,
          "labour_centres": [
            {
              "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
              "name": "Accounts",
              "selected": false
            },
            {
              "id": "ea362068-d5ca-4cd7-9341-80f6dd872e17",
              "name": "Drafting",
              "selected": false
            }
          ],
          "members": [],
          "requires_selection": "all",
          "requires_selection_ids": [],
          "types_selection": "all",
          "types_selection_ids": [],
          "created_at": "2022-10-18T04:36:34.000000Z",
          "updated_at": "2022-10-18T04:36:34.000000Z"
        },
        {
          "id": "f1d88b56-3367-4af1-8f6e-3db232bb6aa0",
          "name": "Showroom Consultation Complete",
          "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
          "description": null,
          "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
          "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
          "staff_qty": 1,
          "operation_id": "844f8e59-cdbc-4b54-9e3d-0c8b804ed3b9",
          "estimated_time": 7200,
          "actual_time": 0,
          "target_date_calculation": 4,
          "estimated_day": null,
          "status": "not_started",
          "progress": 0,
          "start_date": null,
          "target_date": null,
          "target_date_locked": false,
          "labour_centres": [],
          "members": [],
          "requires_selection": "all",
          "requires_selection_ids": [],
          "types_selection": "all",
          "types_selection_ids": [],
          "created_at": "2022-10-18T04:36:34.000000Z",
          "updated_at": "2022-10-18T04:36:34.000000Z"
        }
      ],
      "created_at": "2022-10-18T04:36:34.000000Z",
      "updated_at": "2022-10-18T04:36:34.000000Z"
    },
    {
      "id": "16a4e88b-bd88-4332-b984-2ec2472d090d",
      "name": "Estimating",
      "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
      "tasks": [
        {
          "id": "47f36ea0-e13f-4e70-ab6a-6ace6c813b70",
          "name": "Job Specs Complete",
          "step_id": "16a4e88b-bd88-4332-b984-2ec2472d090d",
          "description": null,
          "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
          "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
          "staff_qty": 1,
          "operation_id": "9f0184f7-fa1c-446c-9181-8413592a5f0a",
          "estimated_time": 3600,
          "actual_time": 0,
          "target_date_calculation": 0,
          "estimated_day": null,
          "status": "not_started",
          "progress": 0,
          "start_date": null,
          "target_date": null,
          "target_date_locked": false,
          "labour_centres": [
            {
              "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
              "name": "Accounts",
              "selected": false
            },
            {
              "id": "ea362068-d5ca-4cd7-9341-80f6dd872e17",
              "name": "Drafting",
              "selected": false
            },
            {
              "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
              "name": "Installation",
              "selected": false
            },
            {
              "id": "8763199d-55b3-4269-9a4d-e3d3f1644acb",
              "name": "Machining",
              "selected": false
            },
            {
              "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
              "name": "Manufacture",
              "selected": false
            }
          ],
          "members": [],
          "requires_selection": "all",
          "requires_selection_ids": [],
          "types_selection": "all",
          "types_selection_ids": [],
          "created_at": "2022-10-18T04:36:34.000000Z",
          "updated_at": "2022-10-18T04:36:34.000000Z"
        }
      ],
      "created_at": "2022-10-18T04:36:34.000000Z",
      "updated_at": "2022-10-18T04:36:34.000000Z"
    }
  ]
}

This endpoint retrieves all the steps for a lead.

HTTP Request

GET /api/v1/organisations/{organisationId}/leads/{leadId)/steps

Get a Lead Step

Response

{
  "step": {
    "id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "name": "Pre Sale",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "tasks": [
      {
        "id": "10ed4b85-748e-4e42-b771-5b04bb4d8561",
        "name": "Lead Entered",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": 1,
        "operation_id": "87234146-24b6-4533-9ecc-393649ebf3f1",
        "estimated_time": 324,
        "actual_time": 259500,
        "target_date_calculation": 0,
        "estimated_day": null,
        "status": "not_started",
        "progress": 0,
        "start_date": null,
        "target_date": null,
        "target_date_locked": false,
        "labour_centres": [
          {
            "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
            "name": "Accounts",
            "selected": false
          },
          {
            "id": "ea362068-d5ca-4cd7-9341-80f6dd872e17",
            "name": "Drafting",
            "selected": false
          }
        ],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-18T04:36:34.000000Z",
        "updated_at": "2022-10-18T04:36:34.000000Z"
      },
      {
        "id": "f1d88b56-3367-4af1-8f6e-3db232bb6aa0",
        "name": "Showroom Consultation Complete",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": 1,
        "operation_id": "844f8e59-cdbc-4b54-9e3d-0c8b804ed3b9",
        "estimated_time": 7200,
        "actual_time": 0,
        "target_date_calculation": 4,
        "estimated_day": null,
        "status": "not_started",
        "progress": 0,
        "start_date": null,
        "target_date": null,
        "target_date_locked": false,
        "labour_centres": [],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-18T04:36:34.000000Z",
        "updated_at": "2022-10-18T04:36:34.000000Z"
      },
      {
        "id": "1eed505f-8d93-481a-9856-f0ecb4d2484e",
        "name": "Booked Site Visit",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": 1,
        "operation_id": "25a2054b-1051-4023-9c08-3c35868e1ba9",
        "estimated_time": 900,
        "actual_time": 0,
        "target_date_calculation": 1,
        "estimated_day": null,
        "status": "not_started",
        "progress": 0,
        "start_date": null,
        "target_date": null,
        "target_date_locked": false,
        "labour_centres": [],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-18T04:36:34.000000Z",
        "updated_at": "2022-10-18T04:36:34.000000Z"
      }
    ],
    "created_at": "2022-10-18T04:36:34.000000Z",
    "updated_at": "2022-10-18T04:36:34.000000Z"
  }
}

This endpoint retrieves a step from a lead.

HTTP Request

GET /api/v1/organisations/{organisationId}/leads/{leadId)/steps/{stepId}

Add a Lead Step

Response

{
  "step": {
    "id": "39e11519-006b-4cdd-a055-feb4e51ac243",
    "name": "Quotation Review process",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "tasks": [],
    "created_at": "2022-10-20T01:57:51.000000Z",
    "updated_at": "2022-10-20T01:57:51.000000Z"
  }
}

This endpoint adds a step to lead.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/steps

Parameter Description Required
name The name of the step Yes
status_id The id of step status Yes

Delete a Lead Step

Response

204 | No content

This endpoint deletes a step from a lead.

HTTP Request

DELETE /api/v1/organisations/{organisationId}/leads/{leadId}/steps/{stepId}

Update a Lead Step

Response

{
  "step": {
    "id": "39e11519-006b-4cdd-a055-feb4e51ac243",
    "name": "Quotation Review Process Commercial",
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "tasks": [],
    "created_at": "2022-10-20T01:57:51.000000Z",
    "updated_at": "2022-10-20T01:57:51.000000Z"
  }
}

HTTP Request

PUT /api/v1/organisations/{organisationId}/leads/{leadId}/steps/{stepId}

This endpoint allows you to update the details of a step in a lead.

Parameter Description Required
name The name of the step Yes
status_id The id of step status Yes

Sort Lead Steps

Response

204 | No content

This endpoint sets the default order for lead steps.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/steps/sort

Parameter Description Required
ids Sorted in the preferred order Yes

Lead Tasks

List all Lead Tasks

Response

{
  "tasks": {
    "data": [
      {
        "id": "10ed4b85-748e-4e42-b771-5b04bb4d8561",
        "name": "Lead Entered",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": 1,
        "operation_id": "87234146-24b6-4533-9ecc-393649ebf3f1",
        "estimated_time": 324,
        "actual_time": 259500,
        "target_date_calculation": 0,
        "estimated_day": null,
        "status": "not_started",
        "progress": 0,
        "start_date": null,
        "target_date": null,
        "target_date_locked": false,
        "labour_centres": [
          {
            "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
            "name": "Accounts",
            "selected": false
          }
        ],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-18T04:36:34.000000Z",
        "updated_at": "2022-10-18T04:36:34.000000Z"
      },
      {
        "id": "f3dad1c8-5a81-47d6-829e-528dc690dc12",
        "name": "Booked Showroom Consultation",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": 1,
        "operation_id": "31e3dab7-a65d-4458-a3ed-c205dcebd1d2",
        "estimated_time": 900,
        "actual_time": 0,
        "target_date_calculation": 0,
        "estimated_day": null,
        "status": "not_started",
        "progress": 0,
        "start_date": null,
        "target_date": null,
        "target_date_locked": false,
        "labour_centres": [
          {
            "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
            "name": "Accounts",
            "selected": false
          },
          {
            "id": "ea362068-d5ca-4cd7-9341-80f6dd872e17",
            "name": "Drafting",
            "selected": false
          }
        ],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-18T04:36:34.000000Z",
        "updated_at": "2022-10-18T04:36:34.000000Z"
      }
    ]
  }
}

This endpoint retrieves all the tasks for a step.

HTTP Request

GET /api/v1/organisations/{organisationId}/leads/{leadId)/tasks

Get a Lead Task

Response

{
  "task": {
    "id": "10ed4b85-748e-4e42-b771-5b04bb4d8561",
    "name": "Lead Entered",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 1,
    "operation_id": "87234146-24b6-4533-9ecc-393649ebf3f1",
    "estimated_time": 324,
    "actual_time": 259500,
    "target_date_calculation": 0,
    "estimated_day": null,
    "status": "not_started",
    "progress": 0,
    "start_date": null,
    "target_date": null,
    "target_date_locked": false,
    "labour_centres": [
      {
        "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
        "name": "Accounts",
        "selected": false
      }
    ],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-18T04:36:34.000000Z",
    "updated_at": "2022-10-18T04:36:34.000000Z"
  }
}

This endpoint retrieves a task from a step.

HTTP Request

GET /api/v1/organisations/{organisationId}/leads/{leadId)/tasks/{taskId}

Add a Lead Task

Response

{
    "task": {
        "id": "0f18a3c2-8baf-47a0-8a7a-6ad0c6853423",
        "name": "Send meeting confirmation",
        "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
        "description": null,
        "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
        "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
        "staff_qty": "2",
        "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
        "estimated_time": "3600",
        "actual_time": 0,
        "target_date_calculation": "5",
        "estimated_day": null,
        "status": "not_started",
        "progress": null,
        "start_date": null,
        "target_date": null,
        "target_date_locked": null,
        "labour_centres": [
            {
                "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
                "name": "Accounts",
                "selected": false
            },
            {
                "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
                "name": "Installation",
                "selected": false
            },
            {
                "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
                "name": "Manufacture",
                "selected": false
            }
        ],
        "members": [],
        "requires_selection": "all",
        "requires_selection_ids": [],
        "types_selection": "all",
        "types_selection_ids": [],
        "created_at": "2022-10-20T02:10:54.000000Z",
        "updated_at": "2022-10-20T02:10:54.000000Z"
    }
}
}

This endpoint adds a task to a step.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/tasks

Parameter Description Required
name The name of the task Yes
step_id The id of step for the task Yes
description The description of the task No
staff_qty The estimated number of staff members involved in the task Yes
operation_id The id of operation for the task Yes
estimated_time The total time for the task in seconds Yes
target_date_calculation The number of days to be scheduled for the task No
requires_selection 'all' or 'selected' tasks No
requires_selection_ids An array of task IDs from the workflow to be completed prior to the task if selection = 'selected'
types_selection 'all' or 'selected' lead types No
types_selection_ids An array of lead type IDs if selection = 'selected'

Update a Lead Task

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Send meeting confirmation",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "not_started",
    "progress": 0,
    "start_date": null,
    "target_date": null,
    "target_date_locked": false,
    "labour_centres": [
      {
        "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
        "name": "Accounts",
        "selected": false
      },
      {
        "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
        "name": "Installation",
        "selected": false
      },
      {
        "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
        "name": "Manufacture",
        "selected": false
      }
    ],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:41:32.000000Z"
  }
}

This endpoint updates a task in a step.

HTTP Request

POST /api/v1/organisations/{organisationId}/leads/{leadId}/tasks/{taskId}

Parameter Description Required
name The name of the task No
step_id The id of step for the task No
description The description of the task No
staff_qty The estimated number of staff members involved in the task No
operation_id The id of operation for the task No
estimated_time The total time for the task in seconds No
target_date_calculation The number of days to be scheduled for the task No
progress An integer between 0 and 100 No
requires_selection 'all' or 'selected' tasks No
requires_selection_ids An array of task IDs from the workflow to be completed prior to the task if selection = 'selected'
types_selection 'all' or 'selected' lead types No
types_selection_ids An array of lead type IDs if selection = 'selected'

Update a Lead Task Progress

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Send meeting confirmation",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "in_progress",
    "progress": "50",
    "start_date": null,
    "target_date": null,
    "target_date_locked": false,
    "labour_centres": [
      {
        "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
        "name": "Accounts",
        "selected": false
      },
      {
        "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
        "name": "Installation",
        "selected": false
      },
      {
        "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
        "name": "Manufacture",
        "selected": false
      }
    ],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:53:26.000000Z"
  }
}

This endpoint set the task's progress.

HTTP Request

PUT /api/v1/organisations/{organisationId}/leads/{leadId}/tasks/{taskId}/progress

Parameter Description Required
progress An integer between 0 and 100 Yes

Update a Lead Task Start Date

Response

{
  "task": {
    "id": "32036274-5592-400b-9ebb-38a4914d7ed4",
    "name": "Send meeting confirmation",
    "step_id": "23f15d2e-1ce6-4f65-9428-a4b46f83e7e9",
    "description": null,
    "organisation_id": "33b928af-f0b5-42f9-ae2f-48dba38929ca",
    "item_id": "033b959a-4bde-4292-baa2-4de1e3858026",
    "staff_qty": 2,
    "operation_id": "a00a2b7c-5b12-4fba-8dc3-a8b7a895374e",
    "estimated_time": 3600,
    "actual_time": 0,
    "target_date_calculation": 5,
    "estimated_day": null,
    "status": "in_progress",
    "progress": 50,
    "start_date": "2024-11-20T16:00:00.000000Z",
    "target_date": "2024-11-20T16:00:00.000000Z",
    "target_date_locked": false,
    "labour_centres": [
      {
        "id": "0233c015-4f5a-4b9b-951e-a903a249eeb4",
        "name": "Accounts",
        "selected": false
      },
      {
        "id": "32d6940d-0eb4-4166-863f-06a1c41cee1d",
        "name": "Installation",
        "selected": false
      },
      {
        "id": "5704df3e-c651-4e80-811d-f9e70c2b4ff4",
        "name": "Manufacture",
        "selected": false
      }
    ],
    "members": [],
    "requires_selection": "all",
    "requires_selection_ids": [],
    "types_selection": "all",
    "types_selection_ids": [],
    "created_at": "2022-10-20T02:24:58.000000Z",
    "updated_at": "2022-10-20T02:54:57.000000Z"