The API implements the REST architecture and provides an easy and intuitive way of communication with the GeoNext system via the HTTP protocol. By sending GET, POST, PATCH, PUT, and DELETE requests to various API endpoints it is possible to manipulate the corresponding data containers called items.
The API receives requests and responds in widely supported JSON format thus allowing the developers to write GeoNext-powered applications in almost any major programming language (such as Java, C#, C/C++, PHP, Perl, Python, Ruby, etc.) and for all major platforms, including Windows, Mac OS X, Linux, iPhone, Android and Windows Phone.
Head over to https://api.geoworkforce.io/oauth/applications and follow the registration steps or login with an existing GeoNext account to access the developer portal.
This document describes a early preview of the public API which is subject to change as more comprehensive developer features are introduced.
It is only possible to communicate with the API from a non-browser because CORS will prevent API calls originating from outside of the GeoNext domains.
For legacy reasons, some PUT endpoints behave like PATCH endpoints.
Query String Parameters that accepted comma-separated values are named <field>[]
should be specified without the []
e.g. a query string parameter named for_model[]
should be specified as ?for_model=
.
An application willing to make requests to the GeoNext API will have to include an Authorization
header with a unique access token so that each request can be authenticated and correct access permissions applied to that application.
The access token can be obtained from the GeoNext Authentication Server via the OAuth 2.0 protocol described in, Obtaining an access token
The protocol defines the following four roles:
Since access token acts as a session identifier and is used by the GeoNext Resource Server to load associated resource owner and client identities and permissions, it is crucial that this token is transferred only via a secured connection. Therefore, both the Authentication Server and the Resource Server require all requests to be made via a secured HTTPS connection.
The GeoNext API oauth protocol implementation provides one way for a client to obtain an access token:
For a third-party application to request an authorisation code, it has to be first registered with GeoNext and assigned a Client ID and Client Secret.
Any GeoNext account can be used a developer account regardless of that account's associated users.
Client ID
and Client Secret
.Once the application has received an authorisation code as a parameter added to the redirect URI, it needs to exchange it for an access token, which it will then use to make requests to the GeoNext API. To do that, it has to make a POST
request to the https://api.geoworkforce.io/oauth/token
endpoint and include the following parameters:
The endpoint accepts the following parameters:
Parameter | Required | Description |
---|---|---|
client_id | Required | The Application's client id. |
client_secret | Required | The Application's client secret. |
grant_type | Required | The desired grant type. This should be 'authorization_code'. |
redirect_uri | Required | The redirect_uri used to generate the authorization code. |
code | Required | A valid authorization code. |
Example Request
curl --location --request POST 'https://api.geoworkforce.io/oauth/token' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'client_id=<CLIENT_ID>' --data-urlencode 'client_secret=<CLIENT_SECRET>' --data-urlencode 'grant_type=authorization_code' --data-urlencode 'code=<AUTHORIZATION_CODE>' --data-urlencode 'redirect_uri=<REDIRECT_URI>'
}'
Example Response
{
"access_token": "7fa3d3a64dd5e83fdb6e3ec2b71853015a058b43bfcdb171f40e3315f91db728",
"token_type": "Bearer",
"expires_in": 7200,
"refresh_token": "dd12433b6493a1b2ec50d063cc7a3bca642515536c2a8302eb06f9ab92ae7507",
"scope": "write",
"created_at": 1585213246,
"companies": []
}
If the application has received a refresh token, it may use the /oauth2/token endpoint to exchange it for a new access token once the current access token has expired. To do that, it has to make a https://api.geoworkforce.io/oauth/token
request to the endpoint and include the following parameters:
The endpoint accepts the following parameters:
Parameter | Required | Description |
---|---|---|
grant_type | Required | The desired grant type. This should be 'refresh_token'. |
refresh_token | Required | A valid refresh token. |
Example Request
curl --location --request POST 'https://api.geoworkforce.io/oauth/token' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=refresh_token' --data-urlencode 'refresh_token=<REFRESH_TOKEN>'
}'
Example Response
"access_token": "7fa3d3a64dd5e83fdb6e3ec2b71853015a058b43bfcdb171f40e3315f91db728",
"token_type": "Bearer",
"expires_in": 7200,
"refresh_token": "dd12433b6493a1b2ec50d063cc7a3bca642515536c2a8302eb06f9ab92ae7507",
"scope": "write",
"created_at": 1585213246,
"companies": []
If you wish to revoke an access token
make an authenticated call to GET https://api.geoworkforce.io/oauth/logout
and ignore any redirects.
There are limits to how many times an application can make API calls to each particular company.
Once the call limit is reached the API will respond with http status code 429
.
When you specify a Webhook URL for an application you will recieve begin to recieve API calls when an event for a company connected to your application is raised.
When an event occurs in GeoNext your webhook url will be called via a post
containing the event name, a nonce, and a data object which typically only contains the resource identifier related to the event.
The following payload below states that a job was created with the identifier 117.
{
"event_name": "job_created",
"nounce": "7ebd27fe-435e-469e-af0d-76a875e9b44d"
"data": {
"id": 117
}
}
Note that only a resource identifier is included in the data object. You can call the GeoNext API with a respective access token to interact with the resource further.
A header named X-Signature
will be included in the call which is HMAC-SHA256 hash
of the request payload
using your application's secret
as the signing key. You can repeat the hashing process and ensure your result matches the value of X-Signature
to verify that the call originated from GeoNext.
Once you have confirmed the webhook call is genuine you can proceed with your implementation.
Your http status code
response to the webhook call determines its success. Any http status code
between 400-599
is considered a failure. All other http status codes
are considered successes. If http status code 410
is recieved the webhook becomes permanently disabled.
Note: Some webhook calls can take upto 5 minutes to trigger. This is most evident with deletion. Therefore it is important to handle the case where a resource is no longer reachable.
Entity | Action | Event Name |
---|---|---|
Job | Create | job_created |
Job | Update | job_updated |
Job | Delete | job_deleted |
Job Status | Create | job_status_created |
Job Status | Update | job_status_updated |
Job Status | Delete | job_status_deleted |
Job Booking | Create | job_visit_created |
Job Booking | Update | job_visit_updated |
Job Booking | Delete | job_visit_deleted |
Client | Create | client_created |
Client | Update | client_updated |
Client | Delete | client_deleted |
User | Create | user_created |
User | Update | user_updated |
User | Delete | user_deleted |
Timer | Create | timer_created |
Timer | Update | timer_updated |
Timer | Delete | timer_deleted |
TimerType | Create | timer_type_created |
TimerType | Update | timer_type_updated |
TimerType | Delete | timer_type_deleted |
GeoNext API supports OpenID Connect 1.0
During the Oauth2 authorization code request you can specify the openid
scope.
During the Oauth2 access token request from an authorization code you will recieve an extra field id_token
which contains an OpenID JWT.
The following endpoints relate to OpenID Connect functionality.
Endpoint | Description |
---|---|
GET https://api.geoworkforce.io/oauth/userinfo |
Retrieve information related to the authenticated user. |
GET https://api.geoworkforce.io/oauth/discovery/keys |
OpenID Discovery. |
GET https://api.geoworkforce.io/.well-known/openid-configuration |
https://tools.ietf.org/html/rfc5785 |
GET https://api.geoworkforce.io/.well-known/webfinger |
https://tools.ietf.org/html/rfc5785 |
Some top-level API resources have support for bulk fetches via "list" endpoints. For instance, you can list jobs, clients, and list invoices. These list API methods share a common structure, taking at least these two query string parameters page
and per_page
.
Create a form
id | string The identifier. |
label required | string The label. |
description | string The description. |
schema | string The JSON schema. |
configuration | json The configuration. |
owner_type | string The owner type. Possible values: JobVisit. |
owner_id | string The owner identifier. |
parent_id | string The parent form. |
document_id | integer <int32> Invoice Document ID |
form_fields[][id] | Array of strings The field identifier. |
form_fields[][label] | Array of strings The label. |
form_fields[][description] | Array of strings The description. |
form_fields[][type] required | Array of strings The type. |
form_fields[][value] | Array of strings The value. |
form_fields[][initialiser] | Array of json Describes how to initialise the value if one is not specified. |
form_fields[][configuration] | Array of json Describes the parameters of the field. |
form_fields[][validators] | Array of json The validators. |
auto_attach[] | Array of strings The classes to auto-attach forms to. |
opaque_value | boolean When set to true value will not be clobbered by attachments. (Default: false) |
deleted_attachments[] | Array of strings Filter attachments by value of deleted. Accepts true or false or true,false. (Default: false) |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
List all forms
updated_at[from] | string <date-time> from date |
updated_at[to] | string <date-time> to date |
job_query | string Parameters for filtering Forms by Job Association. Accepts all parameters supported by GET /api/v1/job |
owner_type | string The owner type to filter by. |
deleted | string Filter by value of deleted. Accepts true or false or true,false. (Default: false) |
order_by | string Hash where keys are the fields to sort by and values are the direction of order e.g. order_by[created_at]=desc => return results by created_at desc in descending order If specified, this will override any values in :predicate and :order Accepted fields - id, label, created_at, updated_at |
opaque_value | boolean When set to true value will not be clobbered by attachments. (Default: false) |
id[] | Array of strings Comma-seperated string of owner identifiers. |
owner_id[] | Array of strings Comma-seperated string of owner identifiers. |
deleted_attachments[] | Array of strings Filter attachments by value of deleted. Accepts true or false or true,false. (Default: false) |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Update a form
id required | string The form identifier. |
label | string The label. |
description | string The description. |
schema | string The JSON schema version. |
configuration | json The configuration. |
owner_type | string The owner type. |
owner_id | string The owner identifier. |
parent_id | string The parent form. |
document_id | integer <int32> Form Document ID |
modified | boolean |
form_fields[][id] | Array of strings The field identifier. |
form_fields[][label] | Array of strings The label. |
form_fields[][description] | Array of strings The description. |
form_fields[][type] | Array of strings The type. |
form_fields[][modified] | Array of booleans Determines if the form was modified. |
form_fields[][value] | Array of strings The value. |
form_fields[][initialiser] | Array of json Describes how to initialise the value if one is not specified. |
form_fields[][configuration] | Array of json Describes the parameters of the field. |
form_fields[][validators] | Array of json The validators. |
completed_by_id | integer <int32> The user who completed the form. |
completed_at | string When the form was completed. Defaults to the current time. |
auto_attach[] | Array of strings The classes to auto-attach forms to. |
opaque_value | boolean When set to true value will not be clobbered by attachments. (Default: false) |
deleted_attachments[] | Array of strings Filter attachments by value of deleted. Accepts true or false or true,false. (Default: false) |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Get a form
id required | string The form identifier. |
opaque_value | boolean When set to true value will not be clobbered by attachments. (Default: false) |
deleted_attachments[] | Array of strings Filter attachments by value of deleted. Accepts true or false or true,false. (Default: false) |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Create a field attachment
form_id required | string Form identifier. |
field_id required | string Form Field identifier. |
id | string The attachment identifier |
file required | string <binary> The file. |
attachment_type | string Form note type (e.g. Voice Record, Barcode) |
metadata | json |
Create a client
id | string Assign a UUID. |
first_name | string Name |
last_name | string Name |
company_name | string Company |
string | |
dob | string Date of Birth |
mobile_number | string Mobile Number without the country code. Country code will be based on the set Country |
landline_number | string Phone number |
country | string Must be country code |
physical_address[unit_number] | string |
physical_address[address1] | string |
physical_address[address2] | string |
physical_address[city] | string |
physical_address[state] | string |
physical_address[postcode] | string |
physical_address[country] | string |
physical_address[latitude] | number <float> |
physical_address[longitude] | number <float> |
mailing_address[unit_number] | string |
mailing_address[address1] | string |
mailing_address[address2] | string |
mailing_address[city] | string |
mailing_address[state] | string |
mailing_address[postcode] | string |
mailing_address[country] | string |
mailing_address[latitude] | number <float> |
mailing_address[longitude] | number <float> |
mobile_phones[][id] | Array of strings |
mobile_phones[][number] required | Array of strings |
mobile_phones[][primary_contact] | Array of booleans |
fax | string Fax number |
website | string Website |
business_type | string Business Type |
lead_source | string Lead source |
notes | string Notes |
billed_client_id | integer <int32> The id of the client to bill to |
alternative_contact_id | string Alternative Contact (Client Id) |
code | string Client Code |
medical_conditions | string Medical conditions and allergies |
upload_avatar | string <binary> Client profile picture |
budget | integer <int32> Budget hours |
custom_fields[][custom_field_definition_id] required | Array of integers <int32> |
custom_fields[][value] required | Array of strings |
List all clients. Supports Pagination.
search_text | string Query parameter to search for |
status | string Filter by client status. Accepts comma separated values of statuses. Valid statuses are active, suspended, archived, new |
filter | string An array of filters to search for, i.e. first_name, last_name, email, mobile_number, landline_number, address, billing_client, company_name, website, business_type, job_share |
billed_client_id | integer <int32> Billed Client Id |
job_share | string Whether to filter by Clients who have Job Share enabled |
job_share_plus | string Whether to filter by Clients who have Job Share Plus enabled or not. |
include_deleted | string Included deleted clients in returned set (Default: false) |
include_archived | string Included archived clients in returned set (Default: false) |
modified | string Only get clients with updated time greater than supplied (UTC, String, yyyy-mm-dd hh:mm:ss) |
predicate | string Sort by 'first_name, last_name, email, mobile, landline_number, company_name, address, created_at' (Default: created_at) |
order | string Sort order of results. ASC or DESC (Default: DESC) |
order_by | string Hash where keys are predicates and values are the direction of order e.g. order_by[created_at]=desc => return results by created_at desc in descending order If specified, this will override any values in :predicate and :order Accepted predicates - id, first_name, last_name, email, mobile_number, landline_number, company_name, physical_address, mailing_address, created_at, updated_at Nested predicates physical_address => order_by[physical_address][...]=asc - address1, address2, city, state, country, unit_number e.g order_by[physical_address][address1]=asc mailing_address => order_by[mailing_address][...]=desc - address1, address2, city, state, country, unit_number e.g order_by[mailing_address][address2]=asc |
ids[] | Array of integers <int32> Comma separated list of Client ids |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Update a client
id[] | Array of integers <int32> |
client_id | integer <int32> |
first_name | string Name |
last_name | string Name |
company_name | string Company |
delete_avatar | boolean Delete attached avatar ('true' or 'false') Default: false |
copy_from_client_id | string Client copy associations from client id and delete client |
preferred_staff_ids[] | Array of strings Preferred staff user IDs |
status | string State of Client (ACTIVE, SUSPENDED or ARCHIVED) |
string | |
dob | string Date of Birth |
mobile_number | string Mobile Number without the country code. Country code will be based on the set Country |
landline_number | string Phone number |
country | string Must be country code |
physical_address[unit_number] | string |
physical_address[address1] | string |
physical_address[address2] | string |
physical_address[city] | string |
physical_address[state] | string |
physical_address[postcode] | string |
physical_address[country] | string |
physical_address[latitude] | number <float> |
physical_address[longitude] | number <float> |
mailing_address[unit_number] | string |
mailing_address[address1] | string |
mailing_address[address2] | string |
mailing_address[city] | string |
mailing_address[state] | string |
mailing_address[postcode] | string |
mailing_address[country] | string |
mailing_address[latitude] | number <float> |
mailing_address[longitude] | number <float> |
mobile_phones[][id] | Array of strings |
mobile_phones[][number] required | Array of strings |
mobile_phones[][primary_contact] | Array of booleans |
fax | string Fax number |
website | string Website |
business_type | string Business Type |
lead_source | string Lead source |
notes | string Notes |
billed_client_id | integer <int32> The id of the client to bill to |
alternative_contact_id | string Alternative Contact (Client Id) |
code | string Client Code |
medical_conditions | string Medical conditions and allergies |
upload_avatar | string <binary> Client profile picture |
budget | integer <int32> Budget hours |
custom_fields[][custom_field_definition_id] required | Array of integers <int32> |
custom_fields[][value] required | Array of strings |
Jobs represent units of work to be completed for a clients. Billabes such as material, labour can be attached to a job to track resources committed to the task. Bookings are attached to a job to track which users worked on the job.
Create a job
id | string Assign a UUID. |
title required | string Job title |
client_id[] | Array of integers <int32> Client id/s (separated by ,) |
billed_client_id | integer <int32> Billed to client |
description | string Job description |
reference | string Job reference |
order_number | string Job order number |
priority | string Job priority |
job_status_id | string Job status |
lead_source | string Lead Source |
visits[id] | string Assign a UUID. |
visits[start_date] | string Start time for the visit. UTC in format yyyy-mm-dd 00:00:00 |
visits[duration_hour] | integer <int32> Duration of visit, hour portion |
visits[duration_min] | integer <int32> Duration of visit, minute portion |
visits[end_date] | string End time for the visit |
visits[label] | string Visit label |
visits[detail] | string Visit detail |
visits[multiplier] | string If unassigned, indicate the number of visits. If this value is filled up, assigned_to_id will be ignored. |
visits[assigned_to_id] | string If assigned, send an array of staff ids to assign to. e.g. 1,2,3 |
address[unit_number] | string |
address[address1] | string |
address[address2] | string |
address[city] | string |
address[state] | string |
address[postcode] | string |
address[country] | string |
address[latitude] | number <float> |
address[longitude] | number <float> |
custom_fields[][custom_field_definition_id] required | Array of integers <int32> |
custom_fields[][value] required | Array of strings |
{- "id": "string",
- "id_uuid": "string",
- "title": "string",
- "description": "string",
- "reference": "string",
- "order_number": "string",
- "type": "string",
- "recurrence_id": "string",
- "deleted": "string",
- "scheduled": "string",
- "invoice_count": "string",
- "created_at": "string",
- "updated_at": "string",
- "job_start": "string",
- "job_end": "string",
- "created_by_id": "string",
- "note_count": "string",
- "billable_count": "string",
- "visit_count": "string",
- "message_count": "string",
- "lead_source": "string",
- "quote_count": "string",
- "archived": "string",
- "custom_fields": "string",
- "priority": "string",
- "recurrence_uuid": "string",
- "created_by_uuid": "string",
- "has_uninvoiced_billables": "string",
- "clients": "string",
- "billed_client": "string",
- "address": "string",
- "job_status": "string",
- "company": "string",
- "job_visits": "string",
- "recurrence_setting": "string",
- "recurrence": "string",
- "entity_permissions": "string"
}
Returns a list of your jobs. Supports Pagination.
search_text | string Query for searching |
scheduled | string accepts comma separated values. true => only scheduled false => only un-scheduled true,false => both scheduled and unscheduled (default) |
assigned | string accepts comma separated values. true => only assigned false => only un-assigned true,false => both assigned and un-assigned (default) |
from_date | string Beginning date to search for. UTC in format yyyy-mm-dd hh:mm:ss |
to_date | string End date to search for. UTC in format yyyy-mm-dd hh:mm:ss |
modified | string Only get jobs with updated/modified time greater than supplied (UTC, String, yyyy-mm-dd hh:mm:ss) |
filter | string An array of filters to search for. The available filters are title, reference, description, order_number |
job_status_id | string Filter by job status |
recurrence_id | string Filter by recurrence_id |
client_id | integer <int32> Filter by client_id |
staff_id | integer <int32> Filter by staff_id assigned to the job |
priority_id | string Filter by priority_id (comma separated string e.g. priority_id=0,1,2) |
include_deleted | boolean Included deleted jobs in returned set (Default: false) |
include_deleted_visits | boolean Included deleted jobs visits in returned set (Default: false) |
include_forms | boolean Default: true Include forms in returned set (Default: true) |
predicate | string Enum: "clients.name" "clients.first_name" "reference" "clients.company_name" "job_statuses.color_hex" "job_statuses.color_hex,job_statuses.name" "job_statuses.color,job_statuses.name" "job_statuses.status_group" "job_statuses.name" "job_statuses.sort_order" "addresses.address1" "title" "jobs.created_at" "modified" "priority" "from_date" "to_date" "updated_at" "created_at" "job_status_id" "note_count" "billable_count" Sort by 'clients.name, clients.company_name, job_statuses.name, addresses.address1, title, created_at, modified, priority, from_date, to_date' (Default: created_at) |
order | string Default: "desc" Enum: "asc" "desc" asc or desc (Default: desc) |
ids[] | Array of integers <int32> Comma separated list of Job ids |
search_associations[] | Array of strings Items Enum: "all" "address" "clients" "client_addresses" A comma-separated array of associations to search again. (Allowed Values: all, addresses, clients, client_addresses) (Default: none) |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Updates the specified job by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id[] required | Array of integers <int32> Job Id |
client_id[] | Array of integers <int32> Client id/s (separated by ,) |
billed_client_id | integer <int32> Billed to client |
title | string Job title |
description | string Job description |
reference | string Job reference |
order_number | string Job order number |
priority_id | string Job priority |
job_status_id | string Job status |
lead_source | string Lead Source |
archived | boolean Whether to archive job or not |
address[unit_number] | string |
address[address1] | string |
address[address2] | string |
address[city] | string |
address[state] | string |
address[postcode] | string |
address[country] | string |
address[latitude] | number <float> |
address[longitude] | number <float> |
custom_fields[][custom_field_definition_id] required | Array of integers <int32> |
custom_fields[][value] required | Array of strings |
{- "id": "string",
- "id_uuid": "string",
- "title": "string",
- "description": "string",
- "reference": "string",
- "order_number": "string",
- "type": "string",
- "recurrence_id": "string",
- "deleted": "string",
- "scheduled": "string",
- "invoice_count": "string",
- "created_at": "string",
- "updated_at": "string",
- "job_start": "string",
- "job_end": "string",
- "created_by_id": "string",
- "note_count": "string",
- "billable_count": "string",
- "visit_count": "string",
- "message_count": "string",
- "lead_source": "string",
- "quote_count": "string",
- "archived": "string",
- "custom_fields": "string",
- "priority": "string",
- "recurrence_uuid": "string",
- "created_by_uuid": "string",
- "has_uninvoiced_billables": "string",
- "clients": "string",
- "billed_client": "string",
- "address": "string",
- "job_status": "string",
- "company": "string",
- "job_visits": "string",
- "recurrence_setting": "string",
- "recurrence": "string",
- "entity_permissions": "string"
}
Get a job by id
id required | integer <int32> Job Id |
include_deleted_visits | boolean Included deleted jobs visits in returned set (Default: false) |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
{- "id": "string",
- "id_uuid": "string",
- "title": "string",
- "description": "string",
- "reference": "string",
- "order_number": "string",
- "type": "string",
- "recurrence_id": "string",
- "deleted": "string",
- "scheduled": "string",
- "invoice_count": "string",
- "created_at": "string",
- "updated_at": "string",
- "job_start": "string",
- "job_end": "string",
- "created_by_id": "string",
- "note_count": "string",
- "billable_count": "string",
- "visit_count": "string",
- "message_count": "string",
- "lead_source": "string",
- "quote_count": "string",
- "archived": "string",
- "custom_fields": "string",
- "priority": "string",
- "recurrence_uuid": "string",
- "created_by_uuid": "string",
- "has_uninvoiced_billables": "string",
- "clients": "string",
- "billed_client": "string",
- "address": "string",
- "job_status": "string",
- "company": "string",
- "job_visits": "string",
- "recurrence_setting": "string",
- "recurrence": "string",
- "entity_permissions": "string"
}
Permanently deletes a job. It cannot be undone.
search_text | string Query for searching |
scheduled | string accepts comma separated values. true => only scheduled false => only un-scheduled true,false => both scheduled and unscheduled (default) |
assigned | string accepts comma separated values. true => only assigned false => only un-assigned true,false => both assigned and un-assigned (default) |
from_date | string Beginning date to search for. UTC in format yyyy-mm-dd hh:mm:ss |
to_date | string End date to search for. UTC in format yyyy-mm-dd hh:mm:ss |
modified | string Only get jobs with updated/modified time greater than supplied (UTC, String, yyyy-mm-dd hh:mm:ss) |
filter | string An array of filters to search for. The available filters are title, reference, description, order_number |
job_status_id | string Filter by job status |
recurrence_id | string Filter by recurrence_id |
client_id | integer <int32> Filter by client_id |
staff_id | integer <int32> Filter by staff_id assigned to the job |
priority_id | string Filter by priority_id (comma separated string e.g. priority_id=0,1,2) |
include_deleted | boolean Included deleted jobs in returned set (Default: false) |
include_deleted_visits | boolean Included deleted jobs visits in returned set (Default: false) |
include_forms | boolean Default: true Include forms in returned set (Default: true) |
predicate | string Enum: "clients.name" "clients.first_name" "reference" "clients.company_name" "job_statuses.color_hex" "job_statuses.color_hex,job_statuses.name" "job_statuses.color,job_statuses.name" "job_statuses.status_group" "job_statuses.name" "job_statuses.sort_order" "addresses.address1" "title" "jobs.created_at" "modified" "priority" "from_date" "to_date" "updated_at" "created_at" "job_status_id" "note_count" "billable_count" Sort by 'clients.name, clients.company_name, job_statuses.name, addresses.address1, title, created_at, modified, priority, from_date, to_date' (Default: created_at) |
order | string Default: "desc" Enum: "asc" "desc" asc or desc (Default: desc) |
ids[] | Array of integers <int32> Comma separated list of Job ids |
search_associations[] | Array of strings Items Enum: "all" "address" "clients" "client_addresses" A comma-separated array of associations to search again. (Allowed Values: all, addresses, clients, client_addresses) (Default: none) |
List all Job Visits for a particular Job
job_id required | integer <int32> Job Id |
include_forms | string Default: "false" Include forms in returned set (Default: false). Accepts true/false/short. |
from_date | string <date-time> Start of date range to filter by. Defaults to start of current month. Expects UTC in format yyyy-mm-dd hh:mm:ss'. Job Visits where start and end date intersect with date range will be returned |
to_date | string <date-time> End of date range to filter by. Defaults to end of current month. Expects UTC in format yyyy-mm-dd hh:mm:ss' Job Visits where start and end date intersect with date range will be returned |
any_time | string Default: [true,false] Filter by whether job visits anytime or not. By default all job visits are returned. |
deleted | string Default: [false] Filter by value of deleted. Accepts true or false or true,false. Default: false |
updated_at[from] | string <date-time> from date |
updated_at[to] | string <date-time> to date |
assignment_status | string Default: "all" Enum: "assigned" "unassigned" "all"
|
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Create a job booking
id | string Assign a UUID. |
job_id required | integer <int32> Job to add a visit to |
start_date required | string Start date for the visit. UTC in format yyyy-mm-dd 00:00:00 |
duration_hour required | integer <int32> Duration of visit |
duration_min required | integer <int32> Duration of visit |
label | string Visit label |
detail | string Visit detail |
multiplier | string If unassigned, indicate the number of visits. If this value is filled up, assigned_to_id will be ignored. |
assigned_to_id | string If assigned, send an array of staff ids to assign to. e.g. 1,2,3 (Will make new visit for each staff) |
any_time | boolean An anytime booking decouples start_date and end_date from duration_hour and duration_min. |
form_id | string Any form templates to create with the booking. |
staff_ids[] | Array of integers <int32> Multiple staff per created visit (Ignored if assgined_to_id or multiplier set) |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
List all job bookings
job_query | string Parameters for filtering Jobs. Accepts all parameters supported by GET /api/v1/job |
assigned_staff_ids | string Comma separated list of assigned staff ids |
job_id | integer <int32> Job Id |
include_forms | string Default: "false" Include forms in returned set (Default: false). Accepts true/false/short. |
from_date | string <date-time> Start of date range to filter by. Defaults to start of current month. Expects UTC in format yyyy-mm-dd hh:mm:ss'. Job Visits where start and end date intersect with date range will be returned |
to_date | string <date-time> End of date range to filter by. Defaults to end of current month. Expects UTC in format yyyy-mm-dd hh:mm:ss' Job Visits where start and end date intersect with date range will be returned |
any_time | string Default: [true,false] Filter by whether job visits anytime or not. By default all job visits are returned. |
deleted | string Default: [false] Filter by value of deleted. Accepts true or false or true,false. Default: false |
updated_at[from] | string <date-time> from date |
updated_at[to] | string <date-time> to date |
assignment_status | string Default: "all" Enum: "assigned" "unassigned" "all"
|
ids[] | Array of integers <int32> Comma separated list of Job Visit ids |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Update a job booking
id required | integer <int32> Job Visit Id |
start_date | string Start date for the visit. UTC in format yyyy-mm-dd 00:00:00 |
duration_hour | integer <int32> Duration of visit |
duration_min | integer <int32> Duration of visit |
job_id | integer <int32> Job Id |
label | string Visit label |
detail | string Visit detail |
assigned_to_id | string (Deprecated) Staff id to assign to |
any_time | boolean An anytime booking decouples start_date and end_date from duration_hour and duration_min. |
staff_ids[] | Array of integers <int32> Staff ids as a comma separated string |
form_id | string Any form templates to create on the booking, and existing forms. Any forms not specified here will be deleted from the booking. Accepts comma separated string of ids |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
List all job bookings for a job. (DEPRECATING. use GET /job/:id/job_visit instead)
job_id required | integer <int32> Job Id |
from_date | string <date-time> Default: "2021-11-01T00:00:00.000Z" Start of date range to filter by. Defaults to start of current month. Expects UTC in format yyyy-mm-dd hh:mm:ss'. Job Visits where start and end date intersect with date range will be returned |
to_date | string <date-time> Default: "2021-11-30T23:59:59.999Z" End of date range to filter by. Defaults to end of current month. Expects UTC in format yyyy-mm-dd hh:mm:ss' Job Visits where start and end date intersect with date range will be returned |
any_time | string Default: [true,false] Filter by whether job visits anytime or not. By default all job visits are returned. |
include_deleted | boolean Included deleted job visits in returned set (Default: false) |
modified_after | string <date-time> Get visits that have been modified after this time |
assignment_status | string Default: "all" Enum: "assigned" "unassigned" "all"
|
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Create job note attachment
id | string Assign a UUID. |
job_note_id required | integer <int32> Job Note ID |
file required | string <binary> JobNoteAttachment file |
attachment_type | string Job note type (e.g. Voice Record, Barcode) |
metadata | json |
List all job note attachments
order | string Default: "created_at" Enum: "created_at" "updated_at" attribute to order by. Default created_at |
order_direction | string Default: "asc" Enum: "asc" "desc" order direction, (asc, desc). Default asc |
job_note_ids[] | Array of integers <int32> Comma separated list of Job Note IDs |
ids[] | Array of integers <int32> Comma separated list of IDs |
Create a job note
id | string Assign a UUID. |
job_id required | integer <int32> Job to add a note to |
description | string Note description |
heading | string Note Heading |
start_time | string <date-time> Start DateTime. UTC in format yyyy-mm-dd hh:mm:ss |
file | string <binary> Note file |
job_visit_id | integer <int32> Job visit id |
metadata | json |
attachment_type | string Job note type (e.g. Voice Record, Barcode) |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
List all job notes. Supports Pagination.
modified | string <date-time> Get notes modified after this time |
job_query | string Parameters for filtering Jobs. Accepts all parameters supported by GET /api/v1/job |
type | string Enum: "NORMAL" "DRAFT_INVOICE" "APPROVED_INVOICE" "JOB_SHEET_DOCUMENT" "QUOTE_DOCUMENT" "PURCHASE_ORDER_DOCUMENT" "JOB_SHEET_WITH_STATUS_DOCUMENT" Filter Notes by type. Valid types are: NORMAL, DRAFT_INVOICE, APPROVED_INVOICE,JOB_SHEET_DOCUMENT, QUOTE_SHEET_DOCUMENT, PURCHASE_ORDER_DOCUMENT, JOB_SHEET_WITH_STATUS |
order | string Default: "DESC" Enum: "ASC" "DESC" "asc" "desc" ASC or DESC (Default: DESC) |
include_deleted | boolean Include deleted notes? |
job_id | integer <int32> Job id |
ids[] | Array of integers <int32> Comma separated list of Job Note ids |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Update a job note
id required | integer <int32> Job Note Id |
start_time | string Start DateTime. UTC in format yyyy-mm-dd hh:mm:ss |
description | string Note description |
heading | string Note Heading |
file | string <binary> Note file |
delete_file | boolean Delete attached file (Default: false) |
job_visit_id | integer <int32> Job visit id |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
A job always has some job status assigned which helps you understand the current status of a job.
Update a job status
id required | integer <int32> |
color_hex | string The status colour in hexadecimal format e.g. A3FF05. |
name | string The status name. |
sort_order | integer <int32> The sort order within the status_group. A sort_order of 1 denotes the parent of the status. Side Effect: All sort_orders in the status_group are packed. Any sort_orders greater or equal to the set sort_order are ordered after. |
status_group | integer <int32> The group the status belongs to. Only a parent status'es status_group can be modified. Side Effect: All active status_groups are packed. Any status_groups greater or equal to the set status_group are ordered after. |
{- "id": "string",
- "color_hex": "string",
- "name": "string",
- "sort_order": "string",
- "created_at": "string",
- "updated_at": "string",
- "status_group": "string",
- "deleted": "string"
}
Set job statuses
job_status[][group][][id] | Array of strings |
job_status[][group][][color_hex] required | Array of strings The status colour in hexadecimal format e.g. A3FF05. |
job_status[][group][][name] required | Array of strings The status name. |
{- "id": "string",
- "color_hex": "string",
- "name": "string",
- "sort_order": "string",
- "created_at": "string",
- "updated_at": "string",
- "status_group": "string",
- "deleted": "string"
}
Create a job status
color_hex required | string The status colour in hexadecimal format e.g. A3FF05. |
name required | string The status name. |
sort_order required | integer <int32> The sort order within the status_group. A sort_order of 1 denotes the parent of the status group. Sort_order is unique withen a group. |
status_group | integer <int32> The group the status belongs to. |
{- "id": "string",
- "color_hex": "string",
- "name": "string",
- "sort_order": "string",
- "created_at": "string",
- "updated_at": "string",
- "status_group": "string",
- "deleted": "string"
}
List all job statuses. Supports Pagination.
include_deleted | boolean Include deleted job statuses in the response? (Default: false) |
modified | string <date-time> Only get job statuses with a updated time greater than supplied (UTC, String, yyyy-mm-dd hh:mm:ss) |
{- "id": "string",
- "color_hex": "string",
- "name": "string",
- "sort_order": "string",
- "created_at": "string",
- "updated_at": "string",
- "status_group": "string",
- "deleted": "string"
}
Get staff capacity
start_at | string <date-time> When to begin listing capacity. Defaults to the start of the current week. (Company Timezone Required) |
end_at | string <date-time> When to end listing capacity. Defaults to the end of the current week. (Company Timezone Required) |
id[] | Array of integers <int32> A comma-seperated list of staff identifiers. |
Update a staff
id[] | Array of integers <int32> Staff Id |
delete_avatar | boolean Delete attached avatar ('true' or 'false') Default: false |
status | string Enum: "active" "deactivated" User Status. Accepted values: active, deactivated |
string | |
first_name | string Name |
last_name | string Name |
mobile_number | string Mobile Number without the country code. Country code will be based on the set Country |
login | string Login |
landline_number | string Landline Number without the country code. Country code will be based on the set Country |
company_name | string Company |
country | string Must be country code |
password | string Password. If this is not set, it is assumed that an invite will be sent |
role_id | integer <int32> Staff role. Default role is Employee |
upload_avatar | string <binary> User profile picture |
physical_address[unit_number] | string |
physical_address[address1] | string |
physical_address[address2] | string |
physical_address[city] | string |
physical_address[state] | string |
physical_address[postcode] | string |
physical_address[country] | string |
physical_address[latitude] | number <float> |
physical_address[longitude] | number <float> |
mailing_address[unit_number] | string |
mailing_address[address1] | string |
mailing_address[address2] | string |
mailing_address[city] | string |
mailing_address[state] | string |
mailing_address[postcode] | string |
mailing_address[country] | string |
mailing_address[latitude] | number <float> |
mailing_address[longitude] | number <float> |
staff_colour | string Staff color |
work_group_id | string Array of work group ids E.g. 1,2,3 |
budget | integer <int32> Max budget hours |
min_budget | integer <int32> Min budget hours |
custom_fields[][custom_field_definition_id] required | Array of integers <int32> |
custom_fields[][value] required | Array of strings |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Get a staff by id
id required | integer <int32> Staff ID |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Create a staff
id | string Assign a UUID. |
string | |
first_name | string Name |
last_name | string Name |
mobile_number | string Mobile Number without the country code. Country code will be based on the set Country |
login | string Login |
landline_number | string Landline Number without the country code. Country code will be based on the set Country |
company_name | string Company |
country | string Must be country code |
password | string Password. If this is not set, it is assumed that an invite will be sent |
role_id | integer <int32> Staff role. Default role is Employee |
upload_avatar | string <binary> User profile picture |
physical_address[unit_number] | string |
physical_address[address1] | string |
physical_address[address2] | string |
physical_address[city] | string |
physical_address[state] | string |
physical_address[postcode] | string |
physical_address[country] | string |
physical_address[latitude] | number <float> |
physical_address[longitude] | number <float> |
mailing_address[unit_number] | string |
mailing_address[address1] | string |
mailing_address[address2] | string |
mailing_address[city] | string |
mailing_address[state] | string |
mailing_address[postcode] | string |
mailing_address[country] | string |
mailing_address[latitude] | number <float> |
mailing_address[longitude] | number <float> |
staff_colour | string Staff color |
work_group_id | string Array of work group ids E.g. 1,2,3 |
budget | integer <int32> Max budget hours |
min_budget | integer <int32> Min budget hours |
custom_fields[][custom_field_definition_id] required | Array of integers <int32> |
custom_fields[][value] required | Array of strings |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
List all staff. Supports Pagination.
search_text | string Query parameter to search for |
role_id | string Comma separated values of Role IDs to filter by |
work_group | string Limit Staff to members of specified Work groups (Comma separated list of work goup ids) |
deleted | string Filter by :deleted. Accepts values separated by comma, i.e. true or false or true,false. Default: false |
status | string Comma separated list of statuses to filter by. Accepts: invited, active, deactivated |
modified | string <date-time> Limit list to Staff that have been modified after provided date in UTC (yyyy-mm-dd hh:mm:ss) |
last_location_modified | string <date-time> Limit list to Staffthat have been modified or has had its last location string modified after provided date in UTC (yyyy-mm-dd hh:mm:ss) |
filter | string An array of filters to search for. The available filters are first_name, last_name, email, physical_address, mailing_address, company_name, mobile_number, landline_number, status, role |
jsp_staff | boolean true or false. default is All |
include_deleted | boolean Included deleted Staff in returned set (Default: false). This will be deprecated so favour :deleted over :include_deleted |
active | boolean Deprecating Soon. Please use :status filter instead. Filters by whether Staff member is active or not. |
invited | boolean Deprecating Soon. Please use :status filter instead. Filters by whether Staff member has logged into their account or not. If true, only Staff that have never logged in will be returned If false, only Staff that have logged into their account at least once will be returned |
predicate | string Default: "created_at" Deprecating soon. Please migrate to use :order_by. Sort Staff by field (first_name, last_name, mobile, landline_number, status, role_id, created_at) |
order | string Default: "DESC" Deprecating soon. Please migrate to use :order_by. Order of records |
id[] | Array of integers <int32> Comma separated list of Staff id |
ids[] | Array of integers <int32> Comma separated list of Staff id. Will be deprecated so favour using :id over :ids |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Get current staff logged in
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Create an invoice
id | string Assign a UUID. |
client_id required | integer <int32> ID of Client to create Invoice for |
billables[][id] | Array of integers <int32> Billable ID. If specified, other parameters are ignored |
billables[][type] | Array of strings Items Enum: "Billables::Part" "Billables::Time" Billable type |
billables[][job_id] | Array of integers <int32> Job to create against |
billables[][staff_id] | Array of integers <int32> Staff associated with billable |
billables[][time_start] | Array of strings UTC in format yyyy-mm-dd hh:mm:ss |
billables[][time_end] | Array of strings UTC in format yyyy-mm-dd hh:mm:ss. Required if type is Billables::Time |
billables[][description] | Array of strings Time description |
billables[][quantity] | Array of numbers <float> Rate Multiplier |
billables[][company_charge_id] | Array of integers <int32> The hourly rate at which the job is charged |
billables[][company_part_id] | Array of integers <int32> Part ID used |
billables[][item_id] | Array of integers <int32> Company Charge/Part ID |
billables[][is_tax_inclusive] | Array of booleans Determines if the billable is tax inclusive or exclusive |
billables[][code] | Array of strings Billable Code |
billables[][cost] | Array of numbers <float> Billable cost |
billables[][price] | Array of numbers <float> Billable price |
billables[][discount] | Array of numbers <float> Discount Rate to apply to total before tax. Time total will be quantity x charge * (100 - discount)/100 |
billables[][name] | Array of strings Name of billable |
billables[][persist] | Array of booleans Creates a company part or charge derived from this billable. |
billables[][unit] | Array of strings Items Enum: "None" "Hour" "Day" Unit of measurement for Charge rate. Default: None. |
number | string Unique Invoice Number |
reference | string Invoice reference |
status_id | integer <int32> Invoice Status ID |
document_id | integer <int32> Invoice Document ID |
description | string Description of Invoice |
notes | string Invoice notes |
discount_amount | string Discount amount for Invoice |
discount_unit | string Enum: "money" "percent" Unit of discount_amount. Can be either 'money' or 'percent'. Default is 'money' |
compound_tax_rate | string Tax Rate that is applied to Billables tax inclusive total |
deposit_amount | string Deposit amount for Invoice |
deposit_unit | string Enum: "money" "percent" Unit of deposit. Can be either 'money' or 'percent'. Default is 'money' |
issued_at | string Date invoice is issued in UTC. Defaults to current time |
List all invoices. Supports Pagination.
job_query | string Parameters for filtering Jobs. Accepts all parameters supported by GET /api/v1/job |
client_id | integer <int32> Filter by Client ID |
status_id | string Status ID |
job_id | integer <int32> Filter by Job ID |
search_text | string Query parameter to search for |
filter | string An array of filters to search for. The available filters are number, client, job |
created_at[from] | string <date-time> from date |
created_at[to] | string <date-time> to date |
updated_at[from] | string <date-time> from date |
updated_at[to] | string <date-time> to date |
due_on[from] | string <date-time> from date |
due_on[to] | string <date-time> to date |
issued_at[from] | string <date-time> from date |
issued_at[to] | string <date-time> to date |
deleted | string Filter by value of deleted. Accepts true or false or true,false. Default: false |
locked | string Filter by value of locked. Accepts true or false or true,false. Default: true,false |
order_by | string Hash where keys are the fields to sort by and values are the direction of order e.g. order_by[created_at]=desc => return results by created_at desc in descending order If specified, this will override any values in :predicate and :order Accepted fields - id, number, client, status, name, total, due_on, created_at, updated_at Nested fields status => order_by[status][...]=asc - name, sort_order, status_group, color_hex client => order_by[client][...]=desc - company_name, name, first_name, last_name |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Update an invoice
id required | integer <int32> ID of Invoice to Edit |
client_id | integer <int32> ID of Client to create Invoice for |
billables[][id] | Array of strings Billable ID. If specified, other parameters are ignored |
billables[][type] | Array of strings Items Enum: "Billables::Part" "Billables::Time" Billable type |
billables[][job_id] | Array of integers <int32> Job to create against |
billables[][staff_id] | Array of integers <int32> Staff associated with billable |
billables[][time_start] | Array of strings UTC in format yyyy-mm-dd hh:mm:ss |
billables[][time_end] | Array of strings UTC in format yyyy-mm-dd hh:mm:ss. Required if type is Billables::Time |
billables[][description] | Array of strings Time description |
billables[][quantity] | Array of numbers <float> Rate Multiplier |
billables[][company_charge_id] | Array of integers <int32> The hourly rate at which the job is charged |
billables[][company_part_id] | Array of integers <int32> Part ID used |
billables[][item_id] | Array of integers <int32> Company Charge/Part ID |
billables[][code] | Array of strings Billable Code |
billables[][cost] | Array of numbers <float> Billable cost |
billables[][price] | Array of numbers <float> Billable price |
billables[][sale_code_id] | Array of integers <int32> Sales Tax Rate associated with the billable |
billables[][discount] | Array of numbers <float> Discount Rate to apply to total before tax. Time total will be quantity x charge * (100 - discount)/100 |
billables[][name] | Array of strings Name of billable |
billables[][is_tax_inclusive] | Array of booleans Determines if the billable is tax inclusive or exclusive |
billables[][unit] | Array of strings Items Enum: "None" "Hour" "Day" Unit of measurement for Charge rate. Default: None. |
number | string Unique Invoice Number |
reference | string Invoice reference |
status_id | integer <int32> Invoice Status ID |
document_id | integer <int32> Invoice Document ID |
description | string Description of Invoice |
notes | string Invoice notes |
discount_amount | string Discount amount for Invoice |
discount_unit | string Enum: "money" "percent" Unit of discount_amount. Can be either 'money' or 'percent'. Default is 'money' |
compound_tax_rate | string Tax Rate that is applied to Billables tax inclusive total |
deposit_amount | string Deposit amount for Invoice |
deposit_unit | string Enum: "money" "percent" Unit of deposit. Can be either 'money' or 'percent'. Default is 'money' |
locked | boolean Whether to lock Invoice or not |
issued_at | string Date invoice is issued in UTC |
List all billables for invoice. Supports Pagination
id required | integer <int32> ID of Invoice to fetch |
deleted | string Filter by value of deleted. Accepts true or false or true,false. Default: false |
List all payments for an invoice. Supports Pagination.
id required | integer <int32> ID of Invoice to fetch |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Generate Pdf of Invoice using a template
id required | integer <int32> ID of Invoice |
document_id | integer <int32> ID of Document template to use. The default template is used by default |
disposition | string Enum: "inline" "attachment" How to return pdf, inline or attachment |
Create a quote
id | string Assign a UUID. |
client_id required | integer <int32> ID of Client to create Quote for |
job_address[unit_number] | string |
job_address[address1] | string |
job_address[address2] | string |
job_address[city] | string |
job_address[state] | string |
job_address[postcode] | string |
job_address[country] | string |
job_address[latitude] | number <float> |
job_address[longitude] | number <float> |
job_name required | string Name Quote |
status_id | integer <int32> Quote Status ID |
document_id | integer <int32> Quote Document ID |
job_id | integer <int32> ID of Job relating to Quote |
job_description | string Description of Quote |
notes | string Quote notes |
issued_at | string Date of Issue |
expires_on | string Expiry Date |
billables[][id] | Array of integers <int32> Other params ignored if this is specified |
billables[][type] | Array of strings Items Enum: "Billables::Part" "Billables::Time" Billable type |
billables[][time_start] | Array of strings UTC in format yyyy-mm-dd hh:mm:ss |
billables[][name] | Array of strings Name |
billables[][quantity] | Array of numbers <float> Rate Multiplier |
billables[][time_end] | Array of strings UTC in format yyyy-mm-dd hh:mm:ss. Required if type is Billables::Time |
billables[][company_charge_id] | Array of integers <int32> The hourly rate at which the job is charged |
billables[][company_part_id] | Array of integers <int32> Part ID used |
billables[][staff_id] | Array of integers <int32> Staff ID |
billables[][persist] | Array of booleans Creates a company part or charge derived from this billable. |
billables[][job_visit_id] | Array of integers <int32> Job visit if applicable |
billables[][client_id] | Array of integers <int32> Client linked to billable |
billables[][cost] | Array of numbers <float> Time cost |
billables[][charge] | Array of numbers <float> Value to charge to client |
billables[][discount] | Array of numbers <float> Discount Rate to apply to total before tax. Time total will be quantity x charge * (100 - discount)/100 |
billables[][item_id] | Array of integers <int32> Company Time/Part ID to use as a template |
billables[][description] | Array of strings Time description |
billables[][file] | Array of file Billable File |
billables[][unit] | Array of strings Unit of measurement for Charge rate. |
billables[][code] | Array of strings Billable Charge Code |
billables[][invoice_id] | Array of integers <int32> ID of Invoice associated with Billable |
billables[][is_tax_inclusive] | Array of booleans Determines if the billable is tax inclusive or exclusive |
billables[][sale_code_id] | Array of integers <int32> Sales Tax Rate associated with the billable |
discount_amount | string Discount amount for Quote |
discount_unit | string Enum: "money" "percent" Unit of discount_amount. Can be either 'money' or 'percent'. Default is 'money' |
deposit_amount | string Amount of expected deposit for Quote |
deposit_unit | string Enum: "money" "percent" Unit of deposit_amount. Can be either 'money' or 'percent'. Default is 'money' |
compound_tax_rate | string Tax Rate that is applied to Billables tax inclusive total |
List all quotes. Supports Pagination.
job_query | string Parameters for filtering Jobs. Accepts all parameters supported by GET /api/v1/job |
client_id | integer <int32> Filter by Client ID |
status_id | string Status ID |
job_id | integer <int32> Filter by Job ID |
search_text | string Query parameter to search for |
filter | string An array of filters to search for. The available filters are number, job_name, client |
created_at[from] | string <date-time> from date |
created_at[to] | string <date-time> to date |
updated_at[from] | string <date-time> from date |
updated_at[to] | string <date-time> to date |
deleted | string Filter by value of deleted. Accepts true or false or true,false. Default: false |
order_by | string Hash where keys are the fields to sort by and values are the direction of order e.g. order_by[created_at]=desc => return results by created_at desc in descending order If specified, this will override any values in :predicate and :order Accepted fields - id, number, client, status, job_name, total, created_at, updated_at Nested fields status => order_by[status][...]=asc - name, sort_order, status_group, color_hex client => order_by[client][...]=desc - company_name, name, first_name, last_name |
Update a quote
id required | integer <int32> ID of Quote to Edit |
client_id | integer <int32> ID of Client to create Quote for |
job_address[unit_number] | string |
job_address[address1] | string |
job_address[address2] | string |
job_address[city] | string |
job_address[state] | string |
job_address[postcode] | string |
job_address[country] | string |
job_address[latitude] | number <float> |
job_address[longitude] | number <float> |
status_id | integer <int32> Quote Status ID |
document_id | integer <int32> Quote Document ID |
job_name | string Name of Quote |
job_id | integer <int32> ID of Job relating to Quote |
job_description | string Description of Quote |
notes | string Quote notes |
issued_at | string Date of Issue |
expires_on | string Expiry Date |
discount_amount | string Discount amount for Quote |
billables[][id] | Array of integers <int32> Other params ignored if this is specified |
billables[][company_charge_id] | Array of integers <int32> The hourly rate at which the job is charged |
billables[][company_part_id] | Array of integers <int32> Part ID used |
billables[][staff_id] | Array of integers <int32> Staff ID |
discount_unit | string Enum: "money" "percent" Unit of discount_amount. Can be either 'money' or 'percent'. Default is 'money' |
deposit_amount | string Amount of expected deposit for Quote |
deposit_unit | string Enum: "money" "percent" Unit of deposit_amount. Can be either 'money' or 'percent'. Default is 'money' |
compound_tax_rate | string Tax Rate that is applied to Billables tax inclusive total |
Generate Pdf of Quote using a template
id required | integer <int32> ID of Quote |
document_id | integer <int32> ID of Document template to use. The default template is used by default |
disposition | string Enum: "inline" "attachment" How to return pdf, inline or attachment |
Create a material
id | string Assign a UUID. |
code | string Part code |
sale_price required | number <float> Price |
description | string Part description |
name | string Part name |
purchase_price | number <float> Price |
purchase_code_id | integer <int32> Tax rate id |
sale_code_id | integer <int32> Tax rate id |
profit | number <float> Profit |
margin | number <float> Margin |
tax_inclusive | boolean Is the sale_price tax inclusive? |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
List all materials. Supports Pagination.
search_text | string Query parameter to search for |
filter | string Comma separated list of fields to search on supported values: item_code, name, description. Searches on all of them by default |
modified | string Get Company Charges modified after this (UTC, String, yyyy-mm-dd hh:mm:ss) |
integration_only | boolean Force search to be performed using Integrated Inventory Management API only, e.g. Xero. Requires search_text to be configured. |
ids | string see :id. Will be deprecated soon. Please migrate to use :id parameter instead |
predicate | string Sort by 'created_at item_code description sale_price margin purchase_price profit' (Default: created_at). If :order_by is used, this is ignored. Please migrate to use :order_by |
order | string Default: "DESC" ASC or DESC (Default: DESC). If :order_by is used, this is ignored. Please migrate to use :order_by |
id[] | Array of integers <int32> Comma separated list of Company Part ids to filter by |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Update a material
id required | integer <int32> Company Part Id |
code | string Part code |
sale_price | number <float> Price |
description | string Part description |
name | string Part name |
purchase_price | number <float> Price |
purchase_code_id | integer <int32> Tax rate id |
sale_code_id | integer <int32> Tax rate id |
profit | number <float> Profit |
margin | number <float> Margin |
tax_inclusive | boolean Is the sale_price tax inclusive? |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Create a labour
id | string Assign a UUID. |
name | string Name of charge |
charge required | number <float> Charge rate |
cost required | number <float> Cost rate |
code | string Unique Identifier for the Charge |
unit | string Unit of measurement for Charge rate |
tax_rate_id | integer <int32> Tax rate id |
sales_tax_rate_id | integer <int32> Sales Tax rate id. Should replace :tax_rate_id |
description | string Description of the charge |
staff_charge_associations | string Array of staff that will be associated to the charge. E.g. 1,2 |
client_charge_associations | string Array of clients that will be associated to the charge. E.g. 1,2 |
billable_category_name | string Company billable category name |
origin_id | string External Identifier. Only available for NDIS |
tax_inclusive | boolean Is the charge tax inclusive? |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
List all labours. Supports Pagination.
job_id | integer <int32> Job id |
staff_id | integer <int32> Staff id |
modified | string Get Company Charges modified after this (UTC, String, yyyy-mm-dd hh:mm:ss) |
search_text | string Query parameter to search for |
filter | string Fields to filter Company Charges as comma separated list. Supports: name, description, billable_category_name (if NDIS component enabled) Uses all by default |
integration_only | boolean Force search to be performed using Integrated Inventory Management API only, e.g. Xero. Requires search_text to be configured. |
predicate | string Sort by 'name created_at item_code description sale_price margin purchase_price profit' (Default: created_at). If :order_by is used, this is ignored. Please migrate to use :order_by |
order | string Default: "DESC" ASC or DESC (Default: DESC). If :order_by is used, this is ignored. Please migrate to use :order_by |
filter_fields | string See :filter. Will be deprecated soon. Please migrate to use :filter parameter instead. |
filter_term | string See :search_text. Will be deprecated soon. Please migrate to use :search_text parameter instead. |
id[] | Array of integers <int32> Comma separated list of Company Charges ids |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
ids[] | Array of integers <int32> see :id. Will be deprecated soon. Please migrate to use :id parameter instead |
Update a labour
id required | integer <int32> Company Charge Id |
name | string Name of charge |
charge required | number <float> Charge rate |
cost required | number <float> Cost rate |
description | string Description of the charge |
code | string Unique Identifier for the Charge |
unit | string Unit of measurement for Charge rate. |
tax_rate_id | integer <int32> Tax rate id |
sales_tax_rate_id | integer <int32> Sales Tax rate id. Should replace :tax_rate_id |
staff_charge_associations | string Array of staff that will be associated to the charge. E.g. 1,2 |
client_charge_associations | string Array of clients that will be associated to the charge. E.g. 1,2 |
billable_category_name | string Company billable category name |
origin_id | string External Identifier. Only available for NDIS |
tax_inclusive | boolean Is the charge tax inclusive? |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Update a labour charge
id required | integer <int32> Company Charge Id |
name | string Name of charge |
charge | number <float> Charge rate |
cost | number <float> Cost rate |
description | string Description of the charge |
code | string Unique Identifier for the Charge |
unit | string Unit of measurement for Charge rate. |
tax_rate_id | integer <int32> Tax rate id |
sales_tax_rate_id | integer <int32> Sales Tax rate id. Should replace :tax_rate_id |
staff_charge_associations | string Array of staff that will be associated to the charge. E.g. 1,2 |
client_charge_associations | string Array of clients that will be associated to the charge. E.g. 1,2 |
billable_category_name | string Company billable category name |
origin_id | string External Identifier. Only available for NDIS |
tax_inclusive | boolean Is the charge tax inclusive? |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Create a billable
id | string Assign a UUID. |
type required | string Enum: "Billables::Time" "Billables::Part" Type of Billable |
job_id | integer <int32> Job to create against. Required if quote_id is not specified |
quote_id | integer <int32> Quote to create against. Required if job_id is not specified |
staff_id required | integer <int32> Staff with the time billable |
time_start required | string UTC in format yyyy-mm-dd hh:mm:ss |
name | string Name of billable |
billable required | boolean Indicate whether this is billable or not |
quantity required | number <float> Rate Multiplier |
time_end | string UTC in format yyyy-mm-dd hh:mm:ss. Required if type is Billables::Time |
job_visit_id | integer <int32> Job visit if applicable |
client_id | integer <int32> Client linked to billable |
cost | number <float> Time cost |
charge | number <float> Value to charge to client |
discount | number <float> Discount Rate to apply to total before tax. Time total will be quantity x charge * (100 - discount)/100 |
item_id | integer <int32> Company Time/Part ID to use as a template |
description | string Time description |
file | string <binary> Billable File |
unit | string Unit of measurement for Charge rate. |
code | string Billable Charge Code |
invoice_id | integer <int32> ID of Invoice associated with Billable |
company_charge_id | integer <int32> The hourly rate at which the job is charged |
company_part_id | integer <int32> Part ID used |
is_tax_inclusive | boolean Determines if the billable is tax inclusive or exclusive |
sale_code_id | integer <int32> Sales Tax Rate associated with the billable |
List all billables. Supports Pagination.
job_query | string Parameters for filtering Jobs. Accepts all parameters supported by GET /api/v1/job |
search_text | string Query parameter to search for |
filter | string An array of filters to search for |
scheduled | boolean true or false. default is All |
from_date | string Beginning date to search for. UTC in format yyyy-mm-dd hh:mm:ss |
to_date | string End date to search for. UTC in format yyyy-mm-dd hh:mm:ss |
job_status_id | string Filter by job status |
billable_client_id | integer <int32> Limit by the billable client |
created_at[from] | string <date-time> from date |
created_at[to] | string <date-time> to date |
updated_at[from] | string <date-time> from date |
updated_at[to] | string <date-time> to date |
invoiced | string Filter by value of invoiced |
billable | string Filter by value of billable |
type | string Filter by type, Billables::Part or Billables::Time |
types | string 'time', 'part' comma separated (Default: All) Deprecating soon, use :type |
only_invoiced | boolean Get only invoiced billables or not (Default: All) Deprecating soon, use :invoiced |
only_billable | boolean Get only billables flagged as billable (Default: All) Deprecating soon, use :billable |
predicate | string Sort by 'name, code, type, unit, cost, charge, margin, sub_total, computed_tax, total, quantity, created_at (Default), updated_at, id |
order | string ASC or DESC (Default: DESC) |
modified | string Get billables modified only after this time Deprecating soon, use :updated_at |
id[] | Array of integers <int32> Comma separated list of Billable ids |
job_id[] | Array of integers <int32> Comma separated list of Job ids |
invoice_id[] | Array of integers <int32> Filter set on a single or multiple invoice ID(s) |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Update a billable
id required | integer <int32> Billable Id |
staff_id | integer <int32> Staff associated with billable |
name | string Name of billable |
job_visit_id | integer <int32> Job visit if applicable |
client_id | integer <int32> Client linked to billable |
item_id | integer <int32> Company Part/Charge to use as a template |
time_start | string UTC in format yyyy-mm-dd hh:mm:ss |
time_end | string UTC in format yyyy-mm-dd hh:mm:ss |
quantity | number <float> Rate Multiplier |
charge | number <float> Value to charge to client |
unit | string Unit of measurement for Charge rate. |
code | string Billable Charge Code |
discount | number <float> Discount Rate to apply to total before tax. Time total will be quantity x charge * (100 - discount)/100 |
cost | number <float> Time cost |
description | string Time description |
billable | boolean Indicate whether this is billable or not |
file | string <binary> Billable File |
delete_file | boolean Delete attached file (Default: false) |
invoice_id | integer <int32> ID of Invoice associated with Billable |
is_tax_inclusive | boolean Determines if the billable is tax inclusive or exclusive |
sale_code_id | integer <int32> Sales Tax Rate associated with the billable |
Each custom field is appointed a custom field definition that can belong to jobs, clients, and users.
The definition acts as an identifier, label, and what entity type supports it.
Each entity where its type is associated to a custom field definition contains a custom_fields
field which is an array of objects containing the custom_field_definition_id
and the assigned value.
Example, the following definitions
GET /api/v1/custom_field_definition
[
{
"id":549,
"name":"Date Shipped",
"for_model":"job"
}
},
{
"id":550,
"name":"Courier",
"for_model":"job"
}
]
are mapped to jobs.custom_fields
from
GET /api/v1/job/actual
[
{
"id":107484,
"title":"Features on GeoNext [Demo]",
"description":"Custom Fields Example",
"reference":"1001",
"type":"Jobs::Actual",
"custom_fields":[
{
"value":"2020/01/01",
"custom_field_definition_id":549
},
{
"value":"DHL",
"custom_field_definition_id":550
}
]
}
]
List all custom field definitions
for_model[] | Array of strings Items Enum: "job" "client" "user" Filter by for_model. Accepts comma-separated values. |
field_group[] | Array of strings Filter by field_group. Accepts comma-separated values. |
required | boolean Filter by required |
modified | string <date-time> Retrieve fields modified after the specified date. |
deleted[] | Array of strings Filter by deleted. Supports an array of values. e.g. false,true => deleted or not deleted true => only deleted false => only non-deleted (default) |
Create a timer type
id | string The id of the type. |
name required | string The name of the type. |
display_order | integer <int32> An arbitrary index used for display ordering. |
color_hex | string The color code for the type e.g. #ff0000. |
is_default | boolean Determines if this type is default. |
Update a timer type
id required | string The TimerType identifier. |
name | string The name of the type. |
display_order | integer <int32> An arbitrary index used for display ordering. |
color_hex | string The color code for the type e.g. #ff0000. |
is_default | boolean Determines if this type is default. |
origin | string The origin of the TimerType. |
origin_id | string The origin_id of the TimerType. |
origin_account_id | string The origin_account_id of the TimerType. |
Update a timer
id required | string The Timer identifier. |
timer_type_id | string The TimerType identifier. |
start_at | string <date-time> When the Timer started. Defaults to current time. |
end_at | string <date-time> When the Timer ended. |
time_zone | string The timezone the timer was created in. |
start_address[unit_number] | string |
start_address[address1] | string |
start_address[address2] | string |
start_address[city] | string |
start_address[state] | string |
start_address[postcode] | string |
start_address[country] | string |
start_address[latitude] | number <float> |
start_address[longitude] | number <float> |
end_address[unit_number] | string |
end_address[address1] | string |
end_address[address2] | string |
end_address[city] | string |
end_address[state] | string |
end_address[postcode] | string |
end_address[country] | string |
end_address[latitude] | number <float> |
end_address[longitude] | number <float> |
job_id | integer <int32> The Job the Timer belongs to. |
owner_id | integer <int32> The owner of the Timer. |
authority_id | integer <int32> The approver of the Timer. Defaults to the current user when a Approved/Declined TimerApprovalStatus is set. |
approval_status_id | string The TimerApprovalStatus identifier. |
notes | string Auxillary information about the Timer. |
state | string A generic field used for hinting. |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Create a Timer.
id | string The Timer identifier. |
timer_type_id | string The TimerType identifier. |
start_at | string <date-time> Default: "2021-11-04T03:03:09.241Z" When the Timer started. Defaults to current time. |
end_at | string <date-time> When the Timer ended. |
time_zone | string The timezone the timer was created in. |
start_address[unit_number] | string |
start_address[address1] | string |
start_address[address2] | string |
start_address[city] | string |
start_address[state] | string |
start_address[postcode] | string |
start_address[country] | string |
start_address[latitude] | number <float> |
start_address[longitude] | number <float> |
end_address[unit_number] | string |
end_address[address1] | string |
end_address[address2] | string |
end_address[city] | string |
end_address[state] | string |
end_address[postcode] | string |
end_address[country] | string |
end_address[latitude] | number <float> |
end_address[longitude] | number <float> |
job_id | integer <int32> The Job the Timer belongs to. |
owner_id | integer <int32> The owner of the Timer. Defaults to the current user. |
authority_id | integer <int32> The approver of the Timer. |
approval_status_id | string The TimerApprovalStatus identifier. |
notes | string Auxillary information about the Timer. |
state | string A generic field used for hinting. |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Returns a list of your timers. Supports Pagination.
intersect_start | string <date-time> Filters out Timers that does not intersect with the specified interval (start). |
intersect_end | string <date-time> Filters out Timers that does not intersect with the specified interval (end). |
include_deleted | boolean Include deleted Timers? |
job_name | string Filter out timers that do not contain job_name. |
modified | string Filters out Timers modified before the specified time. |
approval_status_ids | string Comma-seperated string of TimerApprovalStatus identifiers. Filters out any TimerApprovalStatuses not specified. |
timer_type_ids | string Comma-seperated string of TimerType identifiers. Filters out any TimerTypes not specified. |
include_active | boolean Include any running timers in the response. |
order_by | string Hash where keys are the fields to sort by and values are the direction of order e.g. order_by[duration]=desc => return results by created_at desc in descending order If specified, this will override any values in :predicate and :order Accepted fields - start_at, end_at, duration, status |
owner_ids[] | Array of integers <int32> Comma-seperated string of owner identifiers. Filters out any owners not specified. |
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Get the running timeer
fields[] | Array of strings Fields to include in the response. Accepts a comma separated string of field names. @example Only field names a,b,c #=> { a: value, b: value, c: value } @example Nested fields (associations) a,b,c[d,e] #=> { a: value, b: value, c: { d: value, e: value } |
Export timers
intersect_start required | string <date-time> Filters out Timers that does not intersect with the specified interval (start). |
intersect_end required | string <date-time> Filters out Timers that does not intersect with the specified interval (end). |
export_by | string Enum: "day" "week" Exports timers by day format. |
export_format | string Default: "csv" Value: "csv" Export fomat. |
export_time_zone | string The export time zone to format. |
include_deleted | boolean Include deleted Timers? |
job_name | string Filter out timers that do not contain job_name. |
modified | string Filters out Timers modified before the specified time. |
approval_status_ids | string Comma-seperated string of TimerApprovalStatus identifiers. Filters out any TimerApprovalStatuses not specified. |
timer_type_ids | string Comma-seperated string of TimerType identifiers. Filters out any TimerTypes not specified. |
include_active | boolean Include any running timers in the response. |
order_by | string Hash where keys are the fields to sort by and values are the direction of order e.g. order_by[duration]=desc => return results by created_at desc in descending order If specified, this will override any values in :predicate and :order Accepted fields - start_at, end_at, duration, status |
owner_ids[] | Array of integers <int32> Comma-seperated string of owner identifiers. Filters out any owners not specified. |
Get timer metadata
intersect_start required | string Filters out Timers that does not intersect with the specified interval (start). |
intersect_end required | string Filters out Timers that does not intersect with the specified interval (end). |
owner_ids | string Comma-seperated string of owner identifiers. Filters out any owners not specified. |